OpenCV  4.5.3
Open Source Computer Vision
Public Member Functions | List of all members
cv::dnn::DetectionModel Class Reference

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

#include <opencv2/dnn/dnn.hpp>

Inheritance diagram for cv::dnn::DetectionModel:
cv::dnn::Model

Public Member Functions

 DetectionModel (const String &model, 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. More...
 
 DetectionModel (const Net &network)
 Create model from deep learning network. More...
 
 DetectionModel ()
 
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. More...
 
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. More...
 
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. More...
 
- Public Member Functions inherited from cv::dnn::Model
 Model ()
 
 Model (const Model &)=default
 
 Model (Model &&)=default
 
 Model (const String &model, 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. More...
 
 Model (const Net &network)
 Create model from deep learning network. More...
 
Impl * getImpl () const
 
Impl & getImplRef () const
 
NetgetNetwork_ () const
 
NetgetNetwork_ ()
 
 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. More...
 
ModelsetInputCrop (bool crop)
 Set flag crop for frame. More...
 
ModelsetInputMean (const Scalar &mean)
 Set mean value for frame. More...
 
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. More...
 
ModelsetInputScale (double scale)
 Set scalefactor value for frame. More...
 
ModelsetInputSize (const Size &size)
 Set input size for frame. More...
 
ModelsetInputSize (int width, int height)
 
ModelsetInputSwapRB (bool swapRB)
 Set flag swapRB for frame. More...
 
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 ( const String model,
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: