digiKam
Loading...
Searching...
No Matches
opencvdnnfacerecognizer.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam
4 *
5 * Date : 2020-05-22
6 * Description : Wrapper of face recognition using OpenFace.
7 *
8 * SPDX-FileCopyrightText: 2019 by Thanh Trung Dinh <dinhthanhtrung1996 at gmail dot com>
9 * SPDX-FileCopyrightText: 2020-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2020 by Nghia Duong <minhnghiaduong997 at gmail dot com>
11 * SPDX-FileCopyrightText: 2024 by Michael Miller <michael underscore miller at msn dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QImage>
22
23// Local includes
24
25#include "digikam_opencv.h"
26#include "digikam_export.h"
27#include "identity.h"
28#include "facescansettings.h"
29
30namespace Digikam
31{
32
33class DIGIKAM_GUI_EXPORT OpenCVDNNFaceRecognizer
34{
35public:
36
38 {
39 SVM = 0,
42 DB
43 };
44
48 explicit OpenCVDNNFaceRecognizer(Classifier method, FaceScanSettings::FaceRecognitionModel recModel);
50
51public:
52
56 static cv::Mat prepareForRecognition(QImage& inputImage);
57
61 static cv::Mat prepareForRecognition(const cv::Mat& cvinputImage);
62
66 bool remove(const QString& hash);
67
71 void train(const QList<QPair<QImage*, QString> >& images, const int label);
72
79 int recognize(const QPair<QImage*, QString>& inputImage);
80
86 QVector<int> recognize(const QList<QPair<QImage*, QString> >& inputImages);
87
91 void clearTraining(const QList<int>& idsToClear);
92
96 void setNbNeighbors(int k);
97
101 void setThreshold(int threshold);
102
106 bool registerTrainingData(const cv::Mat& preprocessedImage, int label);
107
111 int verifyTestData(const cv::Mat& preprocessedImage);
112
113private:
114
115 // Disable
117 OpenCVDNNFaceRecognizer& operator=(const OpenCVDNNFaceRecognizer&) = delete;
118
119private:
120
121 class Private;
122/*
123 Private* const d = nullptr;
124*/
125 static Private* d;
126};
127
128} // namespace Digikam
FaceRecognitionModel
Definition facescansettings.h:89
Definition opencvdnnfacerecognizer.h:34
Classifier
Definition opencvdnnfacerecognizer.h:38
@ OpenCV_KNN
K-Nearest Neighbors (https://docs.opencv.org/4.x/dc/dd6/ml_intro.html#ml_intro_knn)
Definition opencvdnnfacerecognizer.h:40
@ Tree
K-Nearest Neighbors Tree (https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)
Definition opencvdnnfacerecognizer.h:41
Definition datefolderview.cpp:34