论文总结:YOLOv1 , YOLOv2 and YOLOv3

版权声明:转载必须经过本人同意,并且注明文章来源! https://blog.csdn.net/weixin_41665360/article/details/88639000

1、YOLO_v2 VS YOLO_v1

根据 Y O L O YOLO 的误差分析(参考论文笔记:YOLO), Y O L O YOLO 定位误差高,而且相比于基于区域提议的方法, Y O L O YOLO 的召回率偏低。 针对这两点, Y O L O _ v 2 YOLO\_v2 做了以下改进:

  1. 在所有的卷积层后增加 B a t c h N o r m a l i z a t i o n BatchNormalization 这可以显著改善网络的收敛性,并且有利于正则化模型,防止过拟合。增加 B N BN 以后移除网络的 d r o p o u t dropout 。这将 m A P mAP 提升 2 % 2\%
  2. 高分辨率分类器 Y O L O YOLO 使用 224 × 224 224\times224 分辨率图像训练分类网络,并且将分辨率增加到 448 448 用于检测。这意味着网络需要同时学习目标检测并且适应新的输入分辨率; Y O L O _ v 2 YOLO\_v2 首先在 448 × 448 448\times448 分辨率图像上微调分类器网络,使其更好地调整卷积核适应高分辨率。微调 10   e p o c h s 10~epochs 以后,再微调网络用于检测任务。 这将 m A P mAP 提升 4 % 4\%
  3. 移除全连接层,使用锚框预测边界框 Y O L O _ v 2 YOLO\_v2 首先去除了一个池化层使网络卷积层的输出有更大的分辨率。然后收缩网络处理 416 × 416 416\times416 的输入图像,取代 448 × 448 448\times448 分辨率图像。这样通过 32 32 降采样因子,网络输出特征图大小为 13 × 13 13\times13 Y O L O _ v 2 YOLO\_v2 将类预测机制与空间位置分离,为每个锚框预测类和目标。 Y O L O YOLO 在每幅图像仅预测 98 98 个框,但是 Y O L O _ v 2 YOLO\_v2 在每幅图像预测超过 1000 1000 个框。使用锚框导致精度略微下降,但是召回率显著提高。
  4. 尺寸聚类 通过在训练数据集上运行 k m e a n s k-means 聚类算法,为预测框找到较优的先验尺寸。由于 I O U IOU 分数独立于框的大小,因此使用以下度量准则:
    d ( b o x , c e n t r o i d ) = 1 I O U ( b o x , c e n t r o i d ) d(box,centroid)=1-IOU(box,centroid)
    2 2 给出了 k k 值与平均 I O U IOU 的关系,考虑召回率和模型复杂度的折衷,选择 k = 5 k=5
    图
  5. 直接位置预测:由于位置偏移量预测没有约束锚框的中心坐标,随机初始化可能导致要花费很长时间才能使模型稳定下来,因此 Y O L O _ v 2 YOLO\_v2 直接预测相对于网格位置的定位坐标。 输出特征图的每个网格预测 5 5 个边界框,每个边界框预测 5 5 个坐标值 t x , t y , t w , t h , t o t_x,t_y,t_w,t_h,t_o 。若网格偏离图像左上角 ( c x , c y ) (c_x,c_y) 边界框先验的宽和高为 p w , p h p_w,p_h
    b x = σ ( t x ) + c x b y = σ ( t y ) + c y b w = p w e t w b h = p h e t h P r ( o b j e c t ) I O U ( b , o b j e c t ) = σ ( t o ) \begin{aligned} &b_x=\sigma(t_x)+c_x\\ &b_y=\sigma(t_y)+c_y\\ &b_w=p_we^{t_w}\\ &b_h=p_he^{t_h}\\ P_r(object)&*IOU(b,object)=\sigma(t_o) \end{aligned}
    图
    使用尺寸聚类并直接预测边界框中心坐标将 m A P mAP 提高大约 5 % 5\%
  6. 细粒度特征 Y O L O _ v 2 YOLO\_v2 13 × 13 13×13 特征图上进行检测。虽然这对于大目标来说是足够的,但是对于定位较小目标来说,它可能需要更细粒度的特征。 Y O L O _ v 2 YOLO\_v2 简单添加一个 P a s s t h r o u g h Passthrough 层,获取 26 × 26 26×26 分辨率的早期特征。 P a s s t h r o u g h Passthrough 层类似于 R e s N e t ResNet 中的恒等映射,通过将相邻特征堆叠到不同的通道而不是空间位置,来连接高分辨率特征和低分辨率特征。这将 26 × 26 × 512 26×26×512 的特征图转换为 13 × 13 × 2048 13×13×2048 的特征图,可以与原始特征连接。这使得性能略微提高了 1 % 1\%
  7. 多尺度训练 Y O L O YOLO 使用分辨率为 448 × 448 448\times448 的输入。 Y O L O _ v 2 YOLO\_v2 输入分辨率为 416 × 416 416\times416 。为了使 Y O L O _ v 2 YOLO\_v2 在不同大小的图像上运行更加鲁棒,训练时每 10   b a t c h e s 10~batches 网络选择一个新的图像尺寸。由于模型降采样因子为 32 32 ,图像尺寸从 { 320 , 352 , . . . , 608 } \{320,352,...,608\} 中选择。这种机制迫使网络学会在各种输入尺寸上进行良好的预测。这意味着相同的网络可以以不同的分辨率预测检测。网络在较小的尺寸下运行更快,因此 Y O L O v 2 YOLO_v2 提供了速度和精度之间的简单折衷。
    图

