digiKam
Loading...
Searching...
No Matches
dnnfaceextractorbase.h
Go to the documentation of this file.
1
/* ============================================================
2
*
3
* This file is a part of digiKam
4
*
5
* Date : 2019-06-01
6
* Description : Face recognition using deep learning.
7
* The internal DNN library interface.
8
*
9
* SPDX-FileCopyrightText: 2019 by Thanh Trung Dinh <dinhthanhtrung1996 at gmail dot com>
10
* SPDX-FileCopyrightText: 2020-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
// C++ includes
21
22
#include <vector>
23
24
// Qt include
25
26
#include <QJsonArray>
27
28
// Local includes
29
30
#include "digikam_opencv.h"
31
#include "
digikam_export.h
"
32
#include "
dnnmodelbase.h
"
33
34
namespace
Digikam
35
{
36
37
class
DIGIKAM_GUI_EXPORT
DNNFaceExtractorBase
38
{
39
40
public
:
41
42
DNNFaceExtractorBase
();
43
virtual
~DNNFaceExtractorBase
();
44
45
public
:
46
50
virtual
bool
loadModels
() = 0;
51
virtual
cv::Mat
alignFace
(
const
cv::Mat& inputImage)
const
= 0;
52
virtual
cv::Mat
getFaceEmbedding
(
const
cv::Mat& faceImage) = 0;
53
57
static
double
cosineDistance(
const
std::vector<float>& v1,
const
std::vector<float>& v2);
58
static
double
L2squareDistance(
const
std::vector<float>& v1,
const
std::vector<float>& v2);
59
static
double
L2squareNormDistance(
const
std::vector<float>& v1,
const
std::vector<float>& v2);
60
64
static
cv::Mat vectortomat(
const
std::vector<float>& vector);
65
static
QJsonArray encodeVector(
const
std::vector<float>& vector);
66
static
std::vector<float> decodeVector(
const
QJsonArray& json);
67
68
private
:
69
71
DNNFaceExtractorBase
(
const
DNNFaceExtractorBase
&) =
delete
;
72
DNNFaceExtractorBase
& operator=(
const
DNNFaceExtractorBase
&) =
delete
;
73
};
74
75
}
// namespace Digikam
Digikam::DNNFaceExtractorBase
Definition
dnnfaceextractorbase.h:38
Digikam::DNNFaceExtractorBase::loadModels
virtual bool loadModels()=0
Digikam::DNNFaceExtractorBase::getFaceEmbedding
virtual cv::Mat getFaceEmbedding(const cv::Mat &faceImage)=0
Digikam::DNNFaceExtractorBase::alignFace
virtual cv::Mat alignFace(const cv::Mat &inputImage) const =0
digikam_export.h
dnnmodelbase.h
Digikam
Definition
datefolderview.cpp:34
core
libs
facesengine
recognition
opencv-dnn
dnnfaceextractorbase.h
Generated by
1.9.8