人工智能

YOLOF - You Only Look One-level

2021-03-18  本文已影响0人  _从前从前_

个人理解

1、为什么和其他anchor-based方法相比,小目标检测的表现差?
可能有两个原因:

简介

在单阶段检测器中FPN之所以有效是因为其分而治之的策略,而不是多尺度特征的融合。从优化的角度来看,引入了替代方法来解决该问题,而不是采用复杂的特征金字塔,仅使用一层特征进行检测。
源码:https://github.com/megvii-model/YOLOF

主要贡献

FPN在单阶段和多阶段的目标检测器中已经成为一个基础模块,FPN之所以能如此受欢迎主要可能有两点:

作者为了论证以上两点,设计了四种结构:

image.png

从结果可知:没有特征融合的SiMo和原始的MiMo仅仅相差0.9 mAP,但是MiSo和SiSo的性能却大幅度下降。这个现象反应了两个事实:

更进一步的思考,分而治之才是目标检测问题的关键,通过目标的尺度,把复杂的问题拆分成若干子问题,简化了整个流程。

因此,作者提出了YOLOF,仅仅使用下采样32倍的C5特征图,使得SiSo的方法和MiMo的方法有相同的性能。主要贡献如下:

方法

作者发现造成SiSo的方法和MiMo的方法的性能差异主要有两个问题:

1、尺度范围限制

MiMo 和 SiMo 的方法,输出了不同尺度的感受野,从而解决了多尺度目标物体检测的问题 。但是在单尺度中,C5特征图仅仅只能覆盖受限制的尺度范围,结果就是部分尺度的目标检测表现非常差。为了在SiSo方法中检测所有物体,我们需要输出单尺度特征图中包含不同的感受野。
最开始,我们通过叠加标准卷积和空洞卷积去扩大感受野,但是仍然无法覆盖所有的目标。然后,我们联合了原始尺度和扩大尺度的感受野,结果能够像多尺度感受野一样覆盖所有的目标。如下图所示,原始感受野是(a),采用空洞卷积扩大后是(b),联合后是(c)。


image.png

基于以上提到的,我们提出了Dilated Encoder,主要由两部分组成:

结构图如下:


image.png

2、正样本的不平衡

在目标检测中,如何定义正样本是一个非常重要的问题。在anchor-based的目标检测方法中,定义正负样本的策略主要是通过anchors和ground-truth的IOU。在MiMo方法中,anchors会被密集的预先放置在不同尺度的特征图上,将不同尺度的ground-truth分配到不同尺度的特征图上,然后通过anchors和ground-truth的IOU进行定义,可以得到足够的正样本。但是在SiSo的方法中,anchors的数量由100K减少为5K,anchors变得非常的稀疏。在使用Max-IoU进行正负样本定义时,大尺度的ground-truth会比小尺度的ground-truth分配到更多的正样本,造成了不平衡的问题。会使得检测器关注大目标而忽略了小目标。不同正负样本定义的比较如下图:


image.png

作者提出了平衡匹配的方法,k近邻。同时忽略和ground truth IOU大于0.7的负样本,忽略IOU小于0.15的正样本。

3、YOLOF的结构

image.png

定义YOLOF由三部分组成:

实验

对比试验

1、对比RetinaNet

总结:速度快2.5倍但是小目标检测不如RetinaNet,大目标检测好。


image.png

2、对比DETR

总结:速度快7倍但是大目标检测不如DETR,可能是DETR可以利用全局特征。


image.png

3、对比YOLOv4

总结:速度快13%但是小目标检测不如YOLOv4,大目标远远高于YOLOv4。


image.png

消融实验

1、Dilated Encoder 和 Uniform Matching 有效性

image.png

2、ResBlock的数量

在SiSo中设置ResBlock的数量的影响


image.png

3、不同 dilations rates 的设置

image.png

4、是否添加shortcut

image.png

5、k近邻中k的取值

k的取值在大于1后就比较鲁棒


image.png

5、定义正负样本的方法比较

image.png

错误分析

和DETR进行对比,分析错误:

更多的实验细节

这里不再赘述,参考论文。

上一篇下一篇

猜你喜欢

热点阅读