This module contains: More...
Modules | |
Partial List of Implemented Layers | |
This subsection of dnn module contains information about built-in layers and their descriptions. | |
Utilities for New Layers Registration | |
Classes | |
class | cv::dnn::BackendNode |
Derivatives of this class encapsulates functions of certain backends. More... | |
class | cv::dnn::BackendWrapper |
Derivatives of this class wraps cv::Mat for different backends and targets. More... | |
class | cv::dnn::Dict |
This class implements name-value dictionary, values are instances of DictValue. More... | |
struct | cv::dnn::DictValue |
This struct stores the scalar value (or array) of one of the following type: double, cv::String or int64. More... | |
class | cv::dnn::Layer |
This interface class allows to build new Layers - are building blocks of networks. More... | |
class | cv::dnn::LayerParams |
This class provides all data needed to initialize layer. More... | |
class | cv::dnn::Net |
This class allows to create and manipulate comprehensive artificial neural networks. More... | |
Typedefs | |
typedef std::vector< int > | cv::dnn::MatShape |
Enumerations | |
enum | cv::dnn::Backend { cv::dnn::DNN_BACKEND_DEFAULT, cv::dnn::DNN_BACKEND_HALIDE, cv::dnn::DNN_BACKEND_INFERENCE_ENGINE, cv::dnn::DNN_BACKEND_OPENCV, cv::dnn::DNN_BACKEND_VKCOM } |
Enum of computation backends supported by layers. More... | |
enum | cv::dnn::Target { cv::dnn::DNN_TARGET_CPU, cv::dnn::DNN_TARGET_OPENCL, cv::dnn::DNN_TARGET_OPENCL_FP16, cv::dnn::DNN_TARGET_MYRIAD, cv::dnn::DNN_TARGET_VULKAN, cv::dnn::DNN_TARGET_FPGA } |
Enum of target devices for computations. More... | |
Functions | |
Mat | cv::dnn::blobFromImage (InputArray image, double scalefactor=1.0, const Size &size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F) |
Creates 4-dimensional blob from image. More... | |
void | cv::dnn::blobFromImage (InputArray image, OutputArray blob, double scalefactor=1.0, const Size &size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F) |
Creates 4-dimensional blob from image. More... | |
Mat | cv::dnn::blobFromImages (InputArrayOfArrays images, double scalefactor=1.0, Size size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F) |
Creates 4-dimensional blob from series of images. More... | |
void | cv::dnn::blobFromImages (InputArrayOfArrays images, OutputArray blob, double scalefactor=1.0, Size size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F) |
Creates 4-dimensional blob from series of images. More... | |
std::vector< std::pair< Backend, Target > > | cv::dnn::getAvailableBackends () |
std::vector< Target > | cv::dnn::getAvailableTargets (Backend be) |
void | cv::dnn::imagesFromBlob (const cv::Mat &blob_, OutputArrayOfArrays images_) |
Parse a 4D blob and output the images it contains as 2D arrays through a simpler data structure (std::vector<cv::Mat>). More... | |
void | cv::dnn::NMSBoxes (const std::vector< Rect > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0) |
Performs non maximum suppression given boxes and corresponding scores. More... | |
void | cv::dnn::NMSBoxes (const std::vector< Rect2d > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0) |
void | cv::dnn::NMSBoxes (const std::vector< RotatedRect > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0) |
Net | cv::dnn::readNet (const String &model, const String &config="", const String &framework="") |
Read deep learning network represented in one of the supported formats. More... | |
Net | cv::dnn::readNet (const String &framework, const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >()) |
Read deep learning network represented in one of the supported formats. More... | |
Net | cv::dnn::readNetFromCaffe (const String &prototxt, const String &caffeModel=String()) |
Reads a network model stored in Caffe framework's format. More... | |
Net | cv::dnn::readNetFromCaffe (const std::vector< uchar > &bufferProto, const std::vector< uchar > &bufferModel=std::vector< uchar >()) |
Reads a network model stored in Caffe model in memory. More... | |
Net | cv::dnn::readNetFromCaffe (const char *bufferProto, size_t lenProto, const char *bufferModel=NULL, size_t lenModel=0) |
Reads a network model stored in Caffe model in memory. More... | |
Net | cv::dnn::readNetFromDarknet (const String &cfgFile, const String &darknetModel=String()) |
Reads a network model stored in Darknet model files. More... | |
Net | cv::dnn::readNetFromDarknet (const std::vector< uchar > &bufferCfg, const std::vector< uchar > &bufferModel=std::vector< uchar >()) |
Reads a network model stored in Darknet model files. More... | |
Net | cv::dnn::readNetFromDarknet (const char *bufferCfg, size_t lenCfg, const char *bufferModel=NULL, size_t lenModel=0) |
Reads a network model stored in Darknet model files. More... | |
Net | cv::dnn::readNetFromModelOptimizer (const String &xml, const String &bin) |
Load a network from Intel's Model Optimizer intermediate representation. More... | |
Net | cv::dnn::readNetFromONNX (const String &onnxFile) |
Reads a network model ONNX. More... | |
Net | cv::dnn::readNetFromONNX (const char *buffer, size_t sizeBuffer) |
Reads a network model from ONNX in-memory buffer. More... | |
Net | cv::dnn::readNetFromONNX (const std::vector< uchar > &buffer) |
Reads a network model from ONNX in-memory buffer. More... | |
Net | cv::dnn::readNetFromTensorflow (const String &model, const String &config=String()) |
Reads a network model stored in TensorFlow framework's format. More... | |
Net | cv::dnn::readNetFromTensorflow (const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >()) |
Reads a network model stored in TensorFlow framework's format. More... | |
Net | cv::dnn::readNetFromTensorflow (const char *bufferModel, size_t lenModel, const char *bufferConfig=NULL, size_t lenConfig=0) |
Reads a network model stored in TensorFlow framework's format. More... | |
Net | cv::dnn::readNetFromTorch (const String &model, bool isBinary=true, bool evaluate=true) |
Reads a network model stored in Torch7 framework's format. More... | |
Mat | cv::dnn::readTensorFromONNX (const String &path) |
Creates blob from .pb file. More... | |
Mat | cv::dnn::readTorchBlob (const String &filename, bool isBinary=true) |
Loads blob which was serialized as torch.Tensor object of Torch7 framework. More... | |
void | cv::dnn::shrinkCaffeModel (const String &src, const String &dst, const std::vector< String > &layersTypes=std::vector< String >()) |
Convert all weights of Caffe network to half precision floating point. More... | |
void | cv::dnn::writeTextGraph (const String &model, const String &output) |
Create a text representation for a binary network stored in protocol buffer format. More... | |
This module contains:
Functionality of this module is designed only for forward pass computations (i.e. network testing). A network training is in principle not supported.
typedef std::vector<int> cv::dnn::MatShape |
#include <opencv2/dnn/dnn.hpp>
enum cv::dnn::Backend |
#include <opencv2/dnn/dnn.hpp>
Enum of computation backends supported by layers.
enum cv::dnn::Target |
#include <opencv2/dnn/dnn.hpp>
Enum of target devices for computations.
Enumerator | |
---|---|
DNN_TARGET_CPU | |
DNN_TARGET_OPENCL | |
DNN_TARGET_OPENCL_FP16 | |
DNN_TARGET_MYRIAD | |
DNN_TARGET_VULKAN | |
DNN_TARGET_FPGA | FPGA device with CPU fallbacks using Inference Engine's Heterogeneous plugin. |
Mat cv::dnn::blobFromImage | ( | InputArray | image, |
double | scalefactor = 1.0 , |
||
const Size & | size = Size() , |
||
const Scalar & | mean = Scalar() , |
||
bool | swapRB = false , |
||
bool | crop = false , |
||
int | ddepth = CV_32F |
||
) |
#include <opencv2/dnn/dnn.hpp>
Creates 4-dimensional blob from image.
Optionally resizes and crops image
from center, subtract mean
values, scales values by scalefactor
, swap Blue and Red channels.
image | input image (with 1-, 3- or 4-channels). |
size | spatial size for output image |
mean | scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. |
scalefactor | multiplier for image values. |
swapRB | flag which indicates that swap first and last channels in 3-channel image is necessary. |
crop | flag which indicates whether image will be cropped after resize or not |
ddepth | Depth of output blob. Choose CV_32F or CV_8U. |
if crop
is true, input image is resized so one side after resize is equal to corresponding dimension in size
and another one is equal or larger. Then, crop from the center is performed. If crop
is false, direct resize without cropping and preserving aspect ratio is performed.
void cv::dnn::blobFromImage | ( | InputArray | image, |
OutputArray | blob, | ||
double | scalefactor = 1.0 , |
||
const Size & | size = Size() , |
||
const Scalar & | mean = Scalar() , |
||
bool | swapRB = false , |
||
bool | crop = false , |
||
int | ddepth = CV_32F |
||
) |
#include <opencv2/dnn/dnn.hpp>
Creates 4-dimensional blob from image.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Mat cv::dnn::blobFromImages | ( | InputArrayOfArrays | images, |
double | scalefactor = 1.0 , |
||
Size | size = Size() , |
||
const Scalar & | mean = Scalar() , |
||
bool | swapRB = false , |
||
bool | crop = false , |
||
int | ddepth = CV_32F |
||
) |
#include <opencv2/dnn/dnn.hpp>
Creates 4-dimensional blob from series of images.
Optionally resizes and crops images
from center, subtract mean
values, scales values by scalefactor
, swap Blue and Red channels.
images | input images (all with 1-, 3- or 4-channels). |
size | spatial size for output image |
mean | scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. |
scalefactor | multiplier for images values. |
swapRB | flag which indicates that swap first and last channels in 3-channel image is necessary. |
crop | flag which indicates whether image will be cropped after resize or not |
ddepth | Depth of output blob. Choose CV_32F or CV_8U. |
if crop
is true, input image is resized so one side after resize is equal to corresponding dimension in size
and another one is equal or larger. Then, crop from the center is performed. If crop
is false, direct resize without cropping and preserving aspect ratio is performed.
void cv::dnn::blobFromImages | ( | InputArrayOfArrays | images, |
OutputArray | blob, | ||
double | scalefactor = 1.0 , |
||
Size | size = Size() , |
||
const Scalar & | mean = Scalar() , |
||
bool | swapRB = false , |
||
bool | crop = false , |
||
int | ddepth = CV_32F |
||
) |
#include <opencv2/dnn/dnn.hpp>
Creates 4-dimensional blob from series of images.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
#include <opencv2/dnn/dnn.hpp>
void cv::dnn::imagesFromBlob | ( | const cv::Mat & | blob_, |
OutputArrayOfArrays | images_ | ||
) |
#include <opencv2/dnn/dnn.hpp>
Parse a 4D blob and output the images it contains as 2D arrays through a simpler data structure (std::vector<cv::Mat>).
[in] | blob_ | 4 dimensional array (images, channels, height, width) in floating point precision (CV_32F) from which you would like to extract the images. |
[out] | images_ | array of 2D Mat containing the images extracted from the blob in floating point precision (CV_32F). They are non normalized neither mean added. The number of returned images equals the first dimension of the blob (batch size). Every image has a number of channels equals to the second dimension of the blob (depth). |
void cv::dnn::NMSBoxes | ( | const std::vector< Rect > & | bboxes, |
const std::vector< float > & | scores, | ||
const float | score_threshold, | ||
const float | nms_threshold, | ||
std::vector< int > & | indices, | ||
const float | eta = 1.f , |
||
const int | top_k = 0 |
||
) |
#include <opencv2/dnn/dnn.hpp>
Performs non maximum suppression given boxes and corresponding scores.
bboxes | a set of bounding boxes to apply NMS. |
scores | a set of corresponding confidences. |
score_threshold | a threshold used to filter boxes by score. |
nms_threshold | a threshold used in non maximum suppression. |
indices | the kept indices of bboxes after NMS. |
eta | a coefficient in adaptive threshold formula: \(nms\_threshold_{i+1}=eta\cdot nms\_threshold_i\). |
top_k | if >0 , keep at most top_k picked indices. |
void cv::dnn::NMSBoxes | ( | const std::vector< Rect2d > & | bboxes, |
const std::vector< float > & | scores, | ||
const float | score_threshold, | ||
const float | nms_threshold, | ||
std::vector< int > & | indices, | ||
const float | eta = 1.f , |
||
const int | top_k = 0 |
||
) |
#include <opencv2/dnn/dnn.hpp>
void cv::dnn::NMSBoxes | ( | const std::vector< RotatedRect > & | bboxes, |
const std::vector< float > & | scores, | ||
const float | score_threshold, | ||
const float | nms_threshold, | ||
std::vector< int > & | indices, | ||
const float | eta = 1.f , |
||
const int | top_k = 0 |
||
) |
#include <opencv2/dnn/dnn.hpp>
Net cv::dnn::readNet | ( | const String & | model, |
const String & | config = "" , |
||
const String & | framework = "" |
||
) |
#include <opencv2/dnn/dnn.hpp>
Read deep learning network represented in one of the supported formats.
[in] | model | Binary file contains trained weights. The following file extensions are expected for models from different frameworks:
|
[in] | config | Text file contains network configuration. It could be a file with the following extensions:
|
[in] | framework | Explicit framework name tag to determine a format. |
This function automatically detects an origin framework of trained model and calls an appropriate function such readNetFromCaffe, readNetFromTensorflow, readNetFromTorch or readNetFromDarknet. An order of model
and config
arguments does not matter.
Net cv::dnn::readNet | ( | const String & | framework, |
const std::vector< uchar > & | bufferModel, | ||
const std::vector< uchar > & | bufferConfig = std::vector< uchar >() |
||
) |
#include <opencv2/dnn/dnn.hpp>
Read deep learning network represented in one of the supported formats.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
[in] | framework | Name of origin framework. |
[in] | bufferModel | A buffer with a content of binary file with weights |
[in] | bufferConfig | A buffer with a content of text file contains network configuration. |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in Caffe framework's format.
prototxt | path to the .prototxt file with text description of the network architecture. |
caffeModel | path to the .caffemodel file with learned network. |
Net cv::dnn::readNetFromCaffe | ( | const std::vector< uchar > & | bufferProto, |
const std::vector< uchar > & | bufferModel = std::vector< uchar >() |
||
) |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in Caffe model in memory.
bufferProto | buffer containing the content of the .prototxt file |
bufferModel | buffer containing the content of the .caffemodel file |
Net cv::dnn::readNetFromCaffe | ( | const char * | bufferProto, |
size_t | lenProto, | ||
const char * | bufferModel = NULL , |
||
size_t | lenModel = 0 |
||
) |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in Caffe model in memory.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
bufferProto | buffer containing the content of the .prototxt file |
lenProto | length of bufferProto |
bufferModel | buffer containing the content of the .caffemodel file |
lenModel | length of bufferModel |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in Darknet model files.
cfgFile | path to the .cfg file with text description of the network architecture. |
darknetModel | path to the .weights file with learned network. |
Net cv::dnn::readNetFromDarknet | ( | const char * | bufferCfg, |
size_t | lenCfg, | ||
const char * | bufferModel = NULL , |
||
size_t | lenModel = 0 |
||
) |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in Darknet model files.
bufferCfg | A buffer contains a content of .cfg file with text description of the network architecture. |
lenCfg | Number of bytes to read from bufferCfg |
bufferModel | A buffer contains a content of .weights file with learned network. |
lenModel | Number of bytes to read from bufferModel |
#include <opencv2/dnn/dnn.hpp>
Load a network from Intel's Model Optimizer intermediate representation.
[in] | xml | XML configuration file with network's topology. |
[in] | bin | Binary file with trained weights. |
#include <opencv2/dnn/dnn.hpp>
Reads a network model ONNX.
onnxFile | path to the .onnx file with text description of the network architecture. |
Net cv::dnn::readNetFromONNX | ( | const char * | buffer, |
size_t | sizeBuffer | ||
) |
#include <opencv2/dnn/dnn.hpp>
Reads a network model from ONNX in-memory buffer.
buffer | memory address of the first byte of the buffer. |
sizeBuffer | size of the buffer. |
#include <opencv2/dnn/dnn.hpp>
Reads a network model from ONNX in-memory buffer.
buffer | in-memory buffer that stores the ONNX model bytes. |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in TensorFlow framework's format.
model | path to the .pb file with binary protobuf description of the network architecture |
config | path to the .pbtxt file that contains text graph definition in protobuf format. Resulting Net object is built by text graph using weights from a binary one that let us make it more flexible. |
Net cv::dnn::readNetFromTensorflow | ( | const std::vector< uchar > & | bufferModel, |
const std::vector< uchar > & | bufferConfig = std::vector< uchar >() |
||
) |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in TensorFlow framework's format.
bufferModel | buffer containing the content of the pb file |
bufferConfig | buffer containing the content of the pbtxt file |
Net cv::dnn::readNetFromTensorflow | ( | const char * | bufferModel, |
size_t | lenModel, | ||
const char * | bufferConfig = NULL , |
||
size_t | lenConfig = 0 |
||
) |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in TensorFlow framework's format.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
bufferModel | buffer containing the content of the pb file |
lenModel | length of bufferModel |
bufferConfig | buffer containing the content of the pbtxt file |
lenConfig | length of bufferConfig |
#include <opencv2/dnn/dnn.hpp>
Reads a network model stored in Torch7 framework's format.
model | path to the file, dumped from Torch by using torch.save() function. |
isBinary | specifies whether the network was serialized in ascii mode or binary. |
evaluate | specifies testing phase of network. If true, it's similar to evaluate() method in Torch. |
long
type of C language, which has various bit-length on different systems.The loading file must contain serialized nn.Module object with importing network. Try to eliminate a custom objects from serialazing data to avoid importing errors.
List of supported layers (i.e. object instances derived from Torch nn.Module class):
Also some equivalents of these classes from cunn, cudnn, and fbcunn may be successfully imported.
#include <opencv2/dnn/dnn.hpp>
Creates blob from .pb file.
path | to the .pb file with input tensor. |
#include <opencv2/dnn/dnn.hpp>
Loads blob which was serialized as torch.Tensor object of Torch7 framework.
void cv::dnn::shrinkCaffeModel | ( | const String & | src, |
const String & | dst, | ||
const std::vector< String > & | layersTypes = std::vector< String >() |
||
) |
#include <opencv2/dnn/dnn.hpp>
Convert all weights of Caffe network to half precision floating point.
src | Path to origin model from Caffe framework contains single precision floating point weights (usually has .caffemodel extension). |
dst | Path to destination model with updated weights. |
layersTypes | Set of layers types which parameters will be converted. By default, converts only Convolutional and Fully-Connected layers' weights. |
#include <opencv2/dnn/dnn.hpp>
Create a text representation for a binary network stored in protocol buffer format.
[in] | model | A path to binary network. |
[in] | output | A path to output text file to be created. |