论文地址:https://arxiv.org/abs/2104.13534

代码地址:https://github.com/PaddlePaddle/PaddleDetection

介绍和相关工作

基于Anchor的方法不论是单阶段还是多阶段,再引入Anchor的同时,大量的Anchors阻碍了检测器的泛化,并且带入了大量的计算和内存消耗。

Anchor-free方法的提出,解决了这些问题,它去除了预定了的锚框,获得了更高的效率。

CenterNet

CenterNet将边界框的中心点作为目标的表示,来加速推理。其他的包括目标大小等成分直接在目标点处回归,将目标检测任务转变为一个关键点的估计问题。中心点由热图获得,热图的峰值点则可以表示为一个目标的中心点,

但是CenterNet仅仅关注目标中心来进行目标大小回归,从而损失了目标中心点周围的信息,从而减慢了网络的收敛,CenterNet在MSCOCO上需要140轮训练,相反在其他网络上可能只需要12 epochs。

TTFNet

TTFNet改进了CenterNet,取得了更好的准确率和效率。为了缩短训练时间,TTFNet提出了一种利用高斯核对训练样本进行编码的方法。具体地说,高斯概率分布作为回归采样的权重来强调这些目标中心点周围的采样,使得网络充分利用更多的正采样,从而使用大的学习率进行收敛。

TTFNet集轻量头,单阶段和anchor free的设计为一体,并且PAFNet就是基于TTFNet的工作。

方法

结构

服务器端:
PAFNet的整体框架如下, 由一个backbone,一个上采样模型,一个AGS模块,一个定位分支和一个回归分组组成。实验中选择ResNet50-vd作为backbone。

backbone结构如下,相较于ResNet50额外在每个残差层增加了一个2X2的平均池化层,在IamgeNet上获得了更好的效果。

