一文讲明白YOLO系列发展优化:从V1到V5

YOLO是Joseph Redmon为主要作者,在2015年提出的第一个基于单个神经网络的目标检测系统。也是一种新的目标检测算法。在YOLO发布之前,例如RCNN等一系列目标检测算法都是使用二阶段目标检测,YOLO用一阶段代替二阶段,显著提高了算法执行的效率。在精度满足要求的情况下提高了速度,在当时引起了很大的反响。

本文主要是从YOLO的发展过程角度,避免大量文字的输入,只从每一个版本的改进的角度上去分析YOLO。
如果想要学习YOLO-V5如何使用,可以移步去我的这篇文章:https://blog.csdn.net/aosiweixin/article/details/130661330

请添加图片描述

前三代YOLO是原作者完成的,后面两代是俄罗斯人在原作者的基础上改进得到的。

YOLO-V1

【论文原文】:https://arxiv.org/pdf/1506.02640.pdf

【github地址】:https://github.com/gliese581gg/YOLO_tensorflow

YOLO-V1在2015年提出,它将输入的图片划分为7*7个网格,每个网格中一个锚定点,每个锚定点预测2个边界框,分别用损失函数计算其对应的置信度和类别概率。YOLO-V1网络结构如下图。

请添加图片描述

这种网格的构造在最后全连接FC的输出端体现的很明显,输出了一个7✖️7✖️30的张量,7*7就代表划分的网格,30通道的意义在下面解释。
请添加图片描述

YOLO-V1的特征提取网络使用了简单的卷积神经网络,由24个卷积层和2个全连接层组成,使用了LeakyReLU激活函数来增强网络的线性特征,使用dropout来防止过拟合,经过特征提取网络,特征图被压缩成的张量送入全连接层进行预测,最后得到一个的张量,表示网格,前10个通道表示两个边界框的信息,后20个通道每一个通道表示一个类别。对于每个网格,YOLO选取最高置信度的边界框,再使用标签分配策略非极大值抑制算法去除重叠边界框,最终得到了检测结果。YOLOV1存在一些问题,对重合的物体无法有效检测,小物体无法检测。

请添加图片描述

YOLO-V2

【论文原文】:https://arxiv.org/pdf/1612.08242.pdf

【github地址】:https://github.com/longcw/yolo2-pytorch

YOLO-V2的提出解决了V1版本的一些问题,舍弃了dropout方法,卷积后都加入Batch Normalization去归一化,加速了收敛速度,有助于避免过拟合,使用了高分辨率训练器,提高了模型的map。【这里的BN做归一化已经是当年AI界的常识,人们发现在卷积后面加入BN可以有效的避免过拟合】

用Darknet 网络作为主干网络,Darknet去掉了全连接层,都使用卷积和池化去操作,减少了参数,同时借助VGG中的思想,使用的卷积核,这些操作有效的在保证精度的情况下提高了运算速度。

V1只有2个边界框,V2采用了聚类的方法,将真实的标签框进行聚类,得到五个更合适的标签框。关于这个聚类算法可以看我的另一篇文章【链接】。

YOLO-V3

【论文原文】:https://arxiv.org/pdf/1804.02767.pdf

【项目链接】:https://pjreddie.com/darknet/yolo/

提到YOLO-V3,印象最深刻的就是他论文中用到的这张图。坐标轴之外的YOLO曲线突出了他的检测性能的强大之处。

请添加图片描述

YOLO-V3在网络结构的设计上提出了很大的更新,特征图提取更细致,使用了多尺度特征图信息来对不同尺寸物体进行识别。这种多尺度特征图不同于以往的输入端图像金字塔的结构,而是在后面将上采样图像与浅层网络特征图进行连接,再将连接后的图片进行预测,下图中1919的用来预测大目标,3838的用来预测中等目标,76*76的用来预测小型目标。

