OpenCV
开源计算机视觉
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
深度神经网络模块

主题

 已实现层的部分列表
 
 用于新层注册的实用程序
 

详细描述

此模块包含:

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

类 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 模型的专门预处理要求。例如,letter box 经常用于 Yolo 系列模型。 更多…
 
枚举类 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)
 从图像创建四维Blob。可以选择从中心调整大小和裁剪image,减去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)
 从图像创建四维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。可以选择从中心调整大小和裁剪images,减去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)
 从一系列图像创建四维 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 并将其包含的图像作为 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)
 从英特尔的模型优化器中间表示加载网络。
 
Net cv::dnn::readNetFromModelOptimizer (const uchar *bufferModelConfigPtr, size_t bufferModelConfigSize, const uchar *bufferWeightsPtr, size_t bufferWeightsSize)
 从英特尔的模型优化器中间表示加载网络。
 
Net cv::dnn::readNetFromModelOptimizer (CV_WRAP_FILE_PATH const String &xml, CV_WRAP_FILE_PATH const String &bin="")
 从英特尔的模型优化器中间表示加载网络。
 
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 计算后端

注意
使用 OpenVINO 构建 OpenCV 的教程: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 用于二维数据的布局。

DNN_LAYOUT_NCHW 
Python: cv.dnn.DNN_LAYOUT_NCHW

OpenCV 用于四维数据的布局。

DNN_LAYOUT_NCDHW 
Python: cv.dnn.DNN_LAYOUT_NCDHW

OpenCV 用于五维数据的布局。

DNN_LAYOUT_NHWC 
Python: cv.dnn.DNN_LAYOUT_NHWC

类似 TensorFlow 的四维数据布局。

DNN_LAYOUT_NDHWC 
Python: cv.dnn.DNN_LAYOUT_NDHWC

类似 TensorFlow 的五维数据布局。

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

枚举类 cv::dnn::SoftNMSMethod

#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

使用推理引擎的异构插件的具有 CPU 回退功能的 FPGA 设备。

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]]]]]]) -> 返回值

#include <opencv2/dnn/dnn.hpp>

从图像创建四维Blob。可以选择从中心调整大小和裁剪image,减去mean值,按scalefactor缩放值,交换蓝色和红色通道。

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

如果crop为真,则调整输入图像大小,使其在一侧调整大小后等于size中的对应维度,另一侧等于或大于对应维度。然后,执行中心裁剪。如果crop为假,则执行直接调整大小,不进行裁剪并保持纵横比。

返回值
具有 NCHW 维度顺序的四维Mat
注意
scalefactormean的顺序和用法为:(输入 - 均值) * 比例因子。

◆ 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]]]]]]) -> 返回值

#include <opencv2/dnn/dnn.hpp>

从图像创建四维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]]]]]]) -> 返回值

#include <opencv2/dnn/dnn.hpp>

从一系列图像创建四维Blob。可以选择从中心调整大小和裁剪images,减去mean值,按scalefactor缩放值,交换蓝色和红色通道。

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

如果crop为真,则调整输入图像大小,使其在一侧调整大小后等于size中的对应维度,另一侧等于或大于对应维度。然后,执行中心裁剪。如果crop为假,则执行直接调整大小,不进行裁剪并保持纵横比。

返回值
具有 NCHW 维度顺序的四维Mat
注意
scalefactormean的顺序和用法为:(输入 - 均值) * 比例因子。

◆ 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]]]]]]) -> 返回值

#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]) -> 返回值
cv.dnn.blobFromImagesWithParams(images[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

使用给定参数从一系列图像创建四维 blob。

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

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

◆ blobFromImagesWithParams() [2/2]

void cv::dnn::blobFromImagesWithParams ( InputArrayOfArrays images,
OutputArray blob,
const Image2BlobParams & param = Image2BlobParams() )
Python
cv.dnn.blobFromImagesWithParams(images[, param]) -> 返回值
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]) -> 返回值
cv.dnn.blobFromImageWithParams(image[, blob[, param]]) -> blob

#include <opencv2/dnn/dnn.hpp>

使用给定参数从图像创建四维 blob。

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

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

◆ blobFromImageWithParams() [2/2]

void cv::dnn::blobFromImageWithParams ( InputArray image,
OutputArray blob,
const Image2BlobParams & param = Image2BlobParams() )
Python
cv.dnn.blobFromImageWithParams(image[, param]) -> 返回值
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) -> 返回值

#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>) 输出。

参数
[in]blob_四维数组(图像、通道、高度、宽度),以浮点精度 (CV_32F) 表示,从中您想要提取图像。
[out]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在非最大抑制中使用的阈值。
indicesNMS 后保留的 bboxes 索引。
eta自适应阈值公式中的系数:nms_thresholdi+1=etanms_thresholdi
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在非最大抑制中使用的阈值。
indicesNMS 后保留的 bboxes 索引。
eta自适应阈值公式中的系数:nms_thresholdi+1=etanms_thresholdi
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]]) -> 返回值
cv.dnn.readNet(framework, bufferModel[, bufferConfig]) -> 返回值

#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]]) -> 返回值
cv.dnn.readNet(framework, bufferModel[, bufferConfig]) -> 返回值

#include <opencv2/dnn/dnn.hpp>

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

参数
[in]model二进制文件包含训练好的权重。不同框架的模型预期具有以下文件扩展名:
[in]config文本文件包含网络配置。它可能是具有以下扩展名的文件:
[in]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]) -> 返回值
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromCaffe(bufferProto[, bufferModel]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromDarknet(bufferCfg[, bufferModel]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> 返回值

#include <opencv2/dnn/dnn.hpp>

从英特尔的模型优化器中间表示加载网络。

参数
[in]bufferModelConfig缓冲区包含包含网络拓扑的 XML 配置。
[in]bufferWeights缓冲区包含训练好的权重的二进制数据。
返回值
Net 对象。从英特尔的 Model Optimizer 导入的网络在英特尔的推理引擎后端启动。

◆ 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]) -> 返回值
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> 返回值

#include <opencv2/dnn/dnn.hpp>

从英特尔的模型优化器中间表示加载网络。

参数
[in]bufferModelConfigPtr指向包含网络拓扑的 XML 配置的缓冲区的指针。
[in]bufferModelConfigSizeXML 配置数据的二进制大小。
[in]bufferWeightsPtr指向包含训练好的权重的二进制数据的缓冲区的指针。
[in]bufferWeightsSize训练好的权重数据的二进制大小。
返回值
Net 对象。从英特尔的 Model Optimizer 导入的网络在英特尔的推理引擎后端启动。

◆ 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]) -> 返回值
cv.dnn.readNetFromModelOptimizer(bufferModelConfig, bufferWeights) -> 返回值

#include <opencv2/dnn/dnn.hpp>

从英特尔的模型优化器中间表示加载网络。

参数
[in]xml包含网络拓扑的 XML 配置文件。
[in]bin包含训练好的权重的二进制文件。
返回值
Net 对象。从英特尔的 Model Optimizer 导入的网络在英特尔的推理引擎后端启动。

◆ readNetFromONNX() [1/3]

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

#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) -> 返回值
cv.dnn.readNetFromONNX(buffer) -> 返回值

#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) -> 返回值
cv.dnn.readNetFromONNX(buffer) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> 返回值

#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]) -> 返回值
cv.dnn.readNetFromTensorflow(bufferModel[, bufferConfig]) -> 返回值

#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) -> 返回值
cv.dnn.readNetFromTFLite(bufferModel) -> 返回值

#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) -> 返回值
cv.dnn.readNetFromTFLite(bufferModel) -> 返回值

#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) -> 返回值
cv.dnn.readNetFromTFLite(bufferModel) -> 返回值

#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]]) -> 返回值

#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 & path)
Python
cv.dnn.readTensorFromONNX(path) -> 返回值

#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]) -> 返回值

#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 > & indices,
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在非最大抑制中使用的阈值。
indicesNMS 后保留的 bboxes 索引。
top_k最多保留top_k个选定的索引。
sigma高斯加权的参数。
method高斯或线性。
另请参阅
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>

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

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