《FSAF:Feature Selective Anchor-Free Module for Single-Shot Object Detection》论文笔记

参考代码地址:Feature-Selective-Anchor-Free-Module-for-Single-Shot-Object-Detection

1. 概述

导读:这篇文章对于一阶段(文中baseline为RetinaNet)的检测模型回归提供了一个新的特征选择机制:anchor-free的特征选择机制(feature selective anchor-free,FSAF)。它解除了原有anchor-based中使用IoU采样与一些特殊规则(按照box的大小划分特征层级)制定的特征选方案的限制,使用在不同的特征层上使用anchor-free的检测分支,让检测的目标去动态划分寻找所需要的特征(按照最小损失准则),它与原有的anchor-based的检测分支相并行,并且可以很方便地嵌入到现有的模型中。实际上也会证明文章的方法有效,在COCO数据集上获得了44.6的mAP。

在基于anchor的一阶段检测模型中,默认使用最佳anchor box大小的形式安排不同的回归目标到不同的特征层上进行回归,这种机制的优化结构见下图所示:
在这里插入图片描述
上面提到的检测方法设计有如下的一些问题:

  • 1)特殊规则制定的特征选择机制:人为地通过制定一些规则将anchor(比如按照box的size)划分到特征金字塔的不同层次上,但是这样的划分机制主要是通过人为经验来的,因而并不能说是最优的方案;
  • 2)基于IoU的anchor采样:训练的时候检测的目标会被分配给与其IoU最为适配的anchor上;

对于上面的两点问题文章是使用FSAF模块进行解决,它的思想就是让每个检测的目标自由选择最适合其回归的检测分支,而并非使用原有anchor-based方法的限制,它的设计思想可以用下图进行描述:
在这里插入图片描述
在上图中,每个特征层上使用一个anchor-free的检测分支单独与回归检测边界与分类置信度,而且检测目标可以按照其内部信息(based on the instance content)而不是大小选择这些检测分支,从中选择最好的进行回归。基于此的改进效果还是很明显的,见下图:
在这里插入图片描述

2. 方法设计

2.1 网络结构

这篇文章的网络结构见下图4所示:
在这里插入图片描述
其中在原有anchor-based检测分支的基础上增加了一个anchor-free的检测分支(预测对应的中心到边界框的4个距离),下面的内容主要分为:anchor-free的回归机制与基于instance content的特征选择机制

2.2 anchor-free分支的回归表示

对于需要回归的检测框目标表示为 b = [ x , y , w , h ] b=[x,y,w,h] b=[x,y,w,h],在特征金字塔层级 P l P_l Pl上经过映射之后的目标框表示为 b p l = [ x p l , y p l , w p l , h p l , ] b_p^l=[x_p^l,y_p^l,w_p^l,h_p^l,] bpl=[xpl,ypl,wpl,hpl,],将检测目标映射到对应的特征层级自然要对应不同的tride才行。除此之外文章还定义了不同的区域用于回归:有效区域 b e l b_e^l bel与忽略区域 b i l b_i^l bil,对于每个目标区域是定义了上面这两个区域的,其定义的规则为: x m l = x p l , y m l = y p l , w m l = ϵ m w p l , h m l = ϵ m h p l x_m^l=x_p^l,y_m^l=y_p^l,w_m^l=\epsilon_m w_p^l,h_m^l=\epsilon_m h_p^l xml=xpl,yml=ypl,wml=ϵmwpl,hml=ϵmhpl
其中 m = [ i   o r   e ] m=[i\ or \ e] m=[i or e],代表有效区域与忽略区域,对于缩放系数定义为 ϵ i = 0.5 , ϵ e = 0.2 \epsilon_i=0.5, \epsilon_e=0.2 ϵi=0.5,ϵe=0.2。对应的边界框与分类结果见下图所示:在这里插入图片描述

分类输出:
分类的输出是包含 K K K个channel的输出,代表的是对应的类别。承上文所说的有效区域的定义(0.2的GT标注区域)被表示为白色的区域,而介于上文中提到的0.2到0.5的区域被认为是忽略的,就是在梯度反传的时候不发生反传。特别的在重贴时候的处理:忽略区域相交叠的结果也是被忽略,有效区域的重合按照目标更小的区域优先原则。这里分类的损失使用的是Focal Loss(对应的两个超参数设置为RetinaNet中的最佳经验值),这里计算loss只会计算非忽略区域的loss,并将它们加起来再与有效区域中像素的个数做归一化操作。此外对于在上面两个区域之外的区域就是被描述为黑色了(具体参考图5所示)。

边界框回归输出:
这里边界框的回归形式是回归中心点距离检测框4个边界的距离,只有上面文章定义的有效区域产生的检测结果才会被提取出来,注意的是这里对每个预测的分量使用了 S = 4 S=4 S=4进行归一化。这里使用的检测框损失为IoU Loss(这个损失的缺点已经有很多介绍了,可以换成新的GIoU、DIoU、CIoU等),之后会将得到的损失按照有效区域中进行取平均

整体的损失函数为:
L = L a b + λ ( L c l s a f + L r e g a f ) L=L^{ab}+\lambda(L_{cls}^{af}+L_{reg}^{af}) L=Lab+λ(Lclsaf+Lregaf)
其中 λ = 0.5 \lambda=0.5 λ=0.5,前半部分为anchor-based分支的损失,后半部分为anchor-free分支的损失。

2.3 在线基于instance content的特征选择机制

上文讲了anchor-free分支中分类与定位损失的定义,那么在对应的特征层 l l l上anchor-free分支产生的损失可以描述为:
在这里插入图片描述
那么得到这个损失之后,怎么选择目标最适应的特征呢?文章是按照最小loss进行选择的,见下图所示:
在这里插入图片描述
其数学表达式为:
l ∗ = arg min ⁡ l L F L I ( l ) + L I o U I ( l ) l^*=\argmin_l L_{FL}^I(l)+L_{IoU}^I(l) l=largminLFLI(l)+LIoUI(l)
则文章提出的特征选择方法与原始FPN中的特征选择方法进行对比,其结果见下表所示:
在这里插入图片描述

3. 实验结果

相比baseline RetinaNet性能对比:
在这里插入图片描述
与其它检测方法的性能对比:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值