High Performance Visual Tracking with Siamese Region Proposal Network(SiamRPN,CVPR2018)
主要贡献:
- 提出了SiamRPN跟踪器,首次将端到端的离线训练方式,应用到了大尺度的图像跟踪任务上
- 在在线跟踪过程中,提出了一种局部单点检测(local shot detection)的方法,可以有效地改善传统的多尺度检测方法
- 以160FPS的速度在VOT2015、VOT2016、VOT2017上取得了领先性能
该网络结构整体可以分为两部分:
- Siamese Network:与SiamFC基本一致,分为模板分支和搜索分支,两个分支共享权值。
- Region Proposal Network:由两个分支组成,一个是分类分支,用于区分目标和背景;另一个是回归分支,用于微调候选区域,以实现精确定位。
anchor的本质就是输出一系列不同形状和尺寸的矩形。在RPN子网络中,特征图上的每个像素点都生成k个anchor(论文中k=5),通过这些anchor框对bounding box进行回归。
在RPN子网络中,经过特征提取网络得到的模板特征图和搜索特征图都会送入分类分支和回归分支中,而后在两个分支中,模板特征图分别经过一个3×3卷积层得到相应特征图4×4×(2k×256)和4×4×(4k×256),特征通道从256增加到了2k×256和4k×256。之所以要乘以2k,是因为特征图的每个像素点都生成k个anchor,同时每个anchor可以被分类为前景或背景;同理,乘以4k,是因为每个anchor可以用4个参数(x, y, w, h)进行描述。搜索特征图也会分别经过一个3×3卷积层得到相应特征图,这里的通道数保持不变,还是256。
对于分类分支,将2k个模板图像anchor的4×4×256作为卷积核,与搜索图像的20×20×256进行卷积操作(互相关),从而生成分类响应图17×17×2k,响应图上的每个点表示一个维度为2k的向量;对于回归分支,将4k个模板图像anchor的4×4×256作为卷积核,与搜索图像的20×20×256进行卷积操作(互相关),从而生成回归响应图17×17×4k,响应图上的每个点表示一个维度为4k的向量。
在训练过程中,使用Cross Entropy Loss作为分类分支的损失函数,使用Smooth L1 Loss作为回归分支的损失函数。Smooth L1相比于L1损失函数,可以收敛的更快;相比于L2损失函数,对离群点、异常值不敏感,梯度变化相对更小,训练时不容易跑飞。
正负样本选择策略:设置高低两个阈值,大于0.6的为正样本,小于0.3的为负样本,一个pair中有64个样本,其中正样本最多16个。
Tracking as one-shot detection:
模板分支使用第一帧预测RPN子网络在检测分支上的卷积核的权重(以灰色表示),然后修剪模板分支,仅保留检测分支。因此,该框架被修改为局部检测网络。
推理:选择分类响应图中top K个正样本,得出对应的anchors,然后得到与之对应的回归响应图中K个坐标偏移,最后通过anchors和这些偏移值得到预测值。由此我们得到K个proposals。
我们需要从K个proposals中进行选取,文章中给出了两个策略:
- 作者认为相邻帧目标的位移不会太大,所以只选取分类特征图中心区域的点。
- 使用余弦窗(cosine window)和尺度变化惩罚(scale change penalty)来re-rank proposals的得分,以获得最好的一个。
在这些操作之后,将分类分数乘以时间惩罚,对top K个proposals进行重新排序,然后执行非极大值抑制(NMS)以得到最终的跟踪边界框。在选择最终边界框后,通过线性插值法更新目标大小,以保持形状的平滑变化。