2、Brief Summary

2.1、Bounding Boxes 和 Anchor Boxes 比较

  1. B o u n d i n g   B o x e s Bounding~Boxes 对应每个网格,每个 B o u n d i n g   B o x e s Bounding~Boxes 仅生成 5 5 个预测值,即 ( x , y , w , h , p ) (x,y,w,h,p) ( x , y ) (x,y) 为预测框中心相对于网格边界的坐标。 ( w , h ) (w,h) 为预测框相对于整幅图像的宽度和高度。每个网格预测 C C 个类概率值,因此, Y O L O YOLO 输出为 S × S × ( B × 5 + C ) S\times S\times (B\times5+C) 维的张量
  2. A n c h o r   B o x e s Anchor~Boxes 是从标记好的训练集中,通过 k m e a n s k-means 聚类算法获得的目标边界框的先验尺寸。它可以帮助训练过程尽快收敛,增加回归过程的稳定性。每个网格对应 A A 个锚框,输出大小为 A × ( 5 + C ) A\times(5+C) ,每个量的含义见 1.5 1.5

其实可以简单地将 A n c h o r   B o x e s Anchor~Boxes 理解为特殊的 B o u n d i n g   B o x e s Bounding~Boxes ,区别在于 A n c h o r   B o x e s Anchor~Boxes B o u n d i n g   B o x e s Bounding~Boxes 的基础上又添加了尺度约束,可以对预测框的尺度大小进行较优的初始化,从而改善收敛。

2.2、YOLO_v1和YOLO_v2设计比较

表

2.3、YOLO_v1和YOLO_v2性能比较

表
表

3、YOLOv3

3.1、YOLOv3 特点

  1. 系统只为每个 g r o u n d   t r u t h ground~truth 分配一个先验框。如果先验框未分配给 g r o u n d   t r u t h ground~truth ,则不会对坐标或类别预测造成损失,只有目标置信度损失。
  2. Y O L O v 2 YOLOv2 每个网格分配 5 5 个锚框, Y O L O v 3 YOLOv3 为每个网格分配 3 3 个尺度的锚框,每个尺度分配 3 3 个锚框,一共使用 9 9 个锚框。输出为 N × N × [ 3 ( 4 + 1 + 80 ) ] N\times N\times [3*(4+1+80)] 维度的张量, 80 80 为预测的类别数量。
  3. Y O L O v 3 YOLOv3 并没有像 Y O L O v 2 YOLOv2 使用很多技巧来提升性能,主要是网络结构的优化。以下是 d a r k n e t 19 darknet19 d a r k n e t 53 darknet53 的网络结构图。


性能比较:
表
从图中结果可以看出, D a r k n e t 53 Darknet53 D a r k n e t 19 Darknet19 性能更优,而且比 R e s N e t 101 ResNet-101 R e s N e t 152 ResNet-152 更有效率。
表
图


3.2、作者的尝试

锚框偏移量预测
作者尝试使用普通锚框预测机制,使用线性激活将 x y x,y 偏移预测为框宽或框高的倍数。最后发现这个描述降低了模型的稳定性,并且效果不太好。

线性 x,y 预测取代 logistic
使用线性激活取代逻辑激活来预测 x , y x,y 偏移量。这导致 m A P mAP 下降了几个点。

焦点损失
作者尝试使用焦点损失,导致 m A P mAP 下降了 2 2 点。 Y O L O v 3 YOLOv3 对于焦点损失试图解决的问题可能已经很鲁棒了,因为它有独立的目标预测和条件类预测。因此,对于大多数例子来说,类预测没有损失?还是什么?不完全确定。

双 IOU 阈值和真值分配
F a s t e r   R C N N Faster~R-CNN 在训练中使用两个 I O U IOU 阈值。如果一个预测与某一 g r o u n d   t r u t h ground~truth 重叠 0.7 0.7 ,这是一个正例, [ . 3 . 7 ] [ .3-.7 ] 忽略,与所有 g r o u n d   t r u t h ground~truth 重叠小于 0.3 0.3 ,则判断为一个负例。作者尝试了类似的策略,但没有得到好的结果。


4、整理的不是很好,有问题欢迎大家批评指正!

猜你喜欢

转载自blog.csdn.net/weixin_41665360/article/details/88639000