【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

       【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

这篇文章从视觉效果上来说,很大程度的提升了“小目标的”检测效果。

一、主要内容

这篇文章主要是针对FPN这种结构去做优化的,主要的优化点在于“如何去选择哪一层来回归目标”。

以往的方法基本上都是基于“Heuristic feature selection” 以及 “ overlap-based anchor sampling”

“Heuristic feature selection” :启发式的特征选择,我们利用size来决定某个anchor size 去哪层FPN上选择特征。这种方式并不一定是最优的 对于这个作者也没多说为什么。到时给了图例,勉强理解下。                                                                                                                      【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

“ overlap-based anchor sampling”:这个就是利用IOU来决定某个anchor是正例还是负例。

二、方法

      feature selective anchor-free 缩写:FSAF

       这篇文章在原始RetinaNet的基础之上,去“增加”FSAF ,也就是意味着,RetinaNet的原始结构全部保留了。这种改进会需要额外“6ms”的计算时间,基于ResNXet-101为backbone的RetinaNet 有1.8%的提升效果。

       Additionally, our final detector achieves a state-of-the-art 44.6% mAP when multi-scale testing are employed, outperforming all existing single-shot detectors on COCO.

       这里值得注意的是 为了达到这个44.6%mAP需要 “ 多尺度-测试”!!!

【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

       从这张图,我们可以清楚的看到,RetinaNet的原始结构是被全部保留的了的,只是把“FPN”每一路输出的Feature map增加了一个岔路,虽然图中只画了3层FPN,但是只是为了简单的可视化效果,少画了几层。

       【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

      上图是 实现的内部结构了,可以看到 “anchor-based ” 和 “anchor-free” 是相互不影响的,只不过有共同的base feature。对于anchor-free 这部分,作者采用了 focal loss(分类) + IoU loss(回归)

                                                  【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

     这里需要定义:【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection代表了某个groundtruth box在某一层FPN时候的具体值, 

     effective box: 【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

     ignore box :【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

      取值定义:【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

Classification Output:     

      在这里可能有点疑惑?为什么effective box的区域比ignore box区域小? 根据以上四个定义,对应到Figure 5的分类那一部分,图中最外侧“全黑表示无目标” ;  “灰色区域表示的就是 ignore box - effective box 的部分,这部分不参与“BP”回传” ;“白色区域就是 effecitve box区域为全1”。这些操作对于某个一 groundtruth box而言依然是 所有level of FPN 同步进行的,对于两个instance 如果有overlap,那么最小的那个有最高的优先权。

Box Regression Output

        对于每一个 effective box区域内的坐标(i,j),都有如下一个4维向量:【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection分别对应(i,j)坐标位置的去回归四个角落的偏移量。要注意,【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection,这里的值被除了一个尺度因子“S=4.0”

       最终结果应该是“【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection


Online Feature Selection

         【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

      从这张图,可以明确的知道整个“FSAF”的思路,对于每一个“Instance”,FPN的每一层各自计算这一层的loss,从这些loss种选择最小的那个,从而决定对于这个“Instance”应该选择哪一层。*****这是在训练的时候,其实就是决定某个Instance 用哪个路线去回传,只训练这层FPN***

The intuition is that the selected feature is currently the best to model the instance. Its loss forms a lower bound in the feature space.

      ****在运行inference***的时候是没有这样的选择机制的,因为“对于每一个instance而言,一定存在一个最合适的层,所以对于每一层,我们都去选,最后一起用阈值过滤以及nms就能够一定程度上得到最好的结果” 也就是只要保证了,最合适的在里面,那么一定能够得到最合适的!!!

      测试阶段 anchor-free 以及anchor-based 这两路的结果都会被拿出来,一起最后删选。

                                 【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection

                     【论文阅读-目标检测】Feature Selective Anchor-Free Module for Single-Shot Object Detection