digiKam
Loading...
Searching...
No Matches
Digikam::DNNFaceDetectorBase Class Referenceabstract

#include <dnnfacedetectorbase.h>

+ Inheritance diagram for Digikam::DNNFaceDetectorBase:

Public Member Functions

virtual void detectFaces (const cv::Mat &inputImage, const cv::Size &paddedSize, std::vector< cv::Rect > &detectedBboxes)=0
 
 DNNFaceDetectorBase ()=default
 
 DNNFaceDetectorBase (float scale, const cv::Scalar &val, const cv::Size &inputImgSize)
 
cv::Size nnInputSizeRequired () const
 
virtual void setFaceDetectionSize (FaceScanSettings::FaceDetectionSize faceSize)
 
virtual ~DNNFaceDetectorBase ()=default
 

Static Public Attributes

static float nmsThreshold = 0.4F
 Threshold for nms suppression.
 
static int uiConfidenceThreshold = DNN_MODEL_THRESHOLD_NOT_SET
 Threshold for bbox detection. It can be init and changed in the GUI.
 

Protected Member Functions

void correctBbox (cv::Rect &bbox, const cv::Size &paddedSize) const
 
void selectBbox (const cv::Size &paddedSize, float confidence, int left, int right, int top, int bottom, std::vector< float > &goodConfidences, std::vector< cv::Rect > &goodBoxes, std::vector< float > &doubtConfidences, std::vector< cv::Rect > &doubtBoxes) const
 

Protected Attributes

cv::Size inputImageSize = cv::Size(300, 300)
 
cv::Scalar meanValToSubtract = cv::Scalar(0.0, 0.0, 0.0)
 
DNNModelBasemodel = nullptr
 
float scaleFactor = 1.0F
 

Constructor & Destructor Documentation

◆ DNNFaceDetectorBase() [1/2]

Digikam::DNNFaceDetectorBase::DNNFaceDetectorBase ( )
default

◆ DNNFaceDetectorBase() [2/2]

Digikam::DNNFaceDetectorBase::DNNFaceDetectorBase ( float  scale,
const cv::Scalar &  val,
const cv::Size &  inputImgSize 
)
explicit

◆ ~DNNFaceDetectorBase()

virtual Digikam::DNNFaceDetectorBase::~DNNFaceDetectorBase ( )
virtualdefault

Member Function Documentation

◆ correctBbox()

void Digikam::DNNFaceDetectorBase::correctBbox ( cv::Rect &  bbox,
const cv::Size &  paddedSize 
) const
protected

References inputImageSize.

◆ detectFaces()

virtual void Digikam::DNNFaceDetectorBase::detectFaces ( const cv::Mat &  inputImage,
const cv::Size &  paddedSize,
std::vector< cv::Rect > &  detectedBboxes 
)
pure virtual

◆ nnInputSizeRequired()

cv::Size Digikam::DNNFaceDetectorBase::nnInputSizeRequired ( ) const

◆ selectBbox()

void Digikam::DNNFaceDetectorBase::selectBbox ( const cv::Size &  paddedSize,
float  confidence,
int  left,
int  right,
int  top,
int  bottom,
std::vector< float > &  goodConfidences,
std::vector< cv::Rect > &  goodBoxes,
std::vector< float > &  doubtConfidences,
std::vector< cv::Rect > &  doubtBoxes 
) const
protected

Classify bounding boxes detected. Good bounding boxes are defined as boxes that reside within the non-padded zone or those that are out only for min of (10% of padded range, 10% of bbox dim).

Bad bounding boxes are defined as boxes that have at maximum 25% of each dimension out of non-padded zone.

References inputImageSize.

◆ setFaceDetectionSize()

virtual void Digikam::DNNFaceDetectorBase::setFaceDetectionSize ( FaceScanSettings::FaceDetectionSize  faceSize)
inlinevirtual

Member Data Documentation

◆ inputImageSize

◆ meanValToSubtract

cv::Scalar Digikam::DNNFaceDetectorBase::meanValToSubtract = cv::Scalar(0.0, 0.0, 0.0)
protected

◆ model

◆ nmsThreshold

float Digikam::DNNFaceDetectorBase::nmsThreshold = 0.4F
static

Threshold for nms suppression.

◆ scaleFactor

float Digikam::DNNFaceDetectorBase::scaleFactor = 1.0F
protected

◆ uiConfidenceThreshold

int Digikam::DNNFaceDetectorBase::uiConfidenceThreshold = DNN_MODEL_THRESHOLD_NOT_SET
static

Threshold for bbox detection. It can be init and changed in the GUI.

Referenced by Digikam::OpenCVDNNFaceDetector::setAccuracy().


The documentation for this class was generated from the following files: