opencv进阶-DNN相关API解读
Posted 殇堼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv进阶-DNN相关API解读相关的知识,希望对你有一定的参考价值。
一、API-blobFormImage
reference:OpenCV中blobFromImage函数详细解释
作用:图像输入神经网络之前的预处理,即对输入图像进行归一化操作
函数参数如下
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 =8,
参数含义如下:
image:输入图像
scalefactor: multiplier for image values.
mean :
size:指的不是输入图像的尺寸,是指所需要的尺寸,也就是返回的Mat中数据的尺寸。
swapRB:是否交换R和B分量,true即转为BGR,false就意为着不需要转化
crop:输入图像大小与size不符的时候,是否需要裁剪
ddepth:图像的数据类型,目前仅支持32F和8U。即32位的浮点数( CV_32F ),因为DNN中很多参数都是浮点数,所以该参数设置默认即可。
这些参数是模型规定好的,相当于出厂设置,opencv4当中专门关于DNN的一部分内容,其中的models.yml文件就是输入图像的参数设置要求,如下路径可以查到:
D:\\opencv-4.1.0\\opencv\\sources\\samples\\dnn
二、API-forward
作用:目标检测的前向推断,并推断出输出层的名字
用法:
Net net;
net.forward();
其中net是数据类型为Net类,命名方式不固定,可以是net1,或是net2等等。
三、API-readNetFrom深度学习框架()
1.API-readNetFromTensorflow(model,cfg)
作用:读取Tensorflow框架下的模型
使用方法:
Net net1;
net1=readNetFromTensorflow(model,cfg);
或是Net net1=readNetFromTensorflow(model,cfg);
2.API-readNetFromDarknet(cfg,model)
作用:读取Darknet框架下的YOLO模型,也只能是YOLO
3.API-readNetFromCaffe(prototxt, model)
作用:用于进行SSD网络的caffe框架的加载
参数说明
prototxt表示caffe网络的结构文本
model表示已经训练好的参数结果
四、API-net.SetInput
作用:表示将图片输入到DNN网络中
五、API-setPreferableBackend()
作用:设置加速的计算后台
括号中可填入以下参数:
如果没有IE 加速引擎的话,默认是opencv。
DNN_BACKEND_DEFAULT
DNN_BACKEND_INFERENCE_ENGINE
DNN_BACKEND_OPENCV
六、API-setPreferableTarget()
作用:表示在哪种设备上进行加速。
括号中可填入以下参数:
DNN_TARGET_CPU //如果电脑上没有GPU,只能对CPU加速。
DNN_TARGET_OPENCL //必须是英特尔的图像卡(GPU ),对其加速。
DNN_TARGET_OPENCL_FP16
DNN_TARGET_MYRIAD //英特尔的神经网络加速棒( NCS ),对其加速。
DNN_TARGET_FPGA
DNN_TARGET_CUDA
DNN_TARGET_CUDA_FP16
reference:
cv.dnn介绍及常用模块
以上是关于opencv进阶-DNN相关API解读的主要内容,如果未能解决你的问题,请参考以下文章