digiKam
Loading...
Searching...
No Matches
facialrecognition_wrapper.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam
4 *
5 * Date : 2010-06-16
6 * Description : The recognition wrapper
7 *
8 * SPDX-FileCopyrightText: 2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
9 * SPDX-FileCopyrightText: 2010 by Aditya Bhatt <adityabhatt1991 at gmail dot com>
10 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2020 by Nghia Duong <minhnghiaduong997 at gmail dot com>
12 * SPDX-FileCopyrightText: 2024 by Michael Miller <michael underscore miller at msn dot com>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20// Qt includes
21
22#include <QExplicitlySharedDataPointer>
23#include <QImage>
24#include <QList>
25#include <QMultiMap>
26#include <QVariant>
27
28// Local includes
29
30#include "digikam_export.h"
31#include "identity.h"
32#include "dataproviders.h"
33#include "facescansettings.h"
34
35namespace Digikam
36{
37
38class DIGIKAM_GUI_EXPORT FacialRecognitionWrapper
39{
40public:
41
44
46
47public:
48
52 bool integrityCheck();
53
57 void vacuum();
58
59public:
60
61 // --- Backend parameters (facesengine_interface_setup.cpp) --------------------------
62
72 void setParameter(const QString& parameter, const QVariant& value);
73 void setParameters(const QVariantMap& parameters);
74 void setParameters(const FaceScanSettings& parameters);
75 QVariantMap parameters() const;
76
77 // --- Identity management (facesengine_interface_identity.cpp) ----------------------
78
80
84 QList<Identity> allIdentities() const;
85 Identity identity(int id) const;
86
91 Identity findIdentity(const QString& attribute, const QString& value) const;
92
99 Identity findIdentity(const QMultiMap<QString, QString>& attributes) const;
100
105 Identity addIdentity(const QMultiMap<QString, QString>& attributes);
106
111 Identity addIdentityDebug(const QMultiMap<QString, QString>& attributes);
112
116 void addIdentityAttributes(int id, const QMultiMap<QString, QString>& attributes);
117 void addIdentityAttribute(int id, const QString& attribute, const QString& value);
118 void setIdentityAttributes(int id, const QMultiMap<QString, QString>& attributes);
119
123 void deleteIdentity(const Identity& identityToBeDeleted);
124
128 void deleteIdentities(QList<Identity> identitiesToBeDeleted);
129
130 // --- Faces Training management (facesengine_interface_training.cpp) ----------------
131
144 void train(const QList<Identity>& identitiesToBeTrained,
145 TrainingDataProvider* const data);
146 void train(const Identity& identityToBeTrained,
147 TrainingDataProvider* const data);
148
156 void train(const Identity& identityToBeTrained,
157 const QPair<QImage*, QString>& image);
158 void train(const Identity& identityToBeTrained,
159 const QList<QPair<QImage*, QString> >& images);
160
165 void clearAllTraining();
166
171 void clearTraining(const QList<Identity>& identitiesToClean);
172
177 void clearTraining(const QString& hash);
178
179 // --- Recognition management (facesengine_interface_recognize.cpp) ------------------
180
186 // TODO: review to see if this function is necessary
187/*
188 int recommendedImageSize(const QSize& availableSize = QSize()) const;
189*/
196 QList<Identity> recognizeFaces(ImageListProvider* const images);
197 QList<Identity> recognizeFaces(const QList<QImage*>& images);
198 Identity recognizeFace(QImage* const image);
199
200private:
201
202 // Disable
203 FacialRecognitionWrapper& operator=(const FacialRecognitionWrapper&) = delete;
204
205private:
206
207 class Private;
208 static Private* d;
209/*
210 static FaceScanSettings::FaceRecognitionModel recognizeModel;
211*/
212};
213
214} // namespace Digikam
Definition facescansettings.h:30
Definition facialrecognition_wrapper_p.h:51
Definition facialrecognition_wrapper.h:39
void clearTraining(const QString &hash)
Definition identity.h:31
Definition dataproviders.h:37
Definition dataproviders.h:121
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34