Advertisement

【YOLO系列】YOLO v1~v3论文阅读笔记

阅读量:

文章目录

  • 0. 前言

  • 1. [YOLO v1] You Only Look Once:Unified, Real-Time Object Detection

    • 1.1 亮点

    • 1.2 算法细节

      • 1.2.1 如何将目标检测转换为回归问题?
      • 1.2.2 网络结构
      • 1.2.3 损失函数
    • 1.3 不足

  • 2. [YOLO v2] YOLO9000:Better, Faster, Stronger

    • 2.1 Better
    • 2.2 Faster
    • 2.3 Stronger
  • 3. [YOLO v3] An Incremental Improvement

  • 参考文献

0. 前言

这些版本都是由YOLO之父Joseph Redmon大神提出的。这些版本中,YOLO v1首次将目标检测问题建模为回归问题,在之前的版本中通常是采用分类的方式来解决目标检测问题(例如RCNN系列)。与前一版本相比,YOLO v1显著提升了速度;随后推出的v2对检测精度进行了优化改进,在此基础上又结合了当时的一些创新技术对v2进行了重要升级,并自嘲为一份技术报告。

1. [YOLO v1] You Only Look Once:Unified, Real-Time Object Detection

1.1 亮点

  • 将目标检测归类为回归问题。接收一张完整的图像输入后,单一网络直接输出边界框坐标及其类别概率。
  • 性能优越。Base YOLO实现了每秒帧率高达45帧(FPS),而Fast YOLO则达到了令人惊叹的155FPS。
  • 误报率极低。该系统通过融合语义信息进行推断,在实际应用中展现出极高的准确性。
  • 基于泛化的表征学习机制,在自然图像上展现出广泛的适用性。

1.2 算法细节

1.2.1 如何将目标检测转换为回归问题?

在Yolo v1提出之前,在基于RCNN的方法主要包含以下步骤:首先提取候选区域并计算其特征;随后通过分类器识别目标类别;接着应用非极大值抑制筛选出有效检测框;最后对边界框进行进一步优化以提高精度。相比之下,Yolo v1采用了全新的思路:包括图像预处理、神经网络预测以及非极大值抑制三个环节,并显著提升了检测效率

在这里插入图片描述

将目标检测指定为回归问题的主要思想如下图所示:

在这里插入图片描述

简单地说就是将输入图像被划分成S\times S个网格如果物体中心落入某一个单元则该单元就负责检测物体每个单元将会预估B个边界框以及一个类别概率其中每一个边界框预估x y w h confidence五个参数因此最终整个模型输出的结果张量尺寸将是大小为S\times S\times(B\times5+C)

1.2.2 网络结构

YOLO v1采用了以下网络架构:输入图像尺寸设定为448像素宽高比。通过连续应用卷积层、池化层以及全连接层的操作生成了一个长度为4096的特征向量。随后将其重组为一个维度大小为7×7×30的张量(即每个网格单元包含两个边界框预测以及二十个类别概率计算)。该张量进一步表示将输入图像划分为一个包含七乘七网格的区域,在其中每个网格单元负责预测两个边界框及其对应的二十类别的置信度分数。

在这里插入图片描述

1.2.3 损失函数

损失函数由位置损失、置信度损失和类别损失三部分组成:

在这里插入图片描述

需要注意的点如下:

大边界框与小边界框所引起的宽度与高度偏差应予分别对待:尽管相同数量的误差(例如10个像素)在大小不同的边界框中表现迥异——较大尺寸的边界框如200×100像素仅导致微小的偏差;而较小尺寸的边界框如20×10像素则可能导致较大的偏差——因此,在计算宽度与高度损失时采用了平方根计算方法:此方法旨在最大限度地减少较大尺寸边界框与较小尺寸边界框之间的差异影响

在这里插入图片描述

