2.1 全卷积孪生网络结构
图为全卷积孪生网络结构。x为以上帧目标位置为中心crop出的的search image,z为模板目标图像。卷积网络将search image作为整体输入,直接计算两个输入图像的feature map的相似度匹配,节省了计算。计算得到相似度最高的位置,并反向计算出目标在原图中的位置。
2.2 使用search images训练
本模型采用了一种有区分力的方法来训练网络,并采用logistic loss作为损失函数:
这里v是一个模板-候选图像对的实值得分,y为±1,代表该对的ground-truth标签。
如上图网络结构中所示,6*6和22*22的feature map“卷积”得到17*17的score map。对于每个score map,计算其loss为每个卷积得到的6*6小图的loss的均值。
卷积网络的参数由SGD方法最小化上图损失函数得到。
训练中,从标注视频数据库中提取exemplar和search image对,均以目标为中心。从两帧相隔T帧以上的图像中选取(可能意为exemplar和search image从不同帧中挑出,待检验代码后确认)。每个image中目标的scale被无损纵横比地归一化。如果结果在以目标为中心的半径为R的圆内则记为positive。
2.3 数据集和网络细节
待阅读完源码再补充。。。
3 相关工作
近期有一些研究将RNN用在目标追踪领域。Gan et al.(Fisrt step toward model-free, anonymous object tracking with recurrent neural networks)训练RNN以在每帧中预测目标的绝对位置。Kahou et at.(RATM: Recurrent Attentive Tracking Model)类似地训练了一个RNN,利用一个可区分的注意力机制(differentiable attention mechanism)。利用RNN的方法效果目前不是很好,但是却是一个很有前景的研究方向。本paper的方法某种意义上也可以理解为一个长度为2的展开的RNN。孪生网络可以看做一个递归模型的有力初始化(?)。
Denil et al.(Learning where to attend with deep architectures for image tracking)利用一个基于距离度量的粒子滤波器比较当前appearance和第一帧的appearance。他们计算固定点(fixations)间的距离(目标bounding box内小区域的foveated glimpses)。对两个fixations,训练一个受限玻尔兹曼机RBM并使用隐层激活函数间的欧几里得距离,以学习一个距离度量。(原文To learn a distance metric, they train a Restricted Boltzmann Machine and then use the Euclidean distance between hidden activations for two fixations)。尽管RBMs是unsupervised,他们建议以要检测的目标图像为中心,随机选取的fixations来训练RBM。这必须要在线训练,或者有追踪目标的先验信息并离线训练。追踪目标时,他们学习一种随机策略来选择对目标specific的fixations,使用不确定性作为reward signal。(不是很懂。。待以后补充)
针对于track的特点,即目标信息事先未知且只有第一帧信息,还有一些工作利用离线预训练+在线SGD微调的方法。SO-DLT(Transferring rich feature hierarchies for robust visual tracking)和MDNet(Learning multi-domain convolutional neural networks for visual tracking)在离线阶段训练一个用于类似检测任务的卷积网络,在在线阶段使用视频中提取的样本SGD训练检测器。这些方法都由于在线训练计算量的缘故难以做到实时。另一个方向是利用预训练的卷积网络的内在表达(interal representation)实现传统的shadow methods(内在表达大致是指深度卷积网络中不同层的feature map的特点)。如DeepSRDCF(COnvolutional featrues for correlation filter based visual tracking),Ma et al.(Hierarchical convolutional featrues for visual tracking),FCNT(Visual tracking with fully convolutional networks)等方法取得了很有力的结果,但是无法实时。
与我们同时的,还有一些团队也从图像对(pairs of images)中学习深度卷积网络。如GOTURN(Learning to track at 100 fps with deep regression networks)将输入的两个images直接回归regress成第二帧图像中目标出现的位置。预测一个框的而非位置的好处在于不用担心尺度的变换,节省了计算。缺点是对第二帧的translation(平移?)不具有内在不变性。(This means that the network must be shown examples in all positions, which is achieved through considerable dataset augmentation.)。Chen et al.(Once for all: A two-flow convolutional neural network for visual tracking)训练一个网络YCNN(Y表示网络形状),将一个exemplar和一个search region映射成一个response map。但由于最后一层采用了FC层,他们的方法也缺少对第二帧图像的translation不变性。与GOTURN相似,这是很低效率的因为训练集必须要表达所有object的所有translations。Tao et al.(Siamese instance search for tracking)提出他们的方法SINT(Siamese INstance search Tracker),训练Siamese网络以识别与初始目标匹配的候选图像的位置。与我们不同,对于search image他们没有采用全卷积的结构。取而代之的,他们在不同半径的圆上均匀地采样bounding box,如同Struct算法一样。除此之外,他们结合了光流法和bounding box回归来改进结果,并利用RoI pooling来加速计算。尽管如此,只能达到2 fps,无法实时。
4 结果数据
见论文。。
5 个人总结
有两篇公众号上的Tracking的文章比较推荐。一篇是深度学习大讲堂上的《深度学习在目标跟踪中的应用》,另一篇是王乃岩博士在VALSE上的《Object Tracking新思路》。由于Objec Tracking任务的特殊性,基于大数据的深度学习方法似乎不是非常适用。因为目标未知,且很强调实时性。
一些方法将tracking与detection结合在一起,提出了Tracking by detection的思路。将发展迅速的Detection领域的技术直接搬到Tracking领域,也取得了不错的成绩,但是速度奇慢,失去了tracking本身相对于detection的意义。
现有一些方法是对CNN进行离线的预训练,结合在线finetune。这里预训练所用数据均是与目标无关的。所以这里强调的是使深度网络获得更general的目标表达能力,即更好的区分背景和前景的能力。
在王乃岩博士的文章里,提出了一个很新颖的看法,即认为Tracking问题的本质在于verification而非classification或者detection。比如行人追踪时需要的不只是识别出哪里是行人,而是需要坚持追踪指定的目标行人。
相对其他计算机视觉领域,Tracking领域的发展还是有些迟缓,所以依旧大有可为,望同好者共勉。