OpenCV  4.10.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模型兼容的文本检测深度学习网络的顶层API。 更多...
 
类  cv::dnn::TextDetectionModel_EAST
 本类表示与EAST模型兼容的文本检测深度学习网络的顶层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
 

枚举

enumcv::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
}
 层支持的计算后端枚举。 更多信息...
 
enumcv::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
}
 模型推理的数据布局枚举。 更多信息...
 
enumcv::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 classcv::dnn::SoftNMSMethod {
  cv::dnn::SoftNMSMethod::SOFTNMS_LINEAR = 1 ,
  cv::dnn::SoftNMSMethod::SOFTNMS_GAUSSIAN = 2
}
 Soft NMS方法的枚举。 更多信息...
 
enumcv::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)
 从一系列图像创建四维 blob。可选地根据中心调整图像大小和裁剪,减去均值值,按比例缩放值,交换蓝色和红色通道。
 
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)
 从一系列图像创建四维 blob。
 
Mat cv::dnn::blobFromImagesWithParams (InputArrayOfArrays images, const Image2BlobParams &param=Image2BlobParams())
 使用给定的参数从一系列图像创建四维 blob。
 
void cv::dnn::blobFromImagesWithParams (InputArrayOfArrays images, OutputArray blob, const Image2BlobParams &param=Image2BlobParams())
 
Mat cv::dnn::blobFromImageWithParams (InputArray image, const Image2BlobParams &param=Image2BlobParams())
 使用给定参数从图像创建四维 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,并通过更简单的数据结构(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& bufferCfg, const std::vector& bufferModel=std::vector())
 从存储在Darknet模型文件中的网络模型读取。
 
Net cv::dnn::readNetFromDarknet (const String& cfgFile, const String& darknetModel=String())
 从存储在Darknet模型文件中的网络模型读取。
 
