OpenCV 5.0.0-pre
Open Source Computer Vision
Loading...
Searching...
No Matches
cv::dnn::DetectionModel Class Reference

This class represents high-level API for object detection networks. More...

#include <opencv2/dnn/dnn.hpp>

Collaboration diagram for cv::dnn::DetectionModel:

Public Member Functions

 DetectionModel ()
 
 DetectionModel (const Net &network)
 Create model from deep learning network.
 
 DetectionModel (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config="")
 Create detection model from network represented in one of the supported formats. An order of model and config arguments does not matter.
 
void detect (InputArray frame, std::vector< int > &classIds, std::vector< float > &confidences, std::vector< Rect > &boxes, float confThreshold=0.5f, float nmsThreshold=0.0f)
 Given the input frame, create input blob, run net and return result detections.
 
bool getNmsAcrossClasses ()
 Getter for nmsAcrossClasses. This variable defaults to false, such that when non max suppression is used during the detect() function, it will do so only per-class.
 
DetectionModelsetNmsAcrossClasses (bool value)
 nmsAcrossClasses defaults to false, such that when non max suppression is used during the detect() function, it will do so per-class. This function allows you to toggle this behaviour.
 
- Public Member Functions inherited from cv::dnn::Model
 Model ()
 
 Model (const Model &)=default
 
 Model (const Net &network)
 Create model from deep learning network.
 
 Model (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config="")
 Create model from deep learning network represented in one of the supported formats. An order of model and config arguments does not matter.
 
 Model (Model &&)=default
 
ModelenableWinograd (bool useWinograd)
 
Impl * getImpl () const
 
Impl & getImplRef () const
 
NetgetNetwork_ ()
 
NetgetNetwork_ () const
 
 operator Net & () const
 
Modeloperator= (const Model &)=default
 
Modeloperator= (Model &&)=default
 
void predict (InputArray frame, OutputArrayOfArrays outs) const
 Given the input frame, create input blob, run net and return the output blobs.
 
ModelsetInputCrop (bool crop)
 Set flag crop for frame.
 
ModelsetInputMean (const Scalar &mean)
 Set mean value for frame.
 
void setInputParams (double scale=1.0, const Size &size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false)
 Set preprocessing parameters for frame.
 
ModelsetInputScale (const Scalar &scale)
 Set scalefactor value for frame.
 
ModelsetInputSize (const Size &size)
 Set input size for frame.
 
ModelsetInputSize (int width, int height)
 
ModelsetInputSwapRB (bool swapRB)
 Set flag swapRB for frame.
 
ModelsetOutputNames (const std::vector< String > &outNames)
 Set output names for frame.
 
ModelsetPreferableBackend (dnn::Backend backendId)
 
ModelsetPreferableTarget (dnn::Target targetId)
 

Additional Inherited Members

- Protected Attributes inherited from cv::dnn::Model
Ptr< Impl > impl
 

Detailed Description

This class represents high-level API for object detection networks.

DetectionModel allows to set params for preprocessing input image. DetectionModel creates net from file with trained weights and config, sets preprocessing input, runs forward pass and return result detections. For DetectionModel SSD, Faster R-CNN, YOLO topologies are supported.

Constructor & Destructor Documentation

◆ DetectionModel() [1/3]

cv::dnn::DetectionModel::DetectionModel ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & config = "" )
Python:
cv.dnn.DetectionModel(model[, config]) -> <dnn_DetectionModel object>
cv.dnn.DetectionModel(network) -> <dnn_DetectionModel object>

Create detection model from network represented in one of the supported formats. An order of model and config arguments does not matter.

Parameters
[in]modelBinary file contains trained weights.
[in]configText file contains network configuration.

◆ DetectionModel() [2/3]

cv::dnn::DetectionModel::DetectionModel ( const Net & network)
Python:
cv.dnn.DetectionModel(model[, config]) -> <dnn_DetectionModel object>
cv.dnn.DetectionModel(network) -> <dnn_DetectionModel object>

Create model from deep learning network.

Parameters
[in]networkNet object.

◆ DetectionModel() [3/3]

cv::dnn::DetectionModel::DetectionModel ( )
Python:
cv.dnn.DetectionModel(model[, config]) -> <dnn_DetectionModel object>
cv.dnn.DetectionModel(network) -> <dnn_DetectionModel object>

Member Function Documentation

◆ detect()

void cv::dnn::DetectionModel::detect ( InputArray frame,
std::vector< int > & classIds,
std::vector< float > & confidences,
std::vector< Rect > & boxes,
float confThreshold = 0.5f,
float nmsThreshold = 0.0f )
Python:
cv.dnn.DetectionModel.detect(frame[, confThreshold[, nmsThreshold]]) -> classIds, confidences, boxes

Given the input frame, create input blob, run net and return result detections.

Parameters
[in]frameThe input image.
[out]classIdsClass indexes in result detection.
[out]confidencesA set of corresponding confidences.
[out]boxesA set of bounding boxes.
[in]confThresholdA threshold used to filter boxes by confidences.
[in]nmsThresholdA threshold used in non maximum suppression.

◆ getNmsAcrossClasses()

bool cv::dnn::DetectionModel::getNmsAcrossClasses ( )
Python:
cv.dnn.DetectionModel.getNmsAcrossClasses() -> retval

Getter for nmsAcrossClasses. This variable defaults to false, such that when non max suppression is used during the detect() function, it will do so only per-class.

◆ setNmsAcrossClasses()

DetectionModel & cv::dnn::DetectionModel::setNmsAcrossClasses ( bool value)
Python:
cv.dnn.DetectionModel.setNmsAcrossClasses(value) -> retval

nmsAcrossClasses defaults to false, such that when non max suppression is used during the detect() function, it will do so per-class. This function allows you to toggle this behaviour.

Parameters
[in]valueThe new value for nmsAcrossClasses

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