同时为了增加小目标的准确率,对于 F i ( i = 2 , 3 , 4 ) F_i(i=2,3,4) Fi(i=2,3,4)级别特征进行了shortcut连接以及相应的上采样。通过在上采样模型后加入三个卷积层,检测头将特征传送到坐标和回归任务中。坐标分支产生特征图 F L F_L FL,大小为 H / 4 × W / 4 × C H/4 ×W/4 ×C H/4×W/4×C C C C代表数据集类别数。对于属于 C m C_m Cm类别的GT边界框 G m G_m Gm,将 G m G_m Gm映射到特征图 F l F_l Fl上,变为 G m ′ G^{'}_m Gm,然后使用2D高斯核 e − ( ( x − x 0 ) 2 + ( y − y 0 ) 2 ) e^{-\left(\left(x-x_{0}\right)^{2}+\left(y-y_{0}\right)^{2}\right)} e((xx0)2+(yy0)2) G m ′ G^{'}_m Gm产生一个heatmap。高斯分布的峰值可以被认为为一个正目标,其他像素被认为是负目标。使用Focal Loss的一个变体 L l o c L_{loc} Lloc来计算GT heatmap G m ′ G^{'}_m Gm F l F_l Fl在对应 C m C_m Cm通道上的损失,进行监督训练坐标分支。

回归分支产一个特征图 F R F_R FR,大小为 H / 4 × W / 4 × 4 H/4 ×W/4 × 4 H/4×W/4×4,同样为GT边界框计算一个高斯分布 G m G_m Gm。需要计算高斯核内的所有点和特征图 F R F_R FR之间的giou。然后使用一个GIoU损失 L r e g L_{reg} Lreg来关联高斯分布 G m G_m Gm的响应。除此外,受TTF启发,还为每个样本根据其对应的区域引入一个简单的权重 ω g ω_g ωg,实现平衡不同大小的目标贡献。对于一个采样的回归分支损失可以计算为 l r e g = ( 1 − g i o u ) × ω g (1) l_{r e g}=(1-g i o u) \times \omega_{g} \tag{1} lreg=(1giou)×ωg(1)

l r e g l_{reg} lreg属于 L r e g L_{reg} Lreg ω g ω_g ωg为简单权重。总损失定义为: L = ω l o c L l o c + ω r e g L r e g . (2) L=\omega_{l o c} L_{l o c}+\omega_{r e g} L_{r e g} .\tag{2} L=ωlocLloc+ωregLreg.(2)
L l o c L_{loc} Lloc定义为Focal Loss, L r e g L_{reg} Lreg定义为GIoU损失,任务中 ω l o c ω_{loc} ωloc ω r e g ω_{reg} ωreg分别设为1.0和5.0。

作者还引入了AGS模块,重点讨论了如何在定位分支中计算一个与类别差异无关的概率分布图,并将其自适应地用于回归分支。回归分支的损失是所有像素在一个目标区域的加权和,权重为相应的高斯核提供。引入AGS模块来改变权重,以保持训练过程中的坐标分支和回归分支的一致性。为了获得无类别差异的显著性特征,利用最大-减少操作沿通道维数寻找最显著的特征值,并将原始特征映射压缩为只有一个通道的矩阵。然后,使用softmax计算矩阵上的响应,其中响应值越大,对象出现的概率越大。最后,由于回归分支只对椭圆高斯分布的样本进行回归,通过对softmax响应根据高斯核对应于当前目标进行mask操作。

在AGS的指导下,重新对giou赋权:
 giou  ′ = 1 − ( ( 1 − λ ) + λ × S ags  ) ×  giou,  (3) \text { giou }^{\prime}=1-\left((1-\lambda)+\lambda \times S_{\text {ags }}\right) \times \text { giou, } \tag{3}  giou =1((1λ)+λ×Sags )× giou, (3)

g i o u ′ giou' giou g i o u giou giou修改得到,λ是一个折中参数(0-1), S a g s S_{ags} SagsAGS模块的概率分布图,实验结果表面AGS可以闲置额外的存储和计算量,优化网络的准确度。并且只在训练时使用,不会影响推理。

AGS模块如下:

Trick的选择

更好的预训练模型
实验中,作者使用蒸馏ResNet50- vd模型,表示为ResNet50-vd-ssld作为服务器端预训练模型(分类的分达到了83%)。

EMA指数移动平均
EMA为MA的一种,对于更近的数据点给予更多的权重和重要性,由于考虑了更多的信息,所以对于噪声更加的鲁棒,具体的每个参数W被优化为: W E M A = λ W E M A + ( 1 − λ ) W (4) W_{E M A}=\lambda W_{E M A}+(1-\lambda) W \tag{4} WEMA=λWEMA+(1λ)W(4)

CutMix
CutMix是MixUp用于分类任务的一个提升版本。MixUp是一个可以按比例混合两个随机样本的操作,样本的类别也按比例分布。公式如下: x n = λ x i + ( 1 − λ ) x j y n = λ y i + ( 1 − λ ) y j . (5) \begin{array}{l} x_{n}=\lambda x_{i}+(1-\lambda) x_{j}\\ y_{n}=\lambda y_{i}+(1-\lambda) y_{j} . \end{array} \tag{5} xn=λxi+(1λ)xjyn=λyi+(1λ)yj.(5)
( x n , y n ) (x_n, y_n) (xn,yn)为由解释器产生的新数据, ( x i , y i ) (xi, yi) (xi,yi), ( x j , y j ) (xj, yj) (xj,yj)为训练集随机选择的数据, λ λ λ满足beta分布(0-1)。相比之下,根据CutMix, patch被剪切并粘贴在训练图像中,ground truth label也按比例混合在patch的区域中。通过有效地利用训练像素并保留区域dropout的正则化效果,CutMix通常有助于获得更好的分类和检测性能。公式如下: x n = M ⊙ x i + ( 1 − M ) ⊙ x j y n = λ y i + ( 1 − λ ) y j (6) \begin{array}{l} x_{n}=M \odot x_{i}+(1-M) \odot x_{j}\\ y_{n}=\lambda y_{i}+(1-\lambda) y_{j} \end{array} \tag{6} xn=Mxi+(1M)xjyn=λyi+(1λ)yj(6)

M M M为一个二分mask, ⊙ \odot 为元素级别乘法, λ λ λ和MixUp方法一样的beta分布。

GridMask
GridMask为用于增强数据的信息删减,用于随机删除图片的一块区域,抑制网络过拟合。

DCN
基于模块中空间采样位置信息的进一步位移调整的思想,自适应卷积操作,不需要额外的监测信号。

实验

消融实验

SOTA对比

总结

对于服务器端和移动端引入一种新的的anchor-free的检测方法,本博客主要介绍了服务器端,PAFNet在进度和速度都表现很好。