边界框相比于V2的五种,增加至9种。使用改进的SoftMax来预测多标签任务。同时加入了多尺度Scale变换,在网络最后的输出进行上采样再和之前的特征图连接,可以用来对更小目标进行检测。其网络结构图如下:

请添加图片描述

Darknet53结合了残差网络的思想,将网络层数加深,并且取消了全连接和池化层,池化用步长为2的卷积替代,在提高运算速度的同时保留了更多的特征【残差网络的加入能实现更深层网络,避免梯度消失问题】。

YOLO-V4

YOLO-V4整体架构和YOLO-V3都相同,只是在V3的基础上加了一些小的改进,在输入端采用了YOLO的数据增强功能,对于后续的训练有很大的帮助。网络部分,将CSP模块融入Darknet53网络,使用Mish激活函数替换了之前V1、V2、V3使用的LeakyReLU激活函数【但是V5官网保留了LeakyReLU激活函数的网络结构,需要手动替换网络文件】。网络结构如图。

请添加图片描述

YOLO-V5

【github地址】:https://github.com/ultralytics/yolov5

YOLO-V5的结构较V4相比改动不多,主干网络中加入了Focus结构,主干网络也改成了CSP-Darknet,其结构图如图。YOLO-V5在前几代的基础上更进一步,在目标检测上的性能非常好。
请添加图片描述

参考:

  1. 江大白老师的YOLO结构图
  2. YOLO官方的图片
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实际上,目前为止还没有YOLOv8版本,因此我将从v1介绍到当前较新的版本v5,列出YOLO系列的优缺点: YOLOv1: 优点: 1.速度快,可以实现实时目标检测。 2.单阶段检测,避免了复杂的区域建议过程,使得算法更加简单和高效。 3.较好的检测结果,尤其在大物体检测方面表现优秀。 缺点: 1.对小目标检测不够好,容易造成误检或漏检。 2.对物体形状变化和旋转不够敏感。 3.对密集目标检测不太好,容易造成重叠检测或遗漏检测。 YOLOv2: 优点: 1.速度更快,比YOLOv1快了2倍以上。 2.检测效果更好,尤其在小物体检测方面表现优秀。 3.引入Batch Normalization和Anchor Boxes等机制,提高了算法的稳定性和精度。 缺点: 1.对密集目标检测不太好,容易造成重叠检测或遗漏检测。 2.对物体形状变化和旋转不够敏感。 3.不支持多尺度输入,不能适应不同大小的物体检测。 YOLOv3: 优点: 1.速度更快,比YOLOv2快了3倍以上。 2.检测效果更好,尤其在小物体和密集目标检测方面表现优秀。 3.引入FPN和Feature Pyramid Pooling等机制,提高了算法的多尺度检测能力和检测精度。 4.支持多尺度输入,适应不同大小的物体检测。 缺点: 1.对物体形状变化和旋转不够敏感。 2.对小目标检测表现一般。 YOLOv4: 优点: 1.速度更快,比YOLOv3快了2倍以上。 2.检测效果更好,尤其在小物体和密集目标检测方面表现优秀。 3.引入CSP Bottleneck和SPP等机制,提高了算法的特征提取和多尺度检测能力。 4.支持多尺度训练和测试,适应不同大小的物体检测。 缺点: 1.需要更高的硬件配置和更长的训练时间。 2.对物体形状变化和旋转不够敏感。 3.对小目标检测表现一般。 YOLOv5: 优点: 1.速度更快,比YOLOv4快了2倍以上。 2.检测效果更好,尤其在小物体和密集目标检测方面表现优秀。 3.引入PANet和CSPNet等机制,提高了算法的多尺度检测能力和检测精度。 4.支持多尺度训练和测试,适应不同大小的物体检测。 5.引入了自适应BN和精度模式等机制,提高了算法的稳定性和可靠性。 缺点: 1.需要更高的硬件配置和更长的训练时间。 2.对物体形状变化和旋转不够敏感。 3.对小目标检测表现一般。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦滋堡的摸鱼芝士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值