概述

  • 将目标检测中的RPN网络应用在目标追踪。
  • 两部分:
    • 用于特征提取的Siamese网络(使用预训练的AlexNet)。
    • 预测边缘框和置信度的 RPN 网络。

方法

Siamese 网络

共享参数的 AlexNet:

  • 第一帧给定的 127×127127 \times 127 模板图像,输入Siamese网络,得到 256×6×6256 \times 6 \times 6 的特征图,文中记为 φ(z)\varphi(z)
  • 当前帧 255×255255 \times 255 的Search Image,输入Siamese网络,得到 256×22×22256 \times 22 \times 22 的特征图,φ(x)\varphi(x)

RPN 网络

kk 为每个位置上生成的锚框数量。

分类分支

  1. 将Siamese的输出 φ(z)\varphi(z)φ(x)\varphi(x) 分别通过 3×33 \times 3 卷积层(两个卷积参数不共享)映射到 4×4×(2k×256)4 \times 4 \times (2k \times 256)2k2k(positive,negative)(positive,negative))和 20×20×25620 \times 20 \times 256,即为 [φ(z)]cls[\varphi(z)]_{cls}[φ(x)]cls[\varphi(x)]_{cls}
  2. [φ(z)]cls[\varphi(z)]_{cls} 以“组”的方式作为 [φ(x)]cls[\varphi(x)]_{cls} 的卷积核,也就是说,[φ(z)]cls[\varphi(z)]_{cls} 一组中的通道数与 [φ(x)]cls[\varphi(x)]_{cls} 整体的通道数相同,即 [φ(z)]cls[\varphi(z)]_{cls} 通道数为 2k2k256256 的卷积核,分别将这 2k2k 组卷积核与 [φ(x)]cls[\varphi(x)]_{cls} 卷积得到 2k2k 组通道为 11 的特征图,然后沿着通道拼接最终得到一个通道数为 2k2k 的特征图 A17×17×2kcls=[φ(x)]cls[φ(z)]clsA^{cls}_{17 \times 17 \times 2k} = [\varphi(x)]_{cls} * [\varphi(z)]_{cls},表示 [xicls,yjcls,clcls],i[0,w),j=[0,h),l=[0,2k)[x^{cls}_i,y^{cls}_j,c^{cls}_l],i \in [0,w),j=[0,h),l=[0,2k)

回归分支

类似的:

  1. 通过卷积映射到 4×4(×4k×256)4 \times 4 (\times 4k \times 256)4k4k(x,y,w,h)(x,y,w,h))和 20×20×25620 \times 20 \times 256 得到 [φ(z)]reg[\varphi(z)]_{reg}[φ(x)]reg[\varphi(x)]_{reg}
  2. A17×17×4kreg=[φ(x)]reg[φ(z)]regA^{reg}_{17 \times 17 \times 4k} = [\varphi(x)]_{reg} * [\varphi(z)]_{reg},表示 [xireg,yjreg,[dxpreg,dypreg,dwpreg,dhpreg]],i[0,w),j=[0,h),p=[0,k)[x^{reg}_i,y^{reg}_j,[dx^{reg}_p,dy^{reg}_p,dw^{reg}_p,dh^{reg}_p]],i \in [0,w),j=[0,h),p=[0,k)

损失函数

回归损失

回归分支的输出 Ax,Ay,Aw,AhA_x,A_y,A_w,A_h,Ground Truth Tx,Ty,Tw,ThT_x,T_y,T_w,T_h 两者距离为:

(TxAx),(TyAy),(TwAw),(ThAh)(T_x-A_x),(T_y-A_y),(\frac{T_w}{A_w}),(\frac{T_h}{A_h})

为了消除不同大小锚框的尺寸差异,引入正则化后的 δ\delta

δ[0]=TxAxAw,δ[1]=TyAyAhδ[2]=lnTwAw,δ[3]=lnThAh\delta[0]= \frac{T_x-A_x}{A_w},\delta[1]= \frac{T_y-A_y}{A_h} \\ \delta[2]= \ln{\frac{T_w}{A_w}},\delta[3]= \ln{\frac{T_h}{A_h}}

然后通过 Smooth L1L_1 损失:

smoothL1(x,σ)={0.5σ2x2,x<1σ2x12σ2,else smooth_{L_1}(x,\sigma)=\left\{ \begin{aligned} &0.5\sigma^2x^2, &&|x| < \frac{1}{\sigma^2} \\ &|x| - \frac{1}{2\sigma^2},&&else \end{aligned} \right .

回归损失被写为:

Lreg=i=03smoothL1(δ[i],σ)L_{reg} = \sum^3_{i=0} smooth_{L_1}(\delta[i],\sigma)

分类损失

交叉熵损失

总体损失

loss=Lcls+λLregloss = L_{cls} + \lambda L_{reg}

Anchor 设置


只对特征中间小一圈的范围内每个点生成长宽比为 (13,12,1,2,3)(\frac{1}{3}, \frac{1}{2}, 1, 2, 3) 的5个锚框。因为上一帧检测到的锚框被变换到了图像中间(输入图像的处理与SiamFC的处理方法一致),而这一帧与上一帧的位置不会变化太大,即也在中间的小范围内。

CVPR Github