digiKam
Loading...
Searching...
No Matches
facialrecognition_wrapper_p.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 private implementation of 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: 2019 by Thanh Trung Dinh <dinhthanhtrung1996 at gmail dot com>
12 * SPDX-FileCopyrightText: 2020 by Nghia Duong <minhnghiaduong997 at gmail dot com>
13 * SPDX-FileCopyrightText: 2024 by Michael Miller <michael underscore miller at msn dot com>
14 *
15 * SPDX-License-Identifier: GPL-2.0-or-later
16 *
17 * ============================================================ */
18
19#pragma once
20
22
23// Qt includes
24
25#include <QUuid>
26#include <QDir>
27#include <QStandardPaths>
28#include <QReadWriteLock>
29#include <QThreadPool>
30#include <QFuture>
31
32// Local includes
33
34#include "digikam_config.h"
35#include "digikam_debug.h"
38#include "coredbaccess.h"
39#include "dbengineparameters.h"
40#include "facedbaccess.h"
42#include "facedb.h"
43#include "identity.h"
44#include "facescansettings.h"
46
47namespace Digikam
48{
49
51{
52public:
53
54 Private();
55 ~Private();
56
57public:
58
59 // --- Backend parameters (facesengine_interface_setup.cpp) --------------------------
60
61 void applyParameters();
62
63public:
64
65 // --- Faces Training management (facesengine_interface_training.cpp) ----------------
66
67 void trainIdentityBatch(const QList<Identity>& identitiesToBeTrained,
68 TrainingDataProvider* const data);
69
70
71 void clear(const QList<int>& idsToClear);
72
73 void clear(const QString& hash);
74
75 // --- Identity management (facesengine_interface_identity.cpp) ----------------------
76
77 static bool identityContains(const Identity& identity,
78 const QString& attribute,
79 const QString& value);
80
81 Identity findByAttribute(const QString& attribute,
82 const QString& value) const;
83
84 Identity findByAttributes(const QString& attribute,
85 const QMultiMap<QString, QString>& valueMap) const;
86
87public:
88
89 bool dbAvailable = false;
90 int ref = 1;
91 QReadWriteLock trainingLock;
92 QVariantMap parameters;
93 QHash<int, Identity> identityCache;
94 OpenCVDNNFaceRecognizer* recognizer = nullptr;
95 FaceScanSettings::FaceRecognitionModel recognizeModel = FaceScanSettings::FaceRecognitionModel::SFace;
96
98 QThreadPool* removeThreadPool = nullptr;
99 QFuture<bool> removeThreadResult;
100
101private:
102
103 static bool trainingRemoveConcurrent(FacialRecognitionWrapper::Private* self);
104};
105
106} // namespace Digikam
FaceRecognitionModel
Definition facescansettings.h:89
Definition facialrecognition_wrapper_p.h:51
QHash< int, Identity > identityCache
Definition facialrecognition_wrapper_p.h:93
QReadWriteLock trainingLock
Definition facialrecognition_wrapper_p.h:91
RecognitionTrainingUpdateQueue removeQueue
Definition facialrecognition_wrapper_p.h:97
QVariantMap parameters
Definition facialrecognition_wrapper_p.h:92
QFuture< bool > removeThreadResult
Definition facialrecognition_wrapper_p.h:99
Definition facialrecognition_wrapper.h:39
Definition identity.h:31
Definition opencvdnnfacerecognizer.h:34
Definition recognitiontrainingupdatequeue.h:127
Definition dataproviders.h:121
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34