python opencv yolo_基于 OpenCV 使用 YOLOv3 进行深度学习中的物体检测

本文介绍了如何使用OpenCV实现基于YOLOv3的深度学习物体检测。YOLOv3是一个快速且准确的目标检测算法,OpenCV的DNN模块提供了对YOLOv3的支持,其CPU实现速度比Darknet快9倍。文章详细阐述了YOLOv3的工作原理,以及在OpenCV中加载模型、初始化参数、进行目标检测的步骤,包括下载模型、设置阈值、加载网络、处理输入图像和进行非极大值抑制的过程。
摘要由CSDN通过智能技术生成

YOLOv3是目前流行的物体检测算法YOLO——-“ 你只能看一次”的最新变种。目前已经发布的YOLO模型可以识别图像和视频中80多种不同的对象,更重要的是,它的运行速度非常快,而且准确率几乎和单次多盒检测器(SSD)一样高。

从OpenCV 3.4.2开始,您可以在自己的OpenCV应用程序中轻松使用YOLOv3模型。

那么YOLO是如何运作的呢?

我们可以将目标检测器视为是一种目标定位器和目标识别器的组合。

在传统的计算机视觉方法中,我们使用滑动窗口来寻找位置和尺寸都不同的物体。这个操作计算量非常大,所以通常假设物体的纵横比是固定的。早期

基于深度学习的目标检测算法(如R-CNN和Fast R-CNN)都是使用一种被称为选择性搜索的方法来缩小算法必须测试的边界框的数量。

另一种称为Overfeat的算法使用滑动窗口式按多个比例对图像进行扫描。

紧随其后的是Faster R-CNN算法,它使用区域提议网络(RPN)来识别需要测试的边界框。 通过巧妙的设计,识别目标的特征提取器也被RPN用于选出候选边界框,从而节省了大量的计算。

但在另一方面,YOLO以完全不同的方式来处理目标检测问题。 它只把图像输入神经网络一次。SSD是另一种目标检测算法,它也是只让图片通过深度学习神经网络一次,但YOLOv3比SSD快得多,同时实现了可与之媲美的精度。在M40,TitanX和1080 Ti GPU上进行测试, YOLOv3的速度甚至高于实时检测。

接下来,让我们看看YOLO如何检测给定图像中的目标。

首先,将图像划分为13×13网格的单元格。 这169个单元的大小取决于输入图像的大小。 对于我们在实验中使用的416×416的图像输入尺寸,单元尺寸为32×32。 每个单元负责预测图像中的多个框。

对于每个边界框,网络还预测边界框实际包围对象的置信度,以及封闭对象是特定种类的概率。

大多数这些边界框最后都会被清除,因为它们的置信度很低,或者因为它们与另一个具有非常高置信度得分的边界框包围相同的对象。 该技术称为非最大值抑制。

YOLOv3的作者,Joseph Redmon和Ali Farhadi让YOLOv3比以前的作品YOLOv2更快更准确。 YOLOv3可以更好地处理多对象。 他们还通过增加网络来改进网络,通过添加简单的连接将这个网络扩展到剩余网络。

我们为什么要在OpenCV上实现YOLO?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值