【OD】YOLOF

https://arxiv.org/pdf/2103.09460.pdf
主要贡献:
1、重新思考了FPN网络在目标检测效果好的原因,多尺度目标检测问题分而治之解决思路(不同尺度通过不同的感受野特征检测)大于多尺度特征融合
2、基于优化的角度,提出YOLOF替代FPN网络的复杂特征金字塔,它包含两个关键成分(Dilated Encoder与Uniform Matching)以减轻与FPN的性能差异;
3、COCO数据集上的实验证明了所提方法每个成分的重要性,相比RetinaNet,DETR以及YOLOv4,所提方法取得相当的性能同时具有更快的推理速度。

1、验证多尺度特征融合、分而治之方法效果好,使用将这2个方法解耦的实验设计

C5包含了充分的用于检测不同尺度目标的上下文信息,这促使SiMo编码器可以取得与MiMo相当的结果;
多尺度特征融合带来的收益要远小于分而治之带来的收益,因此多尺度特征融合可能并非FPN最重要的影响因素;相反,分而治之将不同尺度的目标检测进行拆分处理,缓解了优化问题。

在已知分而治之带来更多的效益的先验知识,以RetinaNet-ResNet50网络分析,来分析优化的方向
将RetinaNet-ResNet50网络分成3个部分:骨干网络、Encoder以及Decoder

preview
实验结果如下图,可以得出结论
相比SiMoEncoder,MiMoEncoder带来显著的内存负载问题(134G vs 6G);
基于MiMoEncoder的检测器推理速度明显要慢于SiSoEncoder检测器(13FPS vs 34FPS);
这个推理速度的变慢主要是因为高分辨率特征部分的目标检测导致,即C3特征部分。

所以文章想找到一种方式,能够保持SISO的速度,但是性能不下降

主要技术/关键模块:
因为C5特征包含足够的信息进行大量目标检测,作者尝试用简单的SiSoEncoder替换复杂的MiMoEncoder,但是性能会下降,原因是:
C5特征感受野范围有限制The range of scales matching to the C5 feature's receptive field is limited(MIMO能生成不同感受野的多级特征)
C5只有一个输出特征,当检测目标尺度和感受野尺度不匹配,检测性能下降
正anchors不平衡 The imbalance problem on positive anchors
正锚点的定义:锚点与真实box之间的IoU决定,在RetinaNet中,如果IoU大于0.5则锚点设为正
在MIMO在不同尺度生成不同的正anchors,但是SISO锚点会减少(比如从100K减少到5K),并且因为是C5特征,大部分正锚点都为大尺度目标,导致大小目标锚点数量不平衡,导致检测器更加的关注大目标,小目标检测效果差

C5特征感受野范围有限制问题
    如下图采用堆叠扩张卷积来提升其感受野;因为扩张卷积只是朝着更大尺度进行整体迁移,为了包含原尺度范围,通过将原尺度和扩张尺度相加,达到覆盖更广的范围


    扩张卷积网络如下图,堆叠了4个扩张卷积块
            preview
    扩张卷积怎么解决小尺度目标问题?分而治之有什么关系(好像没有关系)??

特征不平衡问题
使用平均匹配策略,对于每个目标框采用k近邻锚点作为正锚点,这就确保了所有的目标框能够以相同数量的正锚点进行均匀匹配,正锚点的平衡确保了所有的目标框都参与了训练且贡献相等。

网络结构
preview

BackBone。ResNet与ResNeXt作为骨干网络,所有模型在ImageNet上与训练,输出C5特征该通道数为2048,下采样倍率为32;
Encoder。在这部分,作者参考FPN添加了两个投影层,将通道数降到512,然后堆叠四个不同扩张因子的残差模块;
Decoder。在这部分,作者采用了RetinaNet的主要设计思路,它包含两个并行的任务相关的Head分别用于分类和回归。作者仅仅添加两个微小改动:(1) 参考DETR中的FFN设计让两个Head的卷积数量不同,回归Head包含4个卷积而分类Head则仅包含两个卷积;(2) 作者参考AutoAssign在回归Head上对每个锚点添加了一个隐式目标预测。
Other Detail。正如前面所提到的YOLOF中的预定义锚点是稀疏的,这会导致目标框与锚点之间的匹配质量下降。作者在图像上添加了一个随机移动操作以缓解该问题,同时作者发现这种移动对于最终的分类是有帮助的。

效果
preview

posted @ 2021-09-13 22:21  哈哈哈喽喽喽  阅读(101)  评论(0编辑  收藏  举报