(图片来源:https://zhuanlan.zhihu.com/p/115759795

在图像中,大部分grid未包含待检测物体的对象,在仅占一小部分的grid中则包含了该对象。为了提高模型对这些区域的关注度,在损失计算中需要赋予这些区域更高的权重系数。论文中设置\lambda_{coord}=5,\lambda_{noobj}=0.5

依据图像尺寸对边界框宽度w和高度h进行标准化处理至0至1范围,并采用偏移量估计替代直接预测坐标位置。通过约束参数范围在0至1区间内不仅降低了模型学习复杂性还能加速训练过程使其更快收敛。

Each grid is capable of predicting two or more bounding boxes, but during training, loss is only computed for the bounding box closest to the ground truth. This setup leads to functional specialization among the predicted bounding boxes, resulting in them tending to predict objects of different sizes and aspect ratios.

1.3 不足

  • 仅能实现两个bbox的预测功能
    • 基于训练数据的学习目标是完成边界框检测任务
    • 经过多级下采样后生成特征图进行预测
      • 可能会导致小尺寸目标检测精度下降
    • 损失函数在大、小目标边界框误差处理上采取了统一的方法
      • 因此整体定位精度会有所欠缺

2. [YOLO v2] YOLO9000:Better, Faster, Stronger

v2在v1的基础上引入了各种trick,做到better,faster和stronger

2.1 Better

在这里插入图片描述
  • BN :在所有卷积层后添加BN,mAP提升了2%,并且BN起到了正则化的作用,可以移除网络中的Dropout
  • 高分辨率分类器 :yolo v1中训练backbone时的输入分辨率为224×224,在训练检测部分时将分辨率提高至448×448,因此网络需要适应新的分辨率;v2中以448×448的分辨率在imagenet上微调backbone,使卷积参数适应高分辨率输入,然后在检测数据集上微调网络,该操作提高了接近4%的mAP。
  • 删除全连接层,使用Anchor box预测边界框 :yolo v1中通过全连接层预测边界框的坐标偏移量,v2中删除全连接层,利用卷积的输出直接预测与anchor box的偏移量,最接近ground truth的才参与计算loss。由于没有全连接层,将网络的输入分辨率更改为416×416,经过32倍的下采样后正好能够得到13×13尺寸的特征图。
  • 通过聚类产生Anchor box的尺寸 :Faster RCNN中通过手工设定3种不同面积的anchor box,每种面积由3种宽高比,分别为1:1,1:2,2:1,一共有9个anchor box。在yolo v2中,作者将训练集中的矩形框全部取出,通过kmeans聚类得到更具有代表性的先验框,使网络更容易拟合到gt。在VOC 2007和COCO数据集上的实验表明,使用5个anchor box即聚类中心为5时,能够在召回率和模型复杂度之间取得权衡。
在这里插入图片描述

绝对位置预测中

在这里插入图片描述
  • 细粒度特征 :采用13×13的空间分辨率进行特征检测已经足够识别较大尺寸的目标;然而更细致的特征信息有助于精确识别较小尺寸的目标。作者通过引入一个pass through层,在26×26×512的中间结果中重新排列成13×13×1024的空间分辨率,并将其与原始13×13×512的结果进行融合连接;这样既保留了细粒度信息又提升了对小物体检测的能力。
  • 多尺度训练 :Yolo V2网络通过卷积层输出结果实现预测;为了适应不同尺寸输入的需求,在训练阶段每处理完连续的10个batch后更换一次输入分辨率;由于网络下采样倍数设定为固定值(即为 \{ 320, 352, \ldots, 608 \} ),因此可选预设分辨率包括 \{ 320, 352, \ldots, 608 \}
在这里插入图片描述

推理时,输入分辨率越低FPS越高,输入分辨率越高FPS越低,但是mAP越高。

2.2 Faster

开发了一种新的backbone–Darknet-19模型,在针对... 224×... 的输入时达到了8.52亿次运算量(FLOPs),相较于VGG网络而言更加高效。

在这里插入图片描述

2.3 Stronger

该模型采用了融合训练机制进行设计:在输入为检测数据集时,在损失函数计算过程中会触发反向传播过程;而在输入为分类数据集时,则仅完成分类损失函数的计算并驱动反向传播过程。鉴于检测数据集主要涵盖狗或猫等较大类别的物体识别场景(即仅涉及单一物种的大类识别),而分类数据集则涵盖了不同品种的猫狗(即细粒度物种区分),因此作者提出了一种新的网络架构——基于此,在整合分类与检测任务的过程中实现了性能上的提升。

3. [YOLO v3] An Incremental Improvement

参考文献

[1] Single-shot detector achieving real-time object detection capabilities
[2] The YOLO9k algorithm demonstrates state-of-the-art performance in terms of speed and accuracy
[3] A refined version of the YOLO framework introduced significant enhancements to its detection accuracy and processing efficiency

全部评论 (0)

还没有任何评论哟~