digiKam
Loading...
Searching...
No Matches
autotagsassign.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam
4 * https://www.digikam.org
5 *
6 * Date : 2023-09-02
7 * Description : Class for autotagging engine
8 *
9 * SPDX-FileCopyrightText: 2023 by Quoc Hung TRAN <quochungtran1999 at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QImage>
20#include <QList>
21#include <QRect>
22
23// Local includes
24
25#include "digikam_opencv.h"
26#include "dimg.h"
28
29namespace Digikam
30{
31
33{
37
38 // Add here another model.
39};
40
41class DIGIKAM_GUI_EXPORT AutoTagsAssign
42{
43
44public:
45
46 explicit AutoTagsAssign(DetectorModel model = DetectorModel::YOLOV5NANO);
48
49 cv::Mat prepareForDetection(const DImg& inputImage) const;
50 cv::Mat prepareForDetection(const QImage& inputImage) const;
51 cv::Mat prepareForDetection(const QString& inputImagePath) const;
52 std::vector<cv::Mat> prepareForDetection(const QList<DImg>& inputImages, int batchSize) const;
53 std::vector<cv::Mat> prepareForDetection(const QList<QString>& inputImagePaths, int batchSize) const;
54
55 QList<QString> generateTagsList(const DImg& inputImage);
56 QList<QString> generateTagsList(const QImage& inputImage);
57 QList<QString> generateTagsList(const QString& inputImagePath);
58
63 QList<QList<QString> > generateTagsList(const QList<DImg>& inputImages, int batchSize) const;
64 QList<QList<QString> > generateTagsList(const QList<QString>& inputImagePaths, int batchSize) const;
65
66 QList<QString> getPredefinedTagsPath() const;
67
68private:
69
70 // Disable
71 AutoTagsAssign(const AutoTagsAssign&) = delete;
72 AutoTagsAssign& operator=(const AutoTagsAssign&) = delete;
73
74private:
75
76 DetectorModel m_modelType;
77 DNNBaseDetectorModel* m_inferenceEngine = nullptr;
78};
79
80} // namespace Digikam
Definition autotagsassign.h:42
Definition dimg.h:52
Definition dnnbasedetectormodel.h:40
Definition datefolderview.cpp:34
DetectorModel
Definition autotagsassign.h:33
@ YOLOV5XLARGE
YOLO large neural network model.
Definition autotagsassign.h:35
@ YOLOV5NANO
YOLO nano neural network model.
Definition autotagsassign.h:34
@ RESNET50
Definition autotagsassign.h:36