3.2 SiamRPN(2017)
3.2.1 网络结构
Siam-RPN提出了一种基于RPN的孪生网络结构,由孪生子网络和RPN网络组成,前者用来提取特征,后者用来产生候选区域。其中,RPN子网络由两个分支组成,一个是用来区分目标和背景的分类分支,另外一个是微调候选区域的回归分支,使整个网络实现了端到端的训练。
SiamRPN中的Siamese network模块与siamFC相同,使用预训练的AlexNet网络,可将其作为一种变换𝜑,将这种变换分别应用到模板支和检测支上,产生模板和搜索区域的特征𝜑(𝑧),𝜑(𝑥)。
RPN网络由两部分组成,一部分是分类分支,用于区分目标和背景,另一部分是回归分支,它将候选区域进行微调。
在介绍这两个分支之前,我们先回顾下相关的内容:
grid:指的对一张图像或者是featuremap进行平均地分割,但是并不一定是一个像素对应一个grid,也可能是多个像素对应一个grid。所有grid组成一个Proposal。
anchor:锚点,指的是在boundingbox生成之前会先在每个grid上生成一些候选框,然后将这些anchors候选框进行操作,生成boundingbox
一般候选框会有一些固定的参数,首先是长宽比,例如上图左边的三个anchors对应一个grid生成的三种不同长宽比的anchors,一般长宽比的数目都是固定的而且长宽比互为倒数,比如{0.5,1,2};其次,是尺度大小,也就是anchors的面积,一般同一个featuremap下的grid都是看作生成相同尺度的anchors,经过不同层的featuremap对应不同的尺度,也就生成不同尺度的anchors,例如左边和右边尺度不同的anchors。
NMS: 非极大值抑制。NMS可以理解为不是极大值就抑制它。如下图所示,有两个anchors都分类为狗,这时会计算两个框之间的IoU,如果大于某个阈值,则认为两个框检测的是同一个物体,将得分高的框保留,得分低的框去除。图中红色框得分0.9,绿色得分0.7,两个框的IoU大于某个阈值,则只保留红色来检测狗的位置。
在RPN网络中,对于分类分支,它将给出每个样本被预测为目标和背景的打分。网络将用Siam网络提取到的模板和检测帧的特征用一个新的卷积核进行卷积,在缩小了特征图的同时,产生了如图大小为4×4×(2𝑘×256)的模板帧特征[\psi(z)]_{cls}[ψ(z)]cls和大小为20×20×256的检测帧特征$[\psi(x)]_{cls}$,他们分别表示的含义是:模板帧特征大小是4×4,而且它在k种不同的anchors,对每一个anchor都产生一个特征;检测帧特征大小是20×20×256。然后,以模板帧的特征作为卷积核(2k个4×4×256)去卷积检测帧的特征从而产生响应图 A^{cls}_{w\times h}Aw×hcls,即模板帧和检测帧的256个通道相互卷积,加权求和生成一个通道,所以生成17×17×2k的featuremap,这里相当于将搜索图像划分为17×17 个grid,每个grid生成k个anchors,每两个通道是一组,一共k组对应k个anchors。第一个通道中,目标的anchors是1,背景是0;第二个通道中,背景是1,目标是0。
在回归分支中,与分类分支类似,两个featuremap经过卷积层分别生成4×4×(4k×256)的模板帧特征[\psi(z)]_{reg}[ψ(z)]reg和20×20×256的检测帧特征$[\psi(x)]_{reg}$,这里k对应着k个anchors,‘⭐’是卷积的操作,与分类分支的操作相同,生成17×17×4k的featuremap,每四个是一组,一共k组对应k个anchors。四组分别对应boundingbox的四个值dx、dy、dw、dh,是anchor与真值的距离。
siamRPN的输入与siamFC中的相同,在训练过程中,用cross-entropy loss作为分类分支的损失函数,用smooth L1loss作为回归分支的损失函数。
3.2.2 one-shot跟踪
SiamRPN是第一次将one-shot策略用在跟踪任务中:
检测帧在对每一帧目标进行检测时就是对proposals进行分类,即相当于一个分类器。该分类器进行分类时需要一个响应得分图,该响应图是由检测帧特征图用模板帧特征图作为卷积核进行卷积得到的。标识有weight for regression和weight for classification即为模板帧特征图,它用第一帧图像信息进行训练(也就是的one-shot策略,只用第一帧图像信息训练出一层网络的参数),然后将训练好的参数作为卷积核用到检测支中,对检测帧特征进行卷积得到响应图featuremap。(分类的是:17×17×2k,回归的是:17×17×4k)
3.2.3 模型创新
- 区域选择策略是丢弃部分anchors产生的边界框,选择在目标周围𝑔×𝑔×𝑘的anchors而不是在整个特征图上的𝑚×𝑛×𝑘的anchors,如图g=7。
- 用cosine窗口和尺度变化penalty对剩下的proposals得分进行重新排序。在上一个策略中执行并删除了离目标较远的proposals后,cosine窗口用于抑制最大位移,然后增加penalty以抑制尺寸和比例的大幅变化。最后选出得分最高的前K个proposals,并用NMS选出最终的跟踪目标位置。另外,在跟踪目标得到后,通过线性插值更新目标尺寸,保持形状平稳变化。
其中r和r′是长宽比,s和s′代表尺度,k是超参数。
3.2.4 损失函数
损失函数与faster-RCNN 中的损失函数类似,分类损失为交叉熵损失,回归损失采用归一化坐标的smooth L1 损失进行回归。Ax,Ay ,Aw,Ah表示anchors的中心点和宽高,Tx ,Ty,Tw,Th表示groundtruth的中心点和形状,标准化距离为:
然后经过smooth L1损失:
3.2.5 模型训练
SIamRPN是端到端的训练模型,用SGD方法对网络进行训练,同时也运用了一些数据增强处理。在细节方面,因为相同目标在相邻帧变化不会很大,采用同一尺度5种不同比例的anchors[0.33,0.5,1,2,3],同时将IoU>0.6的定为正样本,IoU<0.3的定为负样本。