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

#include <dnnbasedetectormodel.h>

+ Inheritance diagram for Digikam::DNNBaseDetectorModel:

Public Member Functions

virtual QHash< QString, QVector< QRect > > detectObjects (const cv::Mat &inputImage)
 
virtual QList< QHash< QString, QVector< QRect > > > detectObjects (const std::vector< cv::Mat > &inputBatchImages)
 
 DNNBaseDetectorModel ()
 
 DNNBaseDetectorModel (float scale, const cv::Scalar &val, const cv::Size &inputImgSize)
 
QList< QString > generateObjects (const cv::Mat &inputImage)
 
QList< QList< QString > > generateObjects (const std::vector< cv::Mat > &inputImage)
 
cv::Size getinputImageSize () const
 
std::vector< cv::String > getOutputsNames () const
 
virtual QList< QString > getPredefinedClasses () const
 
QList< QString > loadDetectionClasses ()
 
virtual QHash< QString, QVector< QRect > > postprocess (const cv::Mat &inputImage, const cv::Mat &out) const =0
 
QList< QHash< QString, QVector< QRect > > > postprocess (const std::vector< cv::Mat > &inputBatchImages, const std::vector< cv::Mat > &outs) const
 
std::vector< cv::Mat > preprocess (const cv::Mat &inputImage)
 
std::vector< cv::Mat > preprocess (const std::vector< cv::Mat > &inputBatchImages)
 
double showInferenceTime ()
 
virtual ~DNNBaseDetectorModel ()=default
 

Static Public Attributes

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

Protected Member Functions

virtual bool loadModels ()=0
 

Protected Attributes

cv::Size inputImageSize
 
cv::Scalar meanValToSubtract
 
DNNModelBasemodel = nullptr
 
QList< QString > predefinedClasses
 
float scaleFactor = 1.0F
 

Constructor & Destructor Documentation

◆ DNNBaseDetectorModel() [1/2]

Digikam::DNNBaseDetectorModel::DNNBaseDetectorModel ( )
explicit

◆ DNNBaseDetectorModel() [2/2]

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

◆ ~DNNBaseDetectorModel()

virtual Digikam::DNNBaseDetectorModel::~DNNBaseDetectorModel ( )
virtualdefault

Member Function Documentation

◆ detectObjects() [1/2]

virtual QHash< QString, QVector< QRect > > Digikam::DNNBaseDetectorModel::detectObjects ( const cv::Mat &  inputImage)
virtual

detectObjects return the predicted objects and localization as well (if we use deeplearning for object detection like YOLO, etc) otherwise the map whose the key is the objects name and their values are empty.

Referenced by generateObjects(), and generateObjects().

◆ detectObjects() [2/2]

QList< QHash< QString, QVector< QRect > > > Digikam::DNNBaseDetectorModel::detectObjects ( const std::vector< cv::Mat > &  inputBatchImages)
virtual

detectObjects in batch images (fixed batch size).

References postprocess(), and preprocess().

◆ generateObjects() [1/2]

QList< QString > Digikam::DNNBaseDetectorModel::generateObjects ( const cv::Mat &  inputImage)

generateObjects in one image return just the predicted objects without locations of objects using for the assignment tagging names.

References detectObjects().

Referenced by Digikam::AutoTagsAssign::generateTagsList(), Digikam::AutoTagsAssign::generateTagsList(), Digikam::AutoTagsAssign::generateTagsList(), Digikam::AutoTagsAssign::generateTagsList(), and Digikam::AutoTagsAssign::generateTagsList().

◆ generateObjects() [2/2]

QList< QList< QString > > Digikam::DNNBaseDetectorModel::generateObjects ( const std::vector< cv::Mat > &  inputImage)

generateObjects in batch images return just the predicted objects without locations of objects using for the assignment tagging names.

References detectObjects().

◆ getinputImageSize()

cv::Size Digikam::DNNBaseDetectorModel::getinputImageSize ( ) const

Return the input Image Size from Deep NN model.

References inputImageSize.

Referenced by Digikam::AutoTagsAssign::prepareForDetection(), and Digikam::AutoTagsAssign::prepareForDetection().

◆ getOutputsNames()

std::vector< cv::String > Digikam::DNNBaseDetectorModel::getOutputsNames ( ) const

References model, and Digikam::DNNModelBase::modelLoaded.

Referenced by preprocess(), and preprocess().

◆ getPredefinedClasses()

QList< QString > Digikam::DNNBaseDetectorModel::getPredefinedClasses ( ) const
virtual

Get predefined objects according to selected model.

References predefinedClasses.

Referenced by Digikam::AutoTagsAssign::getPredefinedTagsPath().

◆ loadDetectionClasses()

◆ loadModels()

virtual bool Digikam::DNNBaseDetectorModel::loadModels ( )
protectedpure virtual

◆ postprocess() [1/2]

virtual QHash< QString, QVector< QRect > > Digikam::DNNBaseDetectorModel::postprocess ( const cv::Mat &  inputImage,
const cv::Mat &  out 
) const
pure virtual

◆ postprocess() [2/2]

QList< QHash< QString, QVector< QRect > > > Digikam::DNNBaseDetectorModel::postprocess ( const std::vector< cv::Mat > &  inputBatchImages,
const std::vector< cv::Mat > &  outs 
) const

References postprocess().

Referenced by detectObjects(), and postprocess().

◆ preprocess() [1/2]

std::vector< cv::Mat > Digikam::DNNBaseDetectorModel::preprocess ( const cv::Mat &  inputImage)

◆ preprocess() [2/2]

std::vector< cv::Mat > Digikam::DNNBaseDetectorModel::preprocess ( const std::vector< cv::Mat > &  inputBatchImages)

◆ showInferenceTime()

double Digikam::DNNBaseDetectorModel::showInferenceTime ( )

References model.

Member Data Documentation

◆ inputImageSize

cv::Size Digikam::DNNBaseDetectorModel::inputImageSize
protected

◆ meanValToSubtract

cv::Scalar Digikam::DNNBaseDetectorModel::meanValToSubtract
protected

Referenced by preprocess(), and preprocess().

◆ model

◆ nmsThreshold

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

Threshold for nms suppression.

◆ predefinedClasses

QList<QString> Digikam::DNNBaseDetectorModel::predefinedClasses
protected

◆ scaleFactor

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

Referenced by preprocess(), and preprocess().

◆ scoreThreshold

float Digikam::DNNBaseDetectorModel::scoreThreshold = 0.45F
static

Threshold for class detection score.

◆ uiConfidenceThreshold

int Digikam::DNNBaseDetectorModel::uiConfidenceThreshold = DNN_MODEL_THRESHOLD_NOT_SET
static

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

setting 1000 will use the value from dnnmodels.conf if passed in


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