YOLOv5 算法
YOLO 是什么?
这是 "只看一次"(YOLO)的首字母缩写,这个实时物体检测系统是 Darknet 框架的一部分。它之所以这样命名,是因为图像只经过全卷积神经网络(FCN)一次。
自从它在2015年推出 YOLO 论文以来,开发者 Joseph Redmon 和团队在计算机视觉界引起了一阵狂热。它的受欢迎程度主要是因为它比传统的基于区域的CNN模型更快,而后者是一个多步骤的检测过程。
该系统现在已经升级到了更新的版本。我们将研究 YOLOv5(版本5)。
YOLOv5 是目前常用的 2D 感知算法之一,速度快(GPU 的推理速度高达每秒 100+帧)、精度高。
YOLOv5 组成
YOLOv5 是由 GitHub 的 Ultralytics 组织的 Glenn Jocher 发起的一个项目,它不是 Darknet 的直接产物。它是用 PyTorch 框架的 Python 编写的,而其他 YOLO 版本使用的是 C 和 CUDA。
虽然不是 YOLOv4 的继承者,但 YOLOv5 的结构架构基本保持不变。它由以下部分组成。
- 输入: 这是一个提供给系统的图像、补丁等。
- 主干。这由系统的神经网络组成,进行所有的学习。跨阶段部分(CSP)网络构成 YOLOv5 的骨干。
- 颈部。颈部是用来创建特征金字塔的 。它有一组层,在发送预测之前混合和组合图像字符。YOLOv5 使用 PANet 作为其颈部。
- 头部:颈部的输出被送入头部,由头部进行方框和类别预测。头部可以是单级的密集预测或两级的稀疏预测。YOLOv5 使用与 YOLOv3 和 YOLOv4 相同的头。
YOLOv5 使用单一的神经网络处理图像,然后将它们分成不同的部分。这样做是为了提高准确性,每个部分通过自动锚定过程获得自己的锚定框。
这个过程是完全自动化的,如果默认的锚箱不准确,它会重新计算锚箱。由于每个零件都有自己的盒子,系统会分析和预测结果。
YOLOv5 模型类型
YOLOv5 有五种模型,列举如下。
- YOLOv5n。这是最小和最快的模型。它也被称为纳米模型,由于其尺寸,在移动设备中找到应用。
- YOLOv5s。这也是一个相对较小的模型。它用于在CPU上运行结果。
- YOLOv5m。正如 "m "所示,这是一个中等大小的模型。
- YOLOv5l。这是一个大型模型。
- YOLOv5x。这是各种变体中的顶级型号。然而,尺寸导致速度上的妥协。
请参考下表来比较每个型号的性能。
名称 | CPU速度(毫秒) | GPU速度(毫秒) | 准确度(mAP 0.5) | 参数(以百万计) |
---|---|---|---|---|
YOLOv5n | 45 | 6.3 | 45.7 | 1.9 |
YOLOv5s | 98 | 6.4 | 56.8 | 7.2 |
YOLOv5m | 224 | 8.2 | 64.1 | 21.2 |
YOLOv5l | 430 | 10.1 | 67.3 | 46.5 |
YOLOv5x | 766 | 12.1 | 68.9 | 86.7 |
表中比较了YOLOv5模型的性能 [来源]
YOLOv5 能做什么?
YOLOv5 可以用来检测任何东西或所有东西,这取决于你如何训练该系统。最常见的应用包括车辆拘留、人类检测和障碍物检测。