原文链接
论文地址:http://openaccess.thecvf.com/...
摘要
大多数性能优越的视觉指标跟踪器很难有实时速度。在这篇文章中,咱们提出了孪生候选区域生成网络(Siamese region proposal network),简称Siamese-RPN,它可能利用大尺度的图像对离线端到端训练。具体来讲,这个构造蕴含用于特征提取的孪生子网络(Siamese subnetwork)和候选区域生成网络(region proposal subnetwork),其中候选区域生成网络蕴含分类和回归两条支路。在跟踪阶段,咱们提出的办法被结构成为单样本检测工作(one-shot detection task)。
咱们事后计算孪生子网络中的模板支路,也就是第一帧,并且将它结构成一个检测支路中区域提取网络外面的一个卷积层,用于在线跟踪。得益于这些改进,传统的多尺度测试和在线微调能够被舍弃,这样做也大大提高了速度。Siamese-RPN跑出了160FPS的速度,并且在VOT2015,VOT2016和VOT2017上获得了当先的问题。
1.引言
与适当设计的最先进的基于相干滤波器的办法相比,基于离线训练的基于深度学习的跟踪器能够取得较好的后果。要害是候选的孪生候选区域生成网络(Siamese-RPN)。它由模板分支和检测分支组成,它们以端到端的形式对大规模图像对进行离线训练。受到最先进的候选区域提取办法RPN 的启发,咱们对相干feature map进行提议提取。与规范RPN不同,咱们应用两个分支的相干特色映射进行提议提取。在跟踪工作中,咱们没有预约义的类别,因而咱们须要模板分支将指标的外观信息编码到RPN因素图中以辨别前景和背景。
在跟踪阶段,作者将此工作视为单指标检测工作(one-shot detection),什么意思呢,就是把第一帧的bb视为检测的样例,在其余帧外面检测与它类似的指标。
综上所述,作者的奉献有以下三点:
1.提出了Siamese region proposal network,可能利用ILSVRC和YouTube-BB大量的数据进行离线端到端训练。
2.在跟踪阶段将跟踪工作结构出部分单指标检测工作。
3.在VOT2015, VOT2016和VOT2017上获得了当先的性能,并且速度能都达到160fps。
2.相干工作
2.1 RPN
RPN即Region Proposal Network,是用RON来抉择感兴趣区域的,即proposal extraction。例如,如果一个区域的p>0.5,则认为这个区域中可能是80个类别中的某一类,具体是哪一类当初还不分明。到此为止,网络只须要把这些可能含有物体的区域选取进去就能够了,这些被选取进去的区域又叫做ROI(Region of Interests),即感兴趣的区域。当然RPN同时也会在feature map上框定这些ROI感兴趣区域的大抵地位,即输入Bounding Box。
RPN具体介绍:https://mp.weixin.qq.com/s/VX...
2.2 One-shot learning
最常见的例子就是人脸检测,只晓得一张图片上的信息,用这些信息来匹配出要检测的图片,这就是单样本检测,也能够称之为一次学习。
3 Siamese-RPN framework
3.1 SiamFC
SiamFC具体介绍:https://mp.weixin.qq.com/s/kS...
所谓的Siamese(孪生)网络,是指网络的主体构造分高低两支,这两支像双胞胎一样,共享卷积层的权值。下面一支(z)称为模板分支(template),用来提取模板帧的特色。示意一种特征提取办法,文中提取的是深度特色,通过全卷积网络后失去一个6×6×128的feature map (z)。上面一支(x)称为检测分支(search),是依据上一帧的后果在以后帧上crop出的search region。同样提取了深度特色之后失去一个22×22×128的feature map (x)。模版支的feature map在以后帧的检测区域的feature map上做匹配操作,能够看成是(z)在(x)上滑动搜寻,最初失去一个响应图,图上响应最大的点就是对应这一帧指标的地位。
Siamese网络的长处在于,把tracking工作做成了一个检测/匹配工作,整个tracking过程不须要更新网络,这使得算法的速度能够很快(FPS:80+)。此外,续作CFNet将特征提取和特色判断这两个工作做成了一个端到端的工作,第一次将深度网络和相干滤波联合在一起学习。
Siamese也有显著的缺点:
1.模板支只在第一帧进行,这使得模版特色对指标的变动不是很适应,当指标产生较大变动时,来自第一帧的特色可能不足以表征指标的特色。至于为什么只在第一帧提取模版特色,我认为可能因为:
(1)第一帧的特色最牢靠也最鲁棒,在tracking过程中无奈确定哪一帧的后果牢靠的状况下,只用第一帧特色足以失去不错的精度。
(2)只在第一帧提取模板特色的算法更精简,速度更快。
2.Siamese的办法只能失去指标的核心地位,然而得不到指标的尺寸,所以只能采取简略的多尺度加回归,这即减少了计算量,同时也不够准确。
网络训练原理
如图所示,上一帧的指标模板与下一帧的搜寻区域能够形成很多对的模板-候选对(exemplar-candidate pair), 然而依据判别式跟踪原理,仅仅下一帧的指标与上一帧的指标区域(即 exemplar of T frame-exemplar of T+1 frame)属于模型的正样本,其余大量的exemplar-candidate pair都是负样本。这样就实现了网络结构的端到端的训练。
3.2 Siamese-RPN
右边是孪生网络结构,高低支路的网络结构和参数完全相同,下面是输出第一帧的bounding box,靠此信息检测候选区域中的指标,即模板帧。上面是待检测帧,显然,待检测帧的搜寻区域比模板帧的区域大。两头是RPN构造,又分为两局部,上局部是分类支路,模板帧和检测帧的通过孪生网络后的特色再通过一个卷积层,模板帧特色通过卷积层后变为2k×256通道,k是anchor数量,因为分为两类,所以是2k。上面是边界框回归支路,因为有四个量[x, y, w, h],所以是4k左边是输入。
3.3 孪生特征提取子网络
预训练的AlexNet,剔除了conv2 conv4两层 。(z)是模板帧输入,(x)是检测帧输入
3.4 候选区域提取子网络
分类支路和回归支路别离对模板帧和检测帧的特色进行卷积运算:
$$A^{cls}_{w×h×2k}=[\psi(x)]_{cls}×[\psi(z)]_{cls}\\A^{reg}_{w×h×4k}=[\psi(x)]_{reg}×[\psi(z)]_{reg}$$
$A^{cls}_{w×h×2k}$蕴含2k个通道向量,中的每个点示意正负激励,通过穿插熵损失分类;$A^{reg}_{w×h×4k}$蕴含4k个通道向量,每个点示意anchor和gt之间的dx,dy,dw,dh,通过smooth L1 损失失去:
$$\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}$$
Ax, Ay, Aw, Ah是anchor boxes中心点坐标和长宽; Tx, Ty, Tw, Th是gt boxes,为什么要这样呢,因为不同图片之间的尺寸存在差别,要对它们做正规化。
smoothL1损失:
$$smooth_{L1}(x,\sigma)=\begin{cases} 0.5\sigma^2x^2, & \text |x|<\frac{1}{{\sigma^2}} \\ |x|-\frac{1}{{2\sigma^2}}, & \text |x|≥\frac{1}{{\sigma^2}} \end{cases}$$
3.5 训练阶段:端到端训练孪生RPN
因为跟踪中间断两帧的变动并不是很大,所以anchor只采纳一种尺度,5种不同的长宽比(与RPN中的3×3个anchor不同)。当IoU大于0.6时是前景,小于0.3时是背景。
4. Tracking as one-shot detection
均匀损失函数L:
$$\min_{W'} \frac{1}{n} \sum_{i=1}^n L(\psi(x_i;w(z_i,W')),l_i)$$
如上所述,让z示意模板patch,x示意检测patch,函数示意Siamese特征提取子网,函数示意区域倡议子网,则一次性检测工作能够示意为:
$$\min_{W} \frac{1}{n} \sum_{i=1}^n L(\zeta(\psi(x_i;W);\psi(z_i;W)),l_i)$$
如图,紫色的局部像原始的Siamese网络,通过同一个CNN之后失去了两个feature map,蓝色的局部是RPN。模板帧在RPN中通过卷积层,$ \phi (x)_{reg}$ 和 $ \phi (x)_{cls}$ 当作检测所用的核。
简略的说,就是预训练模版分支,利用第一帧的指标特色输入一系列weights,而这些weights,蕴含了指标的信息,作为检测分支RPN网络的参数去detect指标。这样做的益处是:
(1)模板支能学到一个encode了指标的特色,用这个特色去寻找指标,这会比间接用第一帧的feature map去做匹配更鲁棒。
(2)相比原始的Siamese网络,RPN网络能够间接回归出指标的坐标和尺寸,既准确,又不须要像multi-scale一样浪费时间。
通过网络后,咱们将分类和回归特色映射示意为点集:
$$A^{cls}_{w×h×2k}={(x_i^{cls},y_j^{cls},c_l^{cls})}\\A^{reg}_{w×h×4k}={(x_i^{reg},y_i^{reg},dx_p^{reg},dy_p^{reg},dw_p^{reg},dh_p^{reg})}\\i∈[0,w),j∈[0,h),l∈[0,2k),p∈[0,k)$$
因为分类特色图上的奇数通道代表正激活,咱们收集所有$A^{cls}_{w×h×2k}$中的前K个点,其中l是奇数,并示意点集为:
$$CLS^*={(x_i^{cls},y_j^{cls},c_l^{cls})_{i∈I,j∈J,l∈L}}$$
其中I,J,L是一些索引集。
变量i和j别离编码相应锚点的地位,l编码相应锚点的比率,因而咱们能够导出相应的锚点汇合为:
$$ANC^*={(x_i^{an},y_j^{an},w_l^{an},h_l^{an})_{i∈I,j∈J,l∈L}}$$
此外,咱们发现$A^{cls}_{w×h×2k}$上ANC*的激活失去相应的细化坐标为:
$$FEG^*={(x_i^{reg},y_j^{reg},dx_l^{reg},dy_l^{reg},dw_l^{reg},dh_l^{reg})_{i∈I,j∈J,l∈L}}$$
因为是分类,$A^{cls}_{w×h×2k}$选前k个点,分两步抉择:
第一步,舍弃掉间隔核心太远的bb,只在一个比原始特色图小的固定正方形范畴里抉择,如下图:
核心间隔为7,认真看图能够看出,每个网格都有k个矩形。
第二步,用余弦窗(克制间隔过大的)和尺度变动惩办(克制尺度大变动)来对proposal进行排序,选最好的。具体公式可看论文。
用这些点对应的anchor box联合回归后果得出bounding box:
$$x_i^{pro}=x_i^{an}+dx_l^{reg}*w_l^{an}\\y_j^{pro}=y_j^{an}+dy_l^{reg}*h_l^{an}\\w_l^{pro}=w_l^{an}*e^{dw_l}\\h_l^{pro}=h_l^{an}*e^{dh_l}$$
an就是anchor的框,pro是最终得出的回归后的边界框 至此,proposals set就选好了。
而后再通过非极大克制(NMS),顾名思义,就是将不是极大的框都去除掉,因为anchor个别是有重叠的overlap,因而,雷同object的proposals也存在重叠。为了解决重叠proposal问题,采纳NMS算法解决:两个proposal间IoU大于预设阈值,则抛弃score较低的proposal。
IoU阈值的预设须要审慎解决,如果IoU值太小,可能失落objects的一些 proposals;如果IoU值过大,可能会导致objects呈现很多proposals。IoU典型值为0.6。
5.施行细节
咱们应用从ImageNet [28]预训练的改良的AlexNet,前三个卷积层的参数固定,只调整Siamese-RPN中的最初两个卷积层。这些参数是通过应用SGD优化等式5中的损耗函数而取得的。共执行了50个epoch,log space的学习率从10-2升高到10-6。咱们从VID和Youtube-BB中提取图像对,通过抉择距离小于100的帧并执行进一步的裁剪程序。如果指标边界框的大小示意为(w,h),咱们以大小A×A为核心裁剪模板补丁,其定义如下:
$$(w+p)×(h+p)=A^2$$
其中p =(w + h)/2
之后将其调整为127×127。以雷同的形式在以后帧上裁剪检测补丁,其大小是模板补丁的两倍,而后调整为255×255。
在推理阶段,因为咱们将在线跟踪制订为一次性检测工作,因而没有在线适应。咱们的试验是在带有Intel i7,12G RAM,NVidia GTX 1060的PC上应用PyTorch实现的。
学习更多编程常识,请关注我的公众号:
代码的路