赞
踩
OpenCV中的深度学习模块(DNN)只提供了推理功能,不涉及模型的训练,支持多种深度学习框架,比如TensorFlow,Caffe,Torch和Darknet。
OpenCV为什么要实现深度学习模块?
轻量型。DNN模块只实现了推理功能,代码量及编译运行开销远小于其他深度学习模型框架。
使用方便。DNN模块提供了内建的CPU和GPU加速,无需依赖第三方库,若项目中之前使用了OpenCV,那么通过DNN模块可以很方便的为原项目添加深度学习的能力。
通用性。DNN模块支持多种网络模型格式,用户无需额外的进行网络模型的转换就可以直接使用,支持的网络结构涵盖了常用的目标分类,目标检测和图像分割的类别,如下图所示:
DNN模块支持多种类型网络层,基本涵盖常见的网络运算需求。
- blobFromImage(img,
- scalefactor=None,
- size=None,
- mean=None,
- swapRB=None,
- crop=None,
- ddepth=None):
参数:
crop=True
,则,输入图片的尺寸调整resize后,一个边对应与 size 的一个维度,而另一个边的值大于等于 size 的另一个维度;然后从 resize 后的图片中心进行 crop. 如果crop=False
,则无需 crop,只需保持图片的长宽比作用:根据给定的检测boxes和对应的scores进行NMS(非极大值抑制)处理
- NMSBoxes(bboxes,
- scores,
- score_threshold,
- nms_threshold,
- eta=None,
- top_k=None)
参数:
作用:加载深度学习网络及其模型参数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。