YOLO系列演变

本文详细介绍了YOLO系列从v1到v5的发展历程,重点讨论了每个版本的关键模块、输入输出结构以及针对小目标检测的改进策略,包括多尺度预测、特征金字塔网络、锚框优化和数据增强等。
摘要由CSDN通过智能技术生成


专栏链接:深度学习和论文精读
本文并非对论文直接进行翻译,增加了自己对于论文的理解,如有问题请及时指出~


前言

本文将介绍YOLO系列的演变,具体YOLO每个版本的请查看深度学习和论文精读专栏中的对应文章。


YOLO系列演变

版本输入端BackboneNeck输出端其他
YOLOv11.输入固定为448x448像素的图像
2.图像被划分为7x7的网格
自定义CNN网络,包含24个卷积层和2个全连接层7x7网格,每个网格预测2个边界框和20个类别概率损失函数为均方误差
YOLOv2随机多尺度训练引入Darknet-19,包含19个卷积层和5个最大池化层采用Passthrough层引入Anchor,预测13x13网格中每个单元的边界框和类别,且限定预测框的中心点只能在cell内1.BN代替dropout
2. 完全卷积
YOLOv3引入Darknet-53,结合了残差连接,有53个卷积层。引入了多尺度预测(FPN)每个尺度上的网格单元都预测3个边界框,包括类别和对象置信度分类器从Sigmoid改为Softmax
YOLOv41.Mosaic数据增强
2.自对抗训练(SAT)
引入CSPDarknet53,采用了CSPNet结构SPP(空间金字塔池化)和PAN(路径聚合网络)1.CIoU Loss
2.Mish激活函数
3.DropBlock正则化
4.标签平滑
YOLOv5自适应图片缩放Focus结构,CSP结构FPN+PAN结构CSP2结构1. GIoU Loss
2. DIOU_Nms

相关面试问题

其实主要还是需要了解每代中的每个模块的作用以及YOLO系列的变化过程,并没有特别多针对性的问题。此外大部分还与其他目标检测算法做对比(SSD、Faster-RCNN等),但由于博主目前还尚未学习,因此未包含此部分。如果大家有相关问题可以补充~

YOLO系列

Q1:YOLO每一代的不同

见上表

Q2:YOLO为什么比其他检测算法快

  1. 单一神经网络: YOLO使用一个单一的卷积神经网络(CNN)直接从输入图像预测边界框和类别概率。这种一步到位的方法与传统的两步法(如先提议候选区域,再分类的R-CNN系列)相比,大幅提高了速度。
  2. 全图预测: YOLO将整个图像视为整体进行分析和预测,这避免了选择性搜索区域的需求。它将图像分割成多个格子,每个格子预测多个边界框和概率。这种方法减少了计算步骤,加速了处理过程。

具体模块

Q1:如何解决小目标检测的问题

在YOLO算法中,检测小目标常常是一个挑战,因为原始的YOLO版本更倾向于检测中等大小或大型的目标。不过,随着YOLO算法的迭代更新,开发者们采取了多种策略来提高对小目标的检测性能。以下是一些常用的方法:

  1. 多尺度预测(Multi-Scale Predictions)
    YOLOv3和后续版本通过采用多尺度预测来改善小目标的检测。这种方法在不同尺度的特征图上进行预测,较深层的特征图捕获更细节的信息,有助于检测小目标。例如,在YOLOv3中,除了主要的特征图,还会在更高分辨率的特征图上进行预测,这样就可以检测到更小的目标。
  2. 特征金字塔网络(Feature Pyramid Networks, FPN)
    特征金字塔网络是一种常用于目标检测的结构,它可以有效地将高层的语义信息和低层的细节信息结合起来。在YOLO的一些变体中,通过利用FPN可以改进对不同尺度目标的检测能力,特别是小目标。
  3. 锚框优化(Anchor Boxes Optimization)
    在YOLO中,通过调整锚框(anchor boxes)的尺寸和比例,可以对小目标进行更好的预测。通过分析训练数据集中目标的大小和形状,可以自定义锚框以适应不同大小的目标,包括小目标。
  4. 数据增强(Data Augmentation)
    使用数据增强技术如随机缩放、裁剪和颜色变化等,可以使模型更好地泛化到不同大小的目标上。特别是通过放大图像中的小部分,可以帮助模型学习到更多小目标的特征。
  5. 损失函数调整(Loss Function Adjustment)
    在训练过程中,可以调整损失函数来给予小目标更高的权重,这样模型在训练时会更加注重小目标的检测准确性。
  6. 使用注意力机制(Attention Mechanisms)
    引入注意力机制可以帮助模型聚焦于图像中的关键部分,从而提高小目标的识别率。注意力模块可以集中模型的计算资源到图像的重要区域,增强对小目标的检测能力。

Q2:假设两个目标靠的很近,则会识别成一个bbox,会有什么问题,怎么解决?

当两个目标靠的非常近时,置信度低的会被置信度高的框抑制掉,从而两个目标靠的非常近时会被识别成一个bbox。为了解决这个问题,可以使用softNMS(基本思想:用稍低一点的分数来代替原有的分数,而不是直接置零)

Q3:YOLOv2中的anchor如何生成

YOLOv2中引入K-means算法进行anchor的生成,可以自动找到更好的anchor宽高的值用于模型训练的初始化。但如果使用经典K-means中的欧氏距离作为度量,意味着较大的Anchor会比较小的Anchor产生更大的误差,聚类结果可能会偏离。
由于目标检测中主要关心anchor与ground true box(gt box)的IOU,不关心两者的大小。因此,使用IoU作为度量更加合适,即提高IoU值。因此YOLOv2采用IoU值为评判标准:
d ( box , centroid ) = 1 − IOU ( box , centroid ) d(\text{box}, \text{centroid}) = 1 - \text{IOU}(\text{box}, \text{centroid}) d(box,centroid)=1IOU(box,centroid)
具体anchor生成步骤与经典K-means大致相同。主要的不同是使用的度量是,并将anchor作为簇的中心。


参考

YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!
2022-02-目标检测算法面试问题汇总
算法工程师的独孤九剑秘籍(经典&热门模型高频面试题大汇总)

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值