Net cv::dnn::readNetFromModelOptimizer (const std::vector& bufferModelConfig, const std::vector& 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 (const String& xml, const String& bin=String())
 从Intel的Model Optimizer中间表示中加载网络。
 
Net cv::dnn::readNetFromONNX (const char* buffer, size_t sizeBuffer)
 ONNX的内存中读取网络模型。
 
Net cv::dnn::readNetFromONNX (const std::vector& buffer)
 ONNX的内存中读取网络模型。
 
Net cv::dnn::readNetFromONNX (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& bufferModel, const std::vector& bufferConfig=std::vector())
 从TensorFlow框架的格式读取存储的网络模型。
 
Net cv::dnn::readNetFromTensorflow (const String& model, const String& config=String())
 从TensorFlow框架的格式读取存储的网络模型。
 
Net cv::dnn::readNetFromTFLite (const char *bufferModel, size_t lenModel)
 读取存储在TFLite框架格式的网络模型。
 
Net cv::dnn::readNetFromTFLite (const std::vector& 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 (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& layersTypes=std::vector())
 将Caffe网络的所有权重转换为半精度浮点数。
 
void cv::dnn::softNMSBoxes (const std::vector& bboxes, const std::vector& scores, std::vector& updated_scores, const float score_threshold, const float nms_threshold, std::vector& 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> cv::dnn::LayerFactory_Impl

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

◆ MatShape

typedef std::vector cv::dnn::MatShape

#include <opencv2/dnn/dnn.hpp>

枚举类型文档

◆ Backend

enum cv::dnn::Backend

#include <opencv2/dnn/dnn.hpp>

层支持的计算后端枚举。

另请参阅
Net::setPreferableBackend
枚举器
默认后端
Python: cv.dnn.DNN_BACKEND_DEFAULT

默认后端等于 OPENCV_DNN_BACKEND_DEFAULT,可以通过 CMake 或配置参数来定义。

Halide 后端
Python: cv.dnn.DNN_BACKEND_HALIDE
INFERENGINE 后端
Python: cv.dnn.DNN_BACKEND_INFERENCE_ENGINE

Intel OpenVINO 计算后端

注意
如何使用 OpenVINO 构建 OpenCV 的教程: 使用 OpenVINO 的 OpenCV
OpenCV 后端
Python: cv.dnn.DNN_BACKEND_OPENCV
VKCOM 后端
Python: cv.dnn.DNN_BACKEND_VKCOM
CUDA 后端
Python: cv.dnn.DNN_BACKEND_CUDA
WEBNN 后端
Python: cv.dnn.DNN_BACKEND_WEBNN
TIMVX 后端
Python: cv.dnn.DNN_BACKEND_TIMVX
CANN 后端
Python: cv.dnn.DNN_BACKEND_CANN

◆ 数据布局

#include <opencv2/dnn/dnn.hpp>

模型推理的数据布局枚举。

另请参阅
图像到 Blob 参数
枚举器
未知布局
Python: cv.dnn.DNN_LAYOUT_UNKNOWN
ND 布局
Python: cv.dnn.DNN_LAYOUT_ND

OpenCV 为 2D 数据提供的数据布局。

NCHW 布局
Python: cv.dnn.DNN_LAYOUT_NCHW

OpenCV 为 4D 数据提供的数据布局。

NCDHW 布局
Python: cv.dnn.DNN_LAYOUT_NCDHW

OpenCV 为 5D 数据提供的数据布局。

NHWC 布局
Python: cv.dnn.DNN_LAYOUT_NHWC

针对 4D 数据的类似 Tensorflow 的数据布局。

NDHWC 布局
Python: cv.dnn.DNN_LAYOUT_NDHWC

针对 5D 数据的类似 Tensorflow 的数据布局。

平面布局
Python: cv.dnn.DNN_LAYOUT_PLANAR

类似 Tensorflow 的平面布局,仅应在解析 tf 或 tflite 模型时使用。

◆ 图像填充模式

#include <opencv2/dnn/dnn.hpp>

图像处理模式的枚举。用于满足 dnn 模型预处理的专业要求。例如,在 YOLO 系列模型中经常使用的 letter box。

另请参阅
图像到 Blob 参数
枚举器
空模式
Python: cv.dnn.DNN_PMODE_NULL
中心裁剪模式
Python: cv.dnn.DNN_PMODE_CROP_CENTER
Letterbox 模式
Python: cv.dnn.DNN_PMODE_LETTERBOX

◆ SoftNMSMethod

枚举类 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

FPGA 设备,带有使用 Inference Engine 异构插件的 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 个通道)。
scalefactor乘以 images 值的乘数。
size输出图像的空间大小。
mean减去该标量后得到的均值值。如果 image 使用 BGR 排序且 swapRB 为真,则值按(mean-R,mean-G,mean-B)顺序。
swapRB表示在 3 通道图像中是否需要在第一个和最后一个通道之间进行交换的标志。
crop表示调整大小后是否将裁剪图像的标志。
ddepth输出 blob 的深度。选择 CV_32F 或 CV_8U。

如果 crop 为真,输入图像将被调整大小,使得调整后的一边等于 size 中对应的尺寸,另一边等于或大于。然后从中心裁剪。如果 crop 为假,则直接调整大小,不裁剪并保持宽高比。

返回
具有 NCHW 维度顺序的 4 维 Mat
注意
scalefactormean 的顺序和用法是 (输入 - 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>

从一系列图像创建四维 blob。可选地根据中心调整图像大小和裁剪,减去均值值,按比例缩放值,交换蓝色和红色通道。

参数
imagesinput images (所有都有 1、3 或 4 个通道)。
size输出图像的空间大小。
mean减去该标量后得到的均值值。如果 image 使用 BGR 排序且 swapRB 为真,则值按(mean-R,mean-G,mean-B)顺序。
scalefactor乘以 images 值的乘数。
swapRB表示在 3 通道图像中是否需要在第一个和最后一个通道之间进行交换的标志。
crop表示调整大小后是否将裁剪图像的标志。
ddepth输出 blob 的深度。选择 CV_32F 或 CV_8U。

如果 crop 为真,输入图像将被调整大小,使得调整后的一边等于 size 中对应的尺寸,另一边等于或大于。然后从中心裁剪。如果 crop 为假,则直接调整大小,不裁剪并保持宽高比。

返回
具有 NCHW 维度顺序的 4 维 Mat
注意
scalefactormean 的顺序和用法是 (输入 - 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>

从一系列图像创建四维 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>

使用给定的参数从一系列图像创建四维 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>

使用给定参数从图像创建四维 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 模型时的详细日志。

参数
[in]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,并通过更简单的数据结构(std::vector< cv::Mat>)输出其中包含的图像作为二维数组。

参数
[in]blob_从浮点精度(CV_32F)的4维数组(images, 通道, 高度, 宽度)中提取图像。
[输出]images_包含从blob中提取的图像的二维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 > &  indices,
const float  eta = 1.f,
const int  top_k = 0 
)
Python
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices

#include <opencv2/dnn/dnn.hpp>

对给定的框和相应的分数执行非最大值抑制。

参数
bboxes应用于NMS的一组边界框。
scores相应置信度的一组。
score_threshold用于通过分数过滤边界框的阈值。
nms_threshold在非最大抑制中使用的阈值。
indices在NMS后保留的bbox索引。
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 > &  indices,
const float  eta = 1.f,
const int  top_k = 0 
)
Python
cv.dnn.NMSBoxes(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices
cv.dnn.NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold[, eta[, top_k]]) -> indices

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

#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 > &  indices,
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]]) -> indices

