天天看点

[YOLO专题-8]:YOLO V5 - 简介与快速概览

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊​

​目录​

​​第1章 什么是YOLO V5​​

​​1.1 什么是YOLO​​

​​1.2 什么是YOLO V5​​

​​第2章 YOLO的历代版本​​

​​YOLOv5​​

​​YOLOv4​​

​​YOLOv3​​

​​YOLOv2​​

​​YOLOv1​​

​​第3章 如何自学YOLO V5​​

​​3.1 YOLO V5相对于其他版本的独特之处​​

​​3.2 YOLO V5的自学方法​​

第1章 什么是YOLO V5

1.1 什么是YOLO

YOLO是'You only look once'的首字母缩写,是一种将图像划分为网格系统的对象检测的算法。

网格中的每个单元格负责检测物理中心点落在网络自身内部的对象或物体。

由于其速度和准确性,YOLO 是最著名的物体检测算法之一。

1.2 什么是YOLO V5

YOLO V5是由Ultralytics公司开源YOLO版本,且​完全基于PyTorch实现​,给大量AI人员带来了福音。

在我们还对YOLOv4的各种骚操作、丰富的实验对比惊叹不已时,YOLOv5又带来了更强、实时、更精确的目标检测技术。

​(1)更快、更实时​

按照官方给出的数目,现版本的YOLOv5每个图像的​推理时间最快0.007秒​,即每秒140帧(FPS)

[YOLO专题-8]:YOLO V5 - 简介与快速概览

在CPU上,每个图像的推理时间快至7ms,意味着每秒​140​帧(FPS)!远远大于人眼对20帧的要求。相比之下,YOLOv4在相同的条件下只能到到​50​帧 。而在GPU上,FPS更高,可高达400.

​(2)更小巧(内存少)​

YOLOv5的权重文件大小只有YOLOv4的​1/9​。

[YOLO专题-8]:YOLO V5 - 简介与快速概览

​(3)更短的训练时间​

YOLOv5在单一V-100 GPU的情况下,COCO 2017数据集上的训练时间分别为:

YOLOv5 s YOLOv5 m YOLOv5 l YOLOv5 x
2天 4天 6天 8天

第2章 YOLO的历代版本

​YOLOv5​

在 YOLOv4 发布后不久,Glenn Jocher 使用 ​Pytorch 框架​引入了 YOLOv5。

​这是YOLO第一次提供完全基于PyTorch实现。​

开源代码可在​​GitHub 上获得​​

​作者:​ ​​Glenn Jocher​​

​发布时间:​ 2020 年 5 月 18 日

​YOLOv4​

随着原作者在 YOLO 上的工作陷入停滞,YOLOv4 由 Alexey Bochoknovskiy、Chien-Yao Wang 和 Hong-Yuan Mark Liao 发布。这篇论文的标题是​​YOLOv4: Optimal Speed and Accuracy of Object Detection​​

​作者:​ ​​Alexey Bochoknovskiy​​、​​Chien-Yao Wang​​和​​Hong-Yuan Mark Liao​​

​发布时间:​ 2020 年 4 月 23 日

​YOLOv3​

YOLOv3 改进了 YOLOv2 论文,原作者 Joseph Redmon 和 Ali Farhadi 都做出了贡献。

他们一起发布了​​YOLOv3: An Incremental Improvement​​

最初的 YOLO 论文被托管​​在这里​​

​作者:​ ​​Joseph Redmon​​和​​Ali Farhadi​​

​发布时间:​ 2018 年 4 月 8 日

​YOLOv2​

YOLOv2 是由 YOLO 的原作者 Joseph Redmon 和 Ali Farhadi 共同努力的。

他们一起发布了​​YOLO9000:Better, Faster, Stronger​​

​作者:​ ​​Joseph Redmon​​和​​Ali Farhadi​​

​发布时间:​ 2016 年 12 月 25 日

​YOLOv1​

YOLOv1 由约瑟夫·雷德蒙 (Joseph Redmon) 作为研究论文发布。

这篇论文的标题是​​你只看一次:统一的实时对象检测​​

​作者:​ ​​Joseph Redmon​​

​发布时间:​ 2015 年 6 月 8 日

第3章 如何自学YOLO V5

[YOLO专题-8]:YOLO V5 - 简介与快速概览

3.1 YOLO V5相对于其他版本的独特之处

从YOLO V3之后,YOLO的原作者彻底放弃了YOLO研究和演进,YOLO的演进有业内的其他人来完成,YOLO V4和YOLO V5是有研究人员独立发布的,YOLO V5仅仅在YOLO V4发布后的一个月就发布了,因此他们几乎是同步开发的。

YOLO V1-V3以及YOLO V4,都是基于研究 -》 发布论文 -》代码实现这样的路径演进,论文一旦发布,其内容就已经定型了。然后YOLO V5并不是基于某个论文,而是作为一个开源项目来演进的,其新特征的增加,并不受限于某一篇论文,而是以项目的方式不断更新迭代的,因此YOLO V5的新特征不是固化的,而是不断在更新,这也是讲解YOLO V5的难点之一,网络上没有任何公开的论文,总结YOLO V5相对于YOLO V3或YOLO V4的改进点。YOLO V5更多的是Pytorch的代码实现,而不是理论研究。

YOLO V5与YOLO V4在代码实现上有较大的差别,因此从代码的继承性来看,YOLO V3继承了YOLO V2, YOLO V2继承了YOLO V1.  YOLO V4和YOLO V5的代码实现都不是基于YOLO V1-V3的,不同人在具体实现YOLO算法的时候,代码的架构是不一样的,特别是YOLO V5,完全基于全新的软件代码架构。

3.2 YOLO V5的自学方法

​(1)从代码开始​

YOLO V5的功能没有论文可参考,其功能及其实现,只能参考其在github上的代码实现,  有很多人提供了自己版本的YOLO V5, 我们以目前受到大家推崇的版本:

​​https://github.com/ultralytics/yolov5​​

​(2)YOLO代码的从YOLO V5开始​

由于YOLO V1-V3,V4, V5,从代码实现上看,是各自独立的,资源和个人经历有限的情况下,代码的解读可以直接以YOLO V5为起点,而不是以YOLO V1为起点。

​(3)以YOLO V5的官方文档为主要教程​

[YOLO专题-8]:YOLO V5 - 简介与快速概览

​​YOLOv5 Documentation​​https://docs.ultralytics.com/​​​

[YOLO专题-8]:YOLO V5 - 简介与快速概览

​(4)辅助网络上的解读视频: yolo v5​

继续阅读