OpenCV 中的深度学习:从目标检测到图像分类
1. OpenCV 中的深度学习模块简介
自 OpenCV 3.1 版本起,库中引入了深度神经网络(DNN)模块,该模块可利用一些流行的深度学习框架(如 Caffe、TensorFlow、Torch/Pytorch、Darknet 以及 ONNX 格式的模型)进行前向传播(推理)。在 OpenCV 3.3 版本中,此模块从 opencv_contrib 仓库迁移至主仓库,并且性能得到了显著提升。这意味着从 OpenCV 3.3 开始,我们可以在应用程序中使用预训练网络进行预测,许多流行的网络架构都与该版本兼容。接下来,我们将探讨如何将这些架构应用于目标检测和图像分类任务,在此之前,先回顾一下 OpenCV DNN 模块提供的一些重要函数。
2. 理解 cv2.dnn.blobFromImage() 函数
在之前的目标检测示例中,我们使用了基于深度学习的人脸检测器。以下是加载预训练模型的代码:
net = cv2.dnn.readNetFromCaffe("deploy.prototxt", "res10_300x300_ssd_iter_140000_fp16.caffemodel")
其中, deploy.prototxt 文件定义了模型架构, res10_300x300_ssd_iter_140000_fp16.caffemodel 文件包含了实际层的权重。为了让整个网络进行前向传播并计
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