#include <opencv2/dnn/dnn.hpp>

在给定框和相应分数的不同类别上执行批处理非最大值抑制。

参数
bboxes应用于NMS的一组边界框。
scores相应置信度的一组。
class_ids一组相应的类别ID。ID是整数,通常从0开始。
score_threshold用于通过分数过滤边界框的阈值。
nms_threshold在非最大抑制中使用的阈值。
indices在NMS后保留的bbox索引。
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 > &  indices,
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]]) -> indices

#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>

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

这是一个为方便提供的重载成员函数,它与上述函数的不同之处在于它接受的参数。

参数
[in]framework原始框架名称。
[in]bufferModel包含权重二进制文件内容的缓冲区。
[in]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>

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

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

此函数自动检测训练模型的原始框架并调用适当的函数,例如 readNetFromCaffereadNetFromTensorflowreadNetFromTorchreadNetFromDarknet。参数 modelconfig 的顺序不重要。

◆ 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中间表示中加载网络。

参数
[in]bufferModelConfig包含网络拓扑的 XML 配置的缓冲区。
[in]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中间表示中加载网络。

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

bin = "" 

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中间表示中加载网络。

参数
[in]包含网络拓扑的 XML 配置文件。包含训练权重二进制文件。
[in]◆ readNetFromONNX() [1/3]Net cv::dnn::readNetFromONNX
返回
Net 对象。从 Intel 的 Model Optimizer 导入的网络在 Intel 的 Inference Engine 后端启动。

buffer

sizeBuffer  ( const char *  cv.dnn.readNetFromONNX(,
size_t  onnxFile
)
Python
buffersizeBuffer) -> retval
buffercv.dnn.readNetFromONNX() -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX的内存中读取网络模型。

参数
cv.dnn.readNetFromONNX(存储 ONNX 模型字节的内存缓冲区。
sizeBuffer缓冲区的大小。
返回
准备进行前向传播的网络对象,在失败情况下抛出异常。

◆ readNetFromONNX() [2/3]

sizeBuffer  ( const std::vector< uchar > &  cv.dnn.readNetFromONNX()
Python
buffersizeBuffer) -> retval
buffercv.dnn.readNetFromONNX() -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX的内存中读取网络模型。

参数
cv.dnn.readNetFromONNX(含 ONNX 模型字节的内存缓冲区。
返回
准备进行前向传播的网络对象,在失败情况下抛出异常。

◆ readNetFromONNX() [3/3]

sizeBuffer  ( CV_WRAP_FILE_PATH const String sizeBuffer)
Python
buffersizeBuffer) -> retval
buffercv.dnn.readNetFromONNX() -> retval

#include <opencv2/dnn/dnn.hpp>

ONNX读取网络模型。

参数
sizeBuffer包含文本描述网络架构的 .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使用torch.save()函数导出的文件路径。
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 path)
Python
cv.dnn.readTensorFromONNX(path) -> retval

#include <opencv2/dnn/dnn.hpp>

从.pb文件创建blob。

参数
path包含输入张量的.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]) -> None

#include <opencv2/dnn/dnn.hpp>

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

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

◆ 软NMSBoxes()

void cv::dnn::软NMSBoxes ( 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 
)
Python
cv.dnn软NMSBoxes(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在非最大抑制中使用的阈值。
indices在NMS后保留的bbox索引。
top_k保留最多top_k个选取的索引。
sigma高斯权重的参数。
method高斯或线性。
另请参阅
SoftNMSMethod

◆ 写TextGraph()

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

#include <opencv2/dnn/dnn.hpp>

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

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