FSAF(coco: 44.6mAP)
Feature Selective Anchor-Free Module for Single-Shot Object Detection
这篇论文是在RetinaNet上加上anchor-free分支,使用anchor-based和anchor-free进行联合训练得到最终的FSAF模型。
- 提出无锚点特征选择模块:用于解决启发式引导特征选择和基于重叠的锚点采样两个受限的问题;
- 使用大量的目标检测基准实验证明了本文提出的方法的有效性。骨干网络为ResNeXt-101的RetinaNet加上FSAF模块后,mAP提升1.8%,前向推理时间仅仅增加6ms,在COCO上所有单阶段目标检测器中达到了SOTA的水平。
在原网络中创建FSAF分支
[外链图片转存失败(img-7vpOtR77-1567866418180)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1562143056239.png)]
FSAF模块在每个FPN层引入两个额外的卷积层,这两层分别用于在无锚点分支中预测分类与回归。在每个金字塔层级上,无锚点和基于锚点的分支通过共享特征的方式联合训练多任务。
Ground-truth and Loss
对于分类来说,将ground-truth map分成了三种情况:存在目标区域、可忽略区域、无目标区域。无锚分支的总分类损失是所有非忽略区域的Focal Loss之和,根据所有有效框区域内的像素总数归一化。
对于回归部分来说,就是预测4个位置偏移量映射。无锚分支的总回归损失是所有有效区域上IoU损失的平均值。
Online Feature Selection
先用anchor-free方法在特征图上大概检测一下,看看哪层效果好(损失函数最小),就将instance交给那层特征对应的anchor-based来处理。anchor-free branch预测是基于特征点的,不用anchor。
为了找到最佳的特征层级,FSAF模块根据目标内容来选择,而不像基于锚点的方法那样采用目标边界框的大小来分配层级。在线选择特征的过程如下图所示:
[外链图片转存失败(img-KANsSXx9-1567866418186)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1562143688090.png)]
在训练过程中 特征层 将会根据其对应分配的目标进行更新,在推理阶段不需要选择特征,最合适的特征金字塔会自然地输出更高的置信度分数。
Feature Selective仅发生训练阶段,inference时所有的anchor based/free branch均做预测,对于anchor-free分支,通过设定阈值0.05来解码每层前1k个位置的box预测,再与anchor based一起NMS(阈值为0.5)。
Joint Inference and Training
测试推断过程中,对于无锚分支,仅将置信度高于阈值的解码为预测,最多1000个得分位置的框预测。来自所有层次的预测与基于锚点的预测合并,经过NMS后产生最终的检测结果。
实验
- 仅仅使用无锚点分支只能取得不错的结果,当使用无锚点分支和基于锚点的分支联合检测的时候,性能才能得到SOT的水平;
- FSAF模块可以更好地发现具有挑战性(小)的目标;
- 在不同骨干网络上都能起到改善作用证明了FSAF模块的鲁棒性和高效性。
- 此外,作者将带FSAF模块的RetinaNet和多阶段以及单阶段SOT的各种方法进行了比较,结果表明本文的检测模型无论是单阶段还是多阶段都能达到具有竞争力的性能。具体结果如下表所示。