OpenCV-DNN模块(模型导入、加载及运行网络模型)

简要介绍:

DNN模块是OpenCV中专门用来实现DNN模块相关功能,其作用是载入别的深度学习框架(如TensorFlow、Caffe、Torch等)中已经训练好的模型,然后利用该模型完成预测等工作。

OpenCV中DNN模块不支持网络训练,只是用来加载和运行网络模型。

在使用过程中原格式无需考虑会被转换成统一内部模型。

四行语句:

net = cv2.dnn.readNet(model, config)
blob = cv2.dnn.blobFromImage(image)
net.setInput(blob)
detections = net.forward()

 第一行:模型导入

net = cv2.dnn.readNet(model [, config [, framework]])
  • net:返回值,返回网络模型对象
  • model:模型权重文件(模型参数文件)路径,二进制,文件较大
  • config:模型配置文件(网络结构文件)路径,文本文件,文件较小
  • framework:DNN框架(省略),自动配置

第二行:图像预处理

blob = cv2.blobFromImage(image [, scalefactor[, size [, mean [,swapRB 
[, crop [, ddepth]]]]]])
  • blob:预处理(缩放、裁剪、减均值)后得到的符合人工神经网络输入的数据。四维数据,通常为N(每次输入图像数量)、C(图像通道数)、H(图像高度)、W(图像宽度)
  • image:输入图像
  • scalefactor:比例因子
  • size:控制blob的宽度、高度
  • mean:从每个通道减去的均值
  • swapRB:是否交换R、B通道,默认False
  • crop:image与size尺寸不一致时,对image进行调整,True(1.宽高比一致,直接缩放;2.宽高比不一致,缩放后从中心剪裁),False(直接缩放、保留纵横比)
  • ddepth:控制输出格式

第三行:设置网格输入函数setInput

net.setInput(blob [, name [, scalefactor [, mean]]])
  •  blob:blobFromImage返回值
  • name:输出层名称
  • scalefactor:缩放因子
  • mean:均值

第四行:网格计算函数forward

result = net.forward()

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值