OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
深度神经网络模块

主题

 已实现层的部分列表
 
 新层注册工具
 

详细描述

此模块包含

此模块的功能仅用于前向传播计算(即网络测试)。原则上不支持网络训练。

类  cv::dnn::BackendNode
 此类的派生类封装了特定后端的函数。更多...
 
类  cv::dnn::BackendWrapper
 此类的派生类为不同的后端和目标封装了 cv::Mat更多...
 
类  cv::dnn::ClassificationModel
 此类表示分类模型的高级API。更多...
 
类  cv::dnn::DetectionModel
 此类表示对象检测网络的高级API。更多...
 
类  cv::dnn::Dict
 此类实现了键值字典,值是 DictValue 的实例。更多...
 
结构体  cv::dnn::DictValue
 此结构存储以下类型之一的标量值(或数组):double、cv::String 或 int64。更多...
 
结构体  cv::dnn::Image2BlobParams
 图像到Blob的处理参数。更多...
 
类  cv::dnn::KeypointsModel
 此类表示关键点模型的高级API。更多...
 
类  cv::dnn::Layer
 此接口类允许构建新层——它们是网络的构建块。更多...
 
类  cv::dnn::LayerParams
 此类提供初始化层所需的所有数据。更多...
 
类  cv::dnn::Model
 此类表示神经网络的高级API。更多...
 
类  cv::dnn::Net
 此类允许创建和操作复杂的神经网络。更多...
 
类  cv::dnn::SegmentationModel
 此类表示分割模型的高级API。更多...
 
类  cv::dnn::TextDetectionModel
 文本检测网络的基类。更多...
 
类  cv::dnn::TextDetectionModel_DB
 此类表示与DB模型兼容的文本检测DL网络的高级API。更多...
 
类  cv::dnn::TextDetectionModel_EAST
 此类表示与EAST模型兼容的文本检测DL网络的高级API。更多...
 
类  cv::dnn::TextRecognitionModel
 此类表示文本识别网络的高级API。更多...
 

类型定义

typedef std::map< std::string, std::vector< LayerFactory::Constructor > > cv::dnn::LayerFactory_Impl
 
typedef std::vector< int > cv::dnn::MatShape
 

枚举

枚举  cv::dnn::Backend {
  cv::dnn::DNN_BACKEND_DEFAULT = 0 ,
  cv::dnn::DNN_BACKEND_HALIDE ,
  cv::dnn::DNN_BACKEND_INFERENCE_ENGINE ,
  cv::dnn::DNN_BACKEND_OPENCV ,
  cv::dnn::DNN_BACKEND_VKCOM ,
  cv::dnn::DNN_BACKEND_CUDA ,
  cv::dnn::DNN_BACKEND_WEBNN ,
  cv::dnn::DNN_BACKEND_TIMVX ,
  cv::dnn::DNN_BACKEND_CANN
}
 层支持的计算后端枚举。更多...
 
枚举  cv::dnn::DataLayout {
  cv::dnn::DNN_LAYOUT_UNKNOWN = 0 ,
  cv::dnn::DNN_LAYOUT_ND = 1 ,
  cv::dnn::DNN_LAYOUT_NCHW = 2 ,
  cv::dnn::DNN_LAYOUT_NCDHW = 3 ,
  cv::dnn::DNN_LAYOUT_NHWC = 4 ,
  cv::dnn::DNN_LAYOUT_NDHWC = 5 ,
  cv::dnn::DNN_LAYOUT_PLANAR = 6
}
 模型推理数据布局枚举。更多...
 
枚举  cv::dnn::ImagePaddingMode {
  cv::dnn::DNN_PMODE_NULL = 0 ,
  cv::dnn::DNN_PMODE_CROP_CENTER = 1 ,
  cv::dnn::DNN_PMODE_LETTERBOX = 2
}
 图像处理模式枚举。为了方便dnn模型的专业化预处理要求。例如,Yolo系列模型中常用的letter box更多...
 
enum class  cv::dnn::SoftNMSMethod {
  cv::dnn::SoftNMSMethod::SOFTNMS_LINEAR = 1 ,
  cv::dnn::SoftNMSMethod::SOFTNMS_GAUSSIAN = 2
}
 Soft NMS 方法枚举。更多...
 
枚举  cv::dnn::Target {
  cv::dnn::DNN_TARGET_CPU = 0 ,
  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 ,
  cv::dnn::DNN_TARGET_CUDA ,
  cv::dnn::DNN_TARGET_CUDA_FP16 ,
  cv::dnn::DNN_TARGET_HDDL ,
  cv::dnn::DNN_TARGET_NPU ,
  cv::dnn::DNN_TARGET_CPU_FP16
}
 计算目标设备枚举。更多...
 

函数

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)
 从图像创建4维Blob。可选地调整图像大小并从中心裁剪图像,减去mean值,通过scalefactor缩放值,交换蓝色和红色通道。
 
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)
 从图像创建4维Blob。
 
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)
 从系列图像创建4维Blob。可选地调整图像大小并从中心裁剪图像,减去mean值,通过scalefactor缩放值,交换蓝色和红色通道。
 
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)
 从系列图像创建4维Blob。
 
Mat cv::dnn::blobFromImagesWithParams (InputArrayOfArrays images, const Image2BlobParams &param=Image2BlobParams())
 根据给定参数从系列图像创建4维Blob。
 
void cv::dnn::blobFromImagesWithParams (InputArrayOfArrays images, OutputArray blob, const Image2BlobParams &param=Image2BlobParams())
 
Mat cv::dnn::blobFromImageWithParams (InputArray image, const Image2BlobParams &param=Image2BlobParams())
 根据给定参数从图像创建4维Blob。
 
void cv::dnn::blobFromImageWithParams (InputArray image, OutputArray blob, const Image2BlobParams &param=Image2BlobParams())
 
void cv::dnn::enableModelDiagnostics (bool isDiagnosticsMode)
 启用CV DNN API加载DNN模型的详细日志记录。
 
std::vector< std::pair< Backend, Target > > cv::dnn::getAvailableBackends ()
 
std::vector< Targetcv::dnn::getAvailableTargets (dnn::Backend be)
 
LayerFactory_Implcv::dnn::getLayerFactoryImpl ()
 
Mutexcv::dnn::getLayerFactoryMutex ()
 获取守护 LayerFactory_Impl 的互斥量,参见 getLayerFactoryImpl() 函数。
 
void cv::dnn::imagesFromBlob (const cv::Mat &blob_, OutputArrayOfArrays images_)
 解析一个4D Blob,并将其包含的图像作为2D数组通过更简单的数据结构(std::vector<cv::Mat>)输出。
 
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)
 对给定边界框和相应分数执行非极大值抑制。
 
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)
 
void cv::dnn::NMSBoxesBatched (const std::vector< Rect > &bboxes, const std::vector< float > &scores, const std::vector< int > &class_ids, 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::NMSBoxesBatched (const std::vector< Rect2d > &bboxes, const std::vector< float > &scores, const std::vector< int > &class_ids, 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 &framework, const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >())
 读取以支持格式之一表示的深度学习网络。
 
Net cv::dnn::readNet (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config="", const String &framework="")
 读取以支持格式之一表示的深度学习网络。
 
Net cv::dnn::readNetFromCaffe (const char *bufferProto, size_t lenProto, const char *bufferModel=NULL, size_t lenModel=0)
 读取内存中以Caffe模型格式存储的网络模型。
 
Net cv::dnn::readNetFromCaffe (const std::vector< uchar > &bufferProto, const std::vector< uchar > &bufferModel=std::vector< uchar >())
 读取内存中以Caffe模型格式存储的网络模型。
 
Net cv::dnn::readNetFromCaffe (CV_WRAP_FILE_PATH const String &prototxt, CV_WRAP_FILE_PATH const String &caffeModel=String())
 读取以 Caffe 框架格式存储的网络模型。
 
Net cv::dnn::readNetFromDarknet (const char *bufferCfg, size_t lenCfg, const char *bufferModel=NULL, size_t lenModel=0)
 读取以 Darknet 模型文件格式存储的网络模型。
 
Net cv::dnn::readNetFromDarknet (const std::vector< uchar > &bufferCfg, const std::vector< uchar > &bufferModel=std::vector< uchar >())
 读取以 Darknet 模型文件格式存储的网络模型。
 
Net cv::dnn::readNetFromDarknet (CV_WRAP_FILE_PATH const String &cfgFile, CV_WRAP_FILE_PATH const String &darknetModel=String())
 读取以 Darknet 模型文件格式存储的网络模型。
 
Net cv::dnn::readNetFromModelOptimizer (const std::vector< uchar > &bufferModelConfig, const std::vector< uchar > &bufferWeights)
 从Intel的 Model Optimizer 中间表示加载网络。
 
Net cv::dnn::readNetFromModelOptimizer (const uchar *bufferModelConfigPtr, size_t bufferModelConfigSize, const uchar *bufferWeightsPtr, size_t bufferWeightsSize)
 从Intel的 Model Optimizer 中间表示加载网络。
 
Net cv::dnn::readNetFromModelOptimizer (CV_WRAP_FILE_PATH const String &xml, CV_WRAP_FILE_PATH const String &bin="")
 从Intel的 Model Optimizer 中间表示加载网络。
 
Net cv::dnn::readNetFromONNX (const char *buffer, size_t sizeBuffer)
 ONNX 内存缓冲区读取网络模型。
 
Net cv::dnn::readNetFromONNX (const std::vector< uchar > &buffer)
 ONNX 内存缓冲区读取网络模型。
 
Net cv::dnn::readNetFromONNX (CV_WRAP_FILE_PATH const String &onnxFile)
 读取 ONNX 网络模型。
 
Net cv::dnn::readNetFromTensorflow (const char *bufferModel, size_t lenModel, const char *bufferConfig=NULL, size_t lenConfig=0)
 读取以 TensorFlow 框架格式存储的网络模型。
 
Net cv::dnn::readNetFromTensorflow (const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >())
 读取以 TensorFlow 框架格式存储的网络模型。
 
Net cv::dnn::readNetFromTensorflow (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config=String())
 读取以 TensorFlow 框架格式存储的网络模型。
 
Net cv::dnn::readNetFromTFLite (const char *bufferModel, size_t lenModel)
 读取以 TFLite 框架格式存储的网络模型。
 
Net cv::dnn::readNetFromTFLite (const std::vector< uchar > &bufferModel)
 读取以 TFLite 框架格式存储的网络模型。
 
Net cv::dnn::readNetFromTFLite (CV_WRAP_FILE_PATH const String &model)
 读取以 TFLite 框架格式存储的网络模型。
 
Net cv::dnn::readNetFromTorch (CV_WRAP_FILE_PATH const String &model, bool isBinary=true, bool evaluate=true)
 读取以 Torch7 框架格式存储的网络模型。
 
Mat cv::dnn::readTensorFromONNX (CV_WRAP_FILE_PATH const String &path)
 从 .pb 文件创建Blob。
 
Mat cv::dnn::readTorchBlob (const String &filename, bool isBinary=true)
 加载作为Torch7框架的 torch.Tensor 对象序列化的Blob。
 
void cv::dnn::shrinkCaffeModel (CV_WRAP_FILE_PATH const String &src, CV_WRAP_FILE_PATH const String &dst, const std::vector< String > &layersTypes=std::vector< String >())
 将Caffe网络的所有权重转换为半精度浮点数。
 
void cv::dnn::softNMSBoxes (const std::vector< Rect > &bboxes, const std::vector< float > &scores, std::vector< float > &updated_scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, size_t top_k=0, const float sigma=0.5, SoftNMSMethod method=SoftNMSMethod::SOFTNMS_GAUSSIAN)
 对给定边界框和相应分数执行软非极大值抑制。参考:https://arxiv.org/abs/1704.04503
 
void cv::dnn::writeTextGraph (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &output)
 为以协议缓冲区格式存储的二进制网络创建文本表示。
 

类型定义文档

◆ LayerFactory_Impl

typedef std::map<std::string, std::vector<LayerFactory::Constructor> > cv::dnn::LayerFactory_Impl

◆ MatShape

typedef std::vector<int> cv::dnn::MatShape

#include <opencv2/dnn/dnn.hpp>

枚举类型文档

◆ Backend

#include <opencv2/dnn/dnn.hpp>

层支持的计算后端枚举。

另请参见
Net::setPreferableBackend
枚举器
DNN_BACKEND_DEFAULT 
Python: cv.dnn.DNN_BACKEND_DEFAULT

DNN_BACKEND_DEFAULT 等同于 OPENCV_DNN_BACKEND_DEFAULT,后者可以使用 CMake 或配置参数定义。

DNN_BACKEND_HALIDE 
Python: cv.dnn.DNN_BACKEND_HALIDE
DNN_BACKEND_INFERENCE_ENGINE 
Python: cv.dnn.DNN_BACKEND_INFERENCE_ENGINE

Intel OpenVINO 计算后端,支持的目标:CPU、OPENCL、OPENCL_FP16、MYRIAD、HDDL、NPU

注意
OpenCV与OpenVINO的构建教程:OpenCV与OpenVINO的使用
DNN_BACKEND_OPENCV 
Python: cv.dnn.DNN_BACKEND_OPENCV
DNN_BACKEND_VKCOM 
Python: cv.dnn.DNN_BACKEND_VKCOM
DNN_BACKEND_CUDA 
Python: cv.dnn.DNN_BACKEND_CUDA
DNN_BACKEND_WEBNN 
Python: cv.dnn.DNN_BACKEND_WEBNN
DNN_BACKEND_TIMVX 
Python: cv.dnn.DNN_BACKEND_TIMVX
DNN_BACKEND_CANN 
Python: cv.dnn.DNN_BACKEND_CANN

◆ DataLayout

#include <opencv2/dnn/dnn.hpp>

模型推理数据布局枚举。

另请参见
Image2BlobParams
枚举器
DNN_LAYOUT_UNKNOWN 
Python: cv.dnn.DNN_LAYOUT_UNKNOWN
DNN_LAYOUT_ND 
Python: cv.dnn.DNN_LAYOUT_ND

OpenCV 2D数据布局。

DNN_LAYOUT_NCHW 
Python: cv.dnn.DNN_LAYOUT_NCHW

OpenCV 4D数据布局。

DNN_LAYOUT_NCDHW 
Python: cv.dnn.DNN_LAYOUT_NCDHW

OpenCV 5D数据布局。

DNN_LAYOUT_NHWC 
Python: cv.dnn.DNN_LAYOUT_NHWC

类似于Tensorflow的4D数据布局。

DNN_LAYOUT_NDHWC 
Python: cv.dnn.DNN_LAYOUT_NDHWC

类似于Tensorflow的5D数据布局。

DNN_LAYOUT_PLANAR 
Python: cv.dnn.DNN_LAYOUT_PLANAR

类似于Tensorflow的数据布局,它应该只在tf或tflite模型解析时使用。

◆ ImagePaddingMode

#include <opencv2/dnn/dnn.hpp>

图像处理模式枚举。为了方便dnn模型的专业化预处理要求。例如,Yolo系列模型中常用的letter box更多...

另请参见
Image2BlobParams
枚举器
DNN_PMODE_NULL 
Python: cv.dnn.DNN_PMODE_NULL
DNN_PMODE_CROP_CENTER 
Python: cv.dnn.DNN_PMODE_CROP_CENTER
DNN_PMODE_LETTERBOX 
Python: cv.dnn.DNN_PMODE_LETTERBOX

◆ SoftNMSMethod

enum class cv::dnn::SoftNMSMethod
strong

#include <opencv2/dnn/dnn.hpp>

Soft NMS 方法枚举。

另请参见
softNMSBoxes
枚举器
SOFTNMS_LINEAR 
SOFTNMS_GAUSSIAN 

◆ Target

#include <opencv2/dnn/dnn.hpp>

计算目标设备枚举。

另请参见
Net::setPreferableTarget
枚举器
DNN_TARGET_CPU 
Python: cv.dnn.DNN_TARGET_CPU
DNN_TARGET_OPENCL 
Python: cv.dnn.DNN_TARGET_OPENCL
DNN_TARGET_OPENCL_FP16 
Python: cv.dnn.DNN_TARGET_OPENCL_FP16
DNN_TARGET_MYRIAD 
Python: cv.dnn.DNN_TARGET_MYRIAD
DNN_TARGET_VULKAN 
Python: cv.dnn.DNN_TARGET_VULKAN
DNN_TARGET_FPGA 
Python: cv.dnn.DNN_TARGET_FPGA

使用Inference Engine的异构插件,FPGA设备支持CPU回退。

DNN_TARGET_CUDA 
Python: cv.dnn.DNN_TARGET_CUDA
DNN_TARGET_CUDA_FP16 
Python: cv.dnn.DNN_TARGET_CUDA_FP16
DNN_TARGET_HDDL 
Python: cv.dnn.DNN_TARGET_HDDL
DNN_TARGET_NPU 
Python: cv.dnn.DNN_TARGET_NPU
DNN_TARGET_CPU_FP16 
Python: cv.dnn.DNN_TARGET_CPU_FP16

函数文档

◆ blobFromImage() [1/2]

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 )
Python
cv.dnn.blobFromImage(image[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

从图像创建4维Blob。可选地调整图像大小并从中心裁剪图像,减去mean值,通过scalefactor缩放值,交换蓝色和红色通道。

参数
image输入图像(1、3或4通道)。
scalefactorimages 值的乘数。
size输出图像的空间尺寸
mean从通道中减去的均值标量。如果image是BGR顺序且swapRB为true,则这些值应按(mean-R, mean-G, mean-B)顺序。
swapRB指示3通道图像中是否需要交换第一个和最后一个通道的标志。
crop指示图像在调整大小后是否将被裁剪的标志
ddepth输出Blob的深度。选择CV_32F或CV_8U。

如果crop为true,则输入图像将被调整大小,使得调整大小后的一侧等于size中的相应维度,另一侧等于或大于。然后,执行从中心裁剪。如果crop为false,则执行直接调整大小而不裁剪并保持纵横比。

返回
NCHW维度顺序的4维Mat
注意
scalefactormean的顺序和用法是 (input - mean) * scalefactor。

◆ blobFromImage() [2/2]

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 )
Python
cv.dnn.blobFromImage(image[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

从图像创建4维Blob。

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

◆ blobFromImages() [1/2]

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 )
Python
cv.dnn.blobFromImages(images[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

从系列图像创建4维Blob。可选地调整图像大小并从中心裁剪图像,减去mean值,通过scalefactor缩放值,交换蓝色和红色通道。

参数
images输入图像 (所有图像均为1、3或4通道)。
size输出图像的空间尺寸
mean从通道中减去的均值标量。如果image是BGR顺序且swapRB为true,则这些值应按(mean-R, mean-G, mean-B)顺序。
scalefactorimages 值的乘数。
swapRB指示3通道图像中是否需要交换第一个和最后一个通道的标志。
crop指示图像在调整大小后是否将被裁剪的标志
ddepth输出Blob的深度。选择CV_32F或CV_8U。

如果crop为true,则输入图像将被调整大小,使得调整大小后的一侧等于size中的相应维度,另一侧等于或大于。然后,执行从中心裁剪。如果crop为false,则执行直接调整大小而不裁剪并保持纵横比。

返回
NCHW维度顺序的4维Mat
注意
scalefactormean的顺序和用法是 (input - mean) * scalefactor。

◆ blobFromImages() [2/2]

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 )
Python
cv.dnn.blobFromImages(images[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]]) -> retval

#include <opencv2/dnn/dnn.hpp>

从系列图像创建4维Blob。

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

◆ blobFromImagesWithParams() [1/2]

Mat cv::dnn::blobFromImagesWithParams ( InputArrayOfArrays images,
const Image2BlobParams & param = Image2BlobParams() )
Python
cv.dnn.blobFromImagesWithParams(images[, param]) -> retval
cv.dnn.blobFromImagesWithParams(images[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

根据给定参数从系列图像创建4维Blob。

此函数是 blobFromImages 的扩展,旨在满足更多的图像预处理需求。给定输入图像和预处理参数,函数将输出blob。

参数
images输入图像 (所有图像均为1、3或4通道)。
paramImage2BlobParams 结构体,包含图像到blob处理所需的所有参数。
返回
4维 Mat

◆ blobFromImagesWithParams() [2/2]

void cv::dnn::blobFromImagesWithParams ( InputArrayOfArrays images,
OutputArray blob,
const Image2BlobParams & param = Image2BlobParams() )
Python
cv.dnn.blobFromImagesWithParams(images[, param]) -> retval
cv.dnn.blobFromImagesWithParams(images[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

◆ blobFromImageWithParams() [1/2]

Mat cv::dnn::blobFromImageWithParams ( InputArray image,
const Image2BlobParams & param = Image2BlobParams() )
Python
cv.dnn.blobFromImageWithParams(image[, param]) -> retval
cv.dnn.blobFromImageWithParams(image[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

根据给定参数从图像创建4维Blob。

此函数是 blobFromImage 的扩展,旨在满足更多的图像预处理需求。给定输入图像和预处理参数,函数将输出blob。

参数
image输入图像 (所有图像均为1、3或4通道)。
paramImage2BlobParams 结构体,包含图像到blob处理所需的所有参数。
返回
4维 Mat

◆ blobFromImageWithParams() [2/2]

void cv::dnn::blobFromImageWithParams ( InputArray image,
OutputArray blob,
const Image2BlobParams & param = Image2BlobParams() )
Python
cv.dnn.blobFromImageWithParams(image[, param]) -> retval
cv.dnn.blobFromImageWithParams(image[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

◆ enableModelDiagnostics()

void cv::dnn::enableModelDiagnostics ( bool isDiagnosticsMode)

#include <opencv2/dnn/dnn.hpp>

启用CV DNN API加载DNN模型的详细日志记录。

参数
[输入]isDiagnosticsMode指示是否应设置诊断模式。

诊断模式提供模型加载阶段的详细日志记录,以探索潜在问题(例如:未实现的层类型)。

注意
在诊断模式下,一系列断言将被跳过,这可能导致应用程序崩溃。

◆ getAvailableBackends()

std::vector< std::pair< Backend, Target > > cv::dnn::getAvailableBackends ( )

#include <opencv2/dnn/dnn.hpp>

◆ getAvailableTargets()

std::vector< Target > cv::dnn::getAvailableTargets ( dnn::Backend be)
Python
cv.dnn.getAvailableTargets(be) -> retval

#include <opencv2/dnn/dnn.hpp>

◆ getLayerFactoryImpl()

LayerFactory_Impl & cv::dnn::getLayerFactoryImpl ( )

#include <opencv2/dnn/layer_reg.private.hpp>

注册DNN模型的层类型。

注意
为了线程安全地访问工厂,请参阅 getLayerFactoryMutex() 函数。

◆ getLayerFactoryMutex()

Mutex & cv::dnn::getLayerFactoryMutex ( )

#include <opencv2/dnn/layer_reg.private.hpp>

获取守护 LayerFactory_Impl 的互斥量,参见 getLayerFactoryImpl() 函数。

◆ imagesFromBlob()

void cv::dnn::imagesFromBlob ( const cv::Mat & blob_,
OutputArrayOfArrays images_ )
Python
cv.dnn.imagesFromBlob(blob_[, images_]) -> images_

#include <opencv2/dnn/dnn.hpp>

解析一个4D Blob,并将其包含的图像作为2D数组通过更简单的数据结构(std::vector<cv::Mat>)输出。

参数
[输入]blob_希望从中提取图像的4维数组(图像、通道、高度、宽度),采用浮点精度 (CV_32F)。
[输出]images_包含从blob中提取的图像的2D Mat 数组,采用浮点精度 (CV_32F)。它们既未归一化,也未添加均值。返回的图像数量等于blob的第一维(批次大小)。每张图像的通道数等于blob的第二维(深度)。

◆ NMSBoxes() [1/3]

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 > & 索引,
const float eta = 1.f,
const int top_k = 0 )
Python
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引

#include <opencv2/dnn/dnn.hpp>

对给定边界框和相应分数执行非极大值抑制。

参数
bboxes要应用NMS的边界框集合。
scores一组对应的置信度。
score_threshold用于按分数过滤框的阈值。
nms_threshold用于非极大值抑制的阈值。
索引NMS后保留的边界框索引。
eta自适应阈值公式中的一个系数:\(nms\_threshold_{i+1}=eta\cdot nms\_threshold_i\)。
top_k如果 >0,最多保留 top_k 个选定的索引。

◆ NMSBoxes() [2/3]

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 > & 索引,
const float eta = 1.f,
const int top_k = 0 )
Python
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引

#include <opencv2/dnn/dnn.hpp>

◆ NMSBoxes() [3/3]

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 > & 索引,
const float eta = 1.f,
const int top_k = 0 )
Python
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引

#include <opencv2/dnn/dnn.hpp>

◆ NMSBoxesBatched() [1/2]

void cv::dnn::NMSBoxesBatched ( const std::vector< Rect > & bboxes,
const std::vector< float > & scores,
const std::vector< int > & class_ids,
const float score_threshold,
const float nms_threshold,
std::vector< int > & 索引,
const float eta = 1.f,
const int top_k = 0 )
Python
cv.dnn.NMSBoxesBatched(bboxes, scores, class_ids, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引

#include <opencv2/dnn/dnn.hpp>

对给定边界框和不同类别的相应分数执行批量非极大值抑制。

参数
bboxes要应用NMS的边界框集合。
scores一组对应的置信度。
class_ids一组对应的类别ID。ID为整数,通常从0开始。
score_threshold用于按分数过滤框的阈值。
nms_threshold用于非极大值抑制的阈值。
索引NMS后保留的边界框索引。
eta自适应阈值公式中的一个系数:\(nms\_threshold_{i+1}=eta\cdot nms\_threshold_i\)。
top_k如果 >0,最多保留 top_k 个选定的索引。

◆ NMSBoxesBatched() [2/2]

void cv::dnn::NMSBoxesBatched ( const std::vector< Rect2d > & bboxes,
const std::vector< float > & scores,
const std::vector< int > & class_ids,
const float score_threshold,
const float nms_threshold,
std::vector< int > & 索引,
const float eta = 1.f,
const int top_k = 0 )
Python
cv.dnn.NMSBoxesBatched(bboxes, scores, class_ids, score_threshold, nms_threshold[, eta[, top_k]]) -> 索引

#include <opencv2/dnn/dnn.hpp>

◆ readNet() [1/2]

Net cv::dnn::readNet ( const String & framework,
const std::vector< uchar > & bufferModel,
const std::vector< uchar > & bufferConfig = std::vector< uchar >() )
Python
cv.dnn.readNet(model[, config[, framework]]) -> retval
cv.dnn.readNet(framework, bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以支持格式之一表示的深度学习网络。

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

参数
[输入]framework原始框架名称。
[输入]bufferModel包含权重二进制文件内容的缓冲区。
[输入]bufferConfig包含网络配置文本文件内容的缓冲区。
返回
Net 对象。

◆ readNet() [2/2]

Net cv::dnn::readNet ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & config = "",
const String & framework = "" )
Python
cv.dnn.readNet(model[, config[, framework]]) -> retval
cv.dnn.readNet(framework, bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以支持格式之一表示的深度学习网络。

参数
[输入]model包含训练权重的二进制文件。不同框架的模型预期具有以下文件扩展名:
[输入]config包含网络配置的文本文件。它可能是以下扩展名的文件:
[输入]framework明确的框架名称标签,用于确定格式。
返回
Net 对象。

此函数会自动检测训练模型的原始框架,并调用相应的函数,例如 readNetFromCaffereadNetFromTensorflowreadNetFromTorchreadNetFromDarknetmodelconfig 参数的顺序无关紧要。

◆ readNetFromCaffe() [1/3]

Net cv::dnn::readNetFromCaffe ( const char * bufferProto,
size_t lenProto,
const char * bufferModel = NULL,
size_t lenModel = 0 )
Python
cv.dnn.readNetFromCaffe(prototxt[, caffeModel]) -> retval
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取内存中以Caffe模型格式存储的网络模型。

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

参数
bufferProto包含.prototxt文件内容的缓冲区
lenProtobufferProto的长度
bufferModel包含.caffemodel文件内容的缓冲区
lenModelbufferModel的长度
返回
Net 对象。

◆ readNetFromCaffe() [2/3]

Net cv::dnn::readNetFromCaffe ( const std::vector< uchar > & bufferProto,
const std::vector< uchar > & bufferModel = std::vector< uchar >() )
Python
cv.dnn.readNetFromCaffe(prototxt[, caffeModel]) -> retval
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取内存中以Caffe模型格式存储的网络模型。

参数
bufferProto包含.prototxt文件内容的缓冲区
bufferModel包含.caffemodel文件内容的缓冲区
返回
Net 对象。

◆ readNetFromCaffe() [3/3]

Net cv::dnn::readNetFromCaffe ( CV_WRAP_FILE_PATH const String & prototxt,
CV_WRAP_FILE_PATH const String & caffeModel = String() )
Python
cv.dnn.readNetFromCaffe(prototxt[, caffeModel]) -> retval
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 Caffe 框架格式存储的网络模型。

参数
prototxt指向包含网络架构文本描述的.prototxt文件的路径。
caffeModel指向包含已学习网络的.caffemodel文件的路径。
返回
Net 对象。

◆ readNetFromDarknet() [1/3]

Net cv::dnn::readNetFromDarknet ( const char * bufferCfg,
size_t lenCfg,
const char * bufferModel = NULL,
size_t lenModel = 0 )
Python
cv.dnn.readNetFromDarknet(cfgFile[, darknetModel]) -> retval
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 Darknet 模型文件格式存储的网络模型。

参数
bufferCfg包含网络架构文本描述的.cfg文件内容的缓冲区。
lenCfg从bufferCfg读取的字节数。
bufferModel包含已学习网络的.weights文件内容的缓冲区。
lenModel从bufferModel读取的字节数。
返回
Net 对象。

◆ readNetFromDarknet() [2/3]

Net cv::dnn::readNetFromDarknet ( const std::vector< uchar > & bufferCfg,
const std::vector< uchar > & bufferModel = std::vector< uchar >() )
Python
cv.dnn.readNetFromDarknet(cfgFile[, darknetModel]) -> retval
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 Darknet 模型文件格式存储的网络模型。

参数
bufferCfg包含网络架构文本描述的.cfg文件内容的缓冲区。
bufferModel包含已学习网络的.weights文件内容的缓冲区。
返回
Net 对象。

◆ readNetFromDarknet() [3/3]

Net cv::dnn::readNetFromDarknet ( CV_WRAP_FILE_PATH const String & cfgFile,
CV_WRAP_FILE_PATH const String & darknetModel = String() )
Python
cv.dnn.readNetFromDarknet(cfgFile[, darknetModel]) -> retval
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 Darknet 模型文件格式存储的网络模型。

参数
cfgFile指向包含网络架构文本描述的.cfg文件的路径。
darknetModel指向包含已学习网络的.weights文件的路径。
返回
准备好进行前向传播的网络对象,在失败情况下会抛出异常。

◆ readNetFromModelOptimizer() [1/3]

Net cv::dnn::readNetFromModelOptimizer ( const std::vector< uchar > & bufferModelConfig,
const std::vector< uchar > & bufferWeights )
Python
cv.dnn.readNetFromModelOptimizer(xml[, bin]) -> retval
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

#include <opencv2/dnn/dnn.hpp>

从Intel的 Model Optimizer 中间表示加载网络。

参数
[输入]bufferModelConfig包含网络拓扑XML配置的缓冲区。
[输入]bufferWeights包含训练权重二进制数据的缓冲区。
返回
Net 对象。从Intel的 Model Optimizer导入的网络将在Intel的Inference Engine后端启动。

◆ readNetFromModelOptimizer() [2/3]

Net cv::dnn::readNetFromModelOptimizer ( const uchar * bufferModelConfigPtr,
size_t bufferModelConfigSize,
const uchar * bufferWeightsPtr,
size_t bufferWeightsSize )
Python
cv.dnn.readNetFromModelOptimizer(xml[, bin]) -> retval
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

#include <opencv2/dnn/dnn.hpp>

从Intel的 Model Optimizer 中间表示加载网络。

参数
[输入]bufferModelConfigPtr指向包含网络拓扑XML配置的缓冲区的指针。
[输入]bufferModelConfigSizeXML配置数据的二进制大小。
[输入]bufferWeightsPtr指向包含训练权重二进制数据的缓冲区的指针。
[输入]bufferWeightsSize训练权重数据的二进制大小。
返回
Net 对象。从Intel的 Model Optimizer导入的网络将在Intel的Inference Engine后端启动。

◆ readNetFromModelOptimizer() [3/3]

Net cv::dnn::readNetFromModelOptimizer ( CV_WRAP_FILE_PATH const String & xml,
CV_WRAP_FILE_PATH const String & bin = "" )
Python
cv.dnn.readNetFromModelOptimizer(xml[, bin]) -> retval
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> retval

#include <opencv2/dnn/dnn.hpp>

从Intel的 Model Optimizer 中间表示加载网络。

参数
[输入]xml包含网络拓扑的XML配置文件。
[输入]bin包含训练权重的二进制文件。
返回
Net 对象。从Intel的 Model Optimizer导入的网络将在Intel的Inference Engine后端启动。

◆ readNetFromONNX() [1/3]

Net cv::dnn::readNetFromONNX ( const char * buffer,
size_t sizeBuffer )
Python
cv.dnn.readNetFromONNX(onnxFile) -> retval
cv.dnn.readNetFromONNX(buffer) -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX 内存缓冲区读取网络模型。

参数
buffer缓冲区的第一个字节的内存地址。
sizeBuffer缓冲区大小。
返回
准备好进行前向传播的网络对象,在失败情况下会抛出异常。

◆ readNetFromONNX() [2/3]

Net cv::dnn::readNetFromONNX ( const std::vector< uchar > & buffer)
Python
cv.dnn.readNetFromONNX(onnxFile) -> retval
cv.dnn.readNetFromONNX(buffer) -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX 内存缓冲区读取网络模型。

参数
buffer存储ONNX模型字节的内存缓冲区。
返回
准备好进行前向传播的网络对象,在失败情况下会抛出异常。

◆ readNetFromONNX() [3/3]

Net cv::dnn::readNetFromONNX ( CV_WRAP_FILE_PATH const String & onnxFile)
Python
cv.dnn.readNetFromONNX(onnxFile) -> retval
cv.dnn.readNetFromONNX(buffer) -> retval

#include <opencv2/dnn/dnn.hpp>

读取 ONNX 网络模型。

参数
onnxFile指向包含网络架构文本描述的.onnx文件的路径。
返回
准备好进行前向传播的网络对象,在失败情况下会抛出异常。

◆ readNetFromTensorflow() [1/3]

Net cv::dnn::readNetFromTensorflow ( const char * bufferModel,
size_t lenModel,
const char * bufferConfig = NULL,
size_t lenConfig = 0 )
Python
cv.dnn.readNetFromTensorflow(model[, config]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 TensorFlow 框架格式存储的网络模型。

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

参数
bufferModel包含pb文件内容的缓冲区
lenModelbufferModel的长度
bufferConfig包含pbtxt文件内容的缓冲区
lenConfigbufferConfig的长度

◆ readNetFromTensorflow() [2/3]

Net cv::dnn::readNetFromTensorflow ( const std::vector< uchar > & bufferModel,
const std::vector< uchar > & bufferConfig = std::vector< uchar >() )
Python
cv.dnn.readNetFromTensorflow(model[, config]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 TensorFlow 框架格式存储的网络模型。

参数
bufferModel包含pb文件内容的缓冲区
bufferConfig包含pbtxt文件内容的缓冲区
返回
Net 对象。

◆ readNetFromTensorflow() [3/3]

Net cv::dnn::readNetFromTensorflow ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & config = String() )
Python
cv.dnn.readNetFromTensorflow(model[, config]) -> retval
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 TensorFlow 框架格式存储的网络模型。

参数
model指向包含网络架构二进制protobuf描述的.pb文件的路径。
config指向包含protobuf格式的文本图定义的.pbtxt文件的路径。生成的 Net 对象由文本图使用二进制文件中的权重构建,这使其更灵活。
返回
Net 对象。

◆ readNetFromTFLite() [1/3]

Net cv::dnn::readNetFromTFLite ( const char * bufferModel,
size_t lenModel )
Python
cv.dnn.readNetFromTFLite(model) -> retval
cv.dnn.readNetFromTFLite(bufferModel) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 TFLite 框架格式存储的网络模型。

这是一个重载成员函数,为方便起见提供。它与上述函数的区别仅在于其接受的参数。

参数
bufferModel包含tflite文件内容的缓冲区
lenModelbufferModel的长度

◆ readNetFromTFLite() [2/3]

Net cv::dnn::readNetFromTFLite ( const std::vector< uchar > & bufferModel)
Python
cv.dnn.readNetFromTFLite(model) -> retval
cv.dnn.readNetFromTFLite(bufferModel) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 TFLite 框架格式存储的网络模型。

参数
bufferModel包含tflite文件内容的缓冲区
返回
Net 对象。

◆ readNetFromTFLite() [3/3]

Net cv::dnn::readNetFromTFLite ( CV_WRAP_FILE_PATH const String & model)
Python
cv.dnn.readNetFromTFLite(model) -> retval
cv.dnn.readNetFromTFLite(bufferModel) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 TFLite 框架格式存储的网络模型。

参数
model指向包含网络架构二进制flatbuffers描述的.tflite文件的路径。
返回
Net 对象。

◆ readNetFromTorch()

Net cv::dnn::readNetFromTorch ( CV_WRAP_FILE_PATH const String & model,
bool isBinary = true,
bool evaluate = true )
Python
cv.dnn.readNetFromTorch(model[, isBinary[, evaluate]]) -> retval

#include <opencv2/dnn/dnn.hpp>

读取以 Torch7 框架格式存储的网络模型。

参数
model使用torch.save()函数从Torch转储的文件路径。
isBinary指定网络是采用ascii模式还是二进制模式序列化的。
evaluate指定网络的测试阶段。如果为true,则类似于Torch中的evaluate()方法。
返回
Net 对象。
注意
Torch序列化器的Ascii模式更受欢迎,因为二进制模式大量使用C语言的long类型,该类型在不同系统上具有不同的位长度。

加载文件必须包含序列化的 nn.Module 对象,以及要导入的网络。尽量从序列化数据中排除自定义对象,以避免导入错误。

支持的层列表(即,派生自Torch nn.Module类的对象实例)

  • nn.Sequential
  • nn.Parallel
  • nn.Concat
  • nn.Linear
  • nn.SpatialConvolution
  • nn.SpatialMaxPooling, nn.SpatialAveragePooling
  • nn.ReLU, nn.TanH, nn.Sigmoid
  • nn.Reshape
  • nn.SoftMax, nn.LogSoftMax

此外,cunn、cudnn和fbcunn中这些类的一些等效项也可以成功导入。

◆ readTensorFromONNX()

Mat cv::dnn::readTensorFromONNX ( CV_WRAP_FILE_PATH const String & 路径)
Python
cv.dnn.readTensorFromONNX(路径) -> retval

#include <opencv2/dnn/dnn.hpp>

从 .pb 文件创建Blob。

参数
路径指向包含输入张量的.pb文件。
返回
Mat.

◆ readTorchBlob()

Mat cv::dnn::readTorchBlob ( const String & filename,
bool isBinary = true )
Python
cv.dnn.readTorchBlob(filename[, isBinary]) -> retval

#include <opencv2/dnn/dnn.hpp>

加载作为Torch7框架的 torch.Tensor 对象序列化的Blob。

警告
此函数具有与 readNetFromTorch() 相同的限制。

◆ shrinkCaffeModel()

void cv::dnn::shrinkCaffeModel ( CV_WRAP_FILE_PATH const String & src,
CV_WRAP_FILE_PATH const String & dst,
const std::vector< String > & layersTypes = std::vector< String >() )
Python
cv.dnn.shrinkCaffeModel(src, dst[, layersTypes]) ->

#include <opencv2/dnn/dnn.hpp>

将Caffe网络的所有权重转换为半精度浮点数。

参数
src指向Caffe框架中原始模型的路径,该模型包含单精度浮点权重(通常具有 .caffemodel 扩展名)。
dst指向包含更新权重的目标模型的路径。
layersTypes将转换其参数的层类型集合。默认情况下,仅转换卷积层和全连接层的权重。
注意
缩减后的模型不包含原始的float32权重,因此不能再在原始Caffe框架中使用。然而,数据结构取自NVidia的Caffe分支:https://github.com/NVIDIA/caffe。因此,生成后的模型可以在那里使用。

◆ softNMSBoxes()

void cv::dnn::softNMSBoxes ( const std::vector< Rect > & bboxes,
const std::vector< float > & scores,
std::vector< float > & updated_scores,
const float score_threshold,
const float nms_threshold,
std::vector< int > & 索引,
size_t top_k = 0,
const float sigma = 0.5,
SoftNMSMethod method = SoftNMSMethod::SOFTNMS_GAUSSIAN )
Python
cv.dnn.softNMSBoxes(bboxes, scores, score_threshold, nms_threshold[, top_k[, sigma[, method]]]) -> updated_scores, indices

#include <opencv2/dnn/dnn.hpp>

对给定边界框和相应分数执行软非极大值抑制。参考:https://arxiv.org/abs/1704.04503

参数
bboxes要应用Soft NMS的边界框集合。
scores一组对应的置信度。
updated_scores一组对应的更新置信度。
score_threshold用于按分数过滤框的阈值。
nms_threshold用于非极大值抑制的阈值。
索引NMS后保留的边界框索引。
top_k最多保留 top_k 个选定索引。
sigma高斯加权参数。
方法高斯或线性。
另请参见
SoftNMSMethod

◆ writeTextGraph()

void cv::dnn::writeTextGraph ( CV_WRAP_FILE_PATH const String & model,
CV_WRAP_FILE_PATH const String & output )
Python
cv.dnn.writeTextGraph(model, output) ->

#include <opencv2/dnn/dnn.hpp>

为以协议缓冲区格式存储的二进制网络创建文本表示。

参数
[输入]model二进制网络的路径。
[输入]输出要创建的输出文本文件的路径。
注意
为减小输出文件大小,不包含训练权重。