FSAF 深刻地剖析 FPN 层在训练时的抉择问题,以超简略的 anchor-free 分支模式嵌入原网络,简直对速度没有影响,可更精确的抉择最优的 FPN 层,带来不错的精度晋升
起源:晓飞的算法工程笔记 公众号
论文: Feature Selective Anchor-Free Module for Single-Shot Object Detection
- 论文地址:https://arxiv.org/abs/1903.00621
- 论文代码:https://github.com/zccstig/mmdetection/tree/fsaf
Introduction
指标检测的首要问题就是尺寸变动,许多算法应用 FPN 以及 anchor box 来解决此问题。在正样本判断下面,个别先依据指标的尺寸决定预测用的 FPN 层,越大的指标则应用更高的 FPN 层,而后依据指标与 anchor box 的 IoU 进一步判断,但这样的设计会带来两个限度:拍脑袋式的特征选择以及基于 IoU 的 anchor 采样。
如图 2 所示,60×60 抉择两头的 anchor,而 50×50 以及 40×40 的则抉择最小的 anchor,anchor 的抉择都是人们依据教训制订的规定,这在某些场景下可能不是最优的抉择。
为了解决上述的问题,论文提出了简略且高效的特征选择办法 FSAF(feature selective anchor-free),可能在每轮训练中抉择最优的层进行优化。如图 3 所示,FSAF 为 FPN 每层增加 anchor-free 分支,蕴含分类与回归,在训练时,依据 anchor-free 分支的预测后果抉择最合适的 FPN 层用于训练,最终的网络输入可同时综合 FSAF 的 anchor-free 分支后果以及原网络的预测后果。
Network Architecture
FSAF 的网络后果非常简单,如图 4 所示。在原有的网络结构上,FSAF 为 FPN 每层引入两个额定的卷积层,别离用于预测 anchor-free 的分类以及回归后果。这样,在共用特色的状况下,anchor-free 和 anchor-based 的办法可进行联结预测。
Ground-truth and Loss
对于指标 $b=[x,y,w,h]$,在训练时可映射到任意的 FPN 层 $P_l$,映射区域为 $b^l_p=[x^l_p, y^l_p, w^l_p, h^l_p]$。一般而言,$b^l_p=b/2^l$。定义无效边界 $b^l_e=[x^l_e, y^l_e, w^l_e, h^l_e]$ 和疏忽边界 $b^l_i=[x^l_i, y^l_i, w^l_i, h^l_i]$,可用于定义特色图中的正样本区域、疏忽区域以及负样本区域。无效边界和疏忽边界均与映射后果成等比关系,比例别离为 $\epsilon_e=0.2$ 和 $\epsilon_i=0.5$,最终的分类损失为所有正负样本的损失值之和除以正样本点数。
Classification Output
分类后果蕴含 $K$ 维,指标次要设定对应维度,样本定义分以下 3 种状况:
- 无效边界内的区域为正样本点。
- 疏忽边界到无效边界的区域不参加训练。
- 疏忽边界映射到相邻的特色金字塔层中,映射的边界内的区域不参加训练
- 其余区域为负样本点。
分类的训练采纳 focal loss,$\alpha=0.25$,$\gamma=2.0$,残缺的分类损失取所有正负区域的损失值之和除以无效区域点数。
Box Regression Output
回归后果输入为分类无关的 4 个偏移值维度,仅回归无效区域内的点。对于无效区域地位 $(i,j)$,将映射指标示意为 $d^l_{i,j}=[d^l_{t_{i,j}}, d^l_{l_{i,j}}, d^l_{b_{i,j}}, d^l_{r_{i,j}}]$,别离为以后地位到 $b^l_p$ 的边界的间隔,对应的该地位上的 4 维向量为 $d^l_{i,j}/S$,$S=4.0$ 为归一化常量。回归的训练采纳 IoU 损失,残缺的 anchor-free 分支的损失取所有无效区域的损失值的均值。
Online Feature Selection
anchor-free 的设计容许咱们应用任意的 FPN 层 $P_l$ 进行训练,为了找到最优的 FPN 层,FSAF 模块须要计算 FPN 每层对指标的预测成果。对于分类与回归,别离计算各层无效区域的 focal loss 损失以及 IoU loss 损失:
在失去各层的后果后,取损失值最小的层作为当轮训练的 FPN 层:
Joint Inference and Training
Inference
因为 FSAF 对原网络的改变很少,在推理时,略微过滤下 anchor-free 和 anchor-based 分支的后果,而后合并进行 NMS。
Optimization
残缺的损失函数综合 anchor-based 分支以及 anchor-free 分支,$L=L^{ab}+\lambda(L^{af_{cls}}+L^{af_{reg}})$
Experiments
各种构造以及 FPN 层抉择办法的比照试验。
精度与推理速度比照。
与 SOTA 办法比照。
Conclusion
FSAF 深刻地剖析 FPN 层在训练时的抉择问题,以超简略的 anchor-free 分支模式嵌入原网络,简直对速度没有影响,可更精确的抉择最优的 FPN 层,带来不错的精度晋升。须要留神的是,尽管摈弃以往硬性的抉择办法,但实际上仍然存在一些人为的设定,比方无效区域的定义,所以该办法还不是最完满的。
如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】