这是一篇CVPR2016的第一篇采用Siamese框架来解决Tracking的文章。使用siamese深度网络,no model updating, no occlusion detection, no combination of trackers, no geometric matching,达到state-of-the-art的水平。
Abstract:
In this paper we present a tracker, which is radically different from state-of-the-art trackers: we apply no model updating, no occlusion detection, no combination of trackers, no geometric matching, and still deliver state-of-the-art tracking performance, as demonstrated on the popular online tracking benchmark (OTB) and six very challenging YouTube videos.
首先表明该论文提出的跟踪器不需要模型更新、遮挡检测、不结合多个跟踪器,没有几何匹配等策略仍然能够达到SOTA的跟踪效果(与同时期的跟踪器相比)。
The presented tracker simply matches the initial patch of the target in the first frame with candidates in a new frame and returns the most similar patch by a learned matching function.
然后介绍说论文提出的跟踪器只是简单地通过一个学习到的匹配函数对初始帧的目标和待跟踪帧的候选样本进行相似度计算(匹配)。
The strength of the matching function comes from being extensively trained generically, i.e., without any data of the target, using a Siamese deep neural network, which we design for tracking.
匹配函数的优势在于作者在Siamese深度神经网络的基础上设计的跟踪器可以在没有目标数据的情况下进行广泛的泛化训练。(ps:采用不包含测试集合的训练数据进行广泛的训练,使得模型具有广泛的泛化能力。)
Once learned, the matching function is used as is, without any adapting, to track previously unseen targets.
模型一旦训练完之后,匹配函数就不需要任何调整就可以来跟踪之前训练过程中没有见过的目标(强大的泛化能力)。
It turns out that the learned matching function is so powerful that a simple tracker built upon it, coined Siamese INstance search Tracker, SINT, which only uses the original observation of the target from the first frame, suffices to reach state-of-the-art performance.
事实证明学习得到的匹配函数很强大,在此基础上一个简单的跟踪器(SINT)只使用第一帧目标的信息就可以得到SOTA的跟踪性能。
Further, we show the proposed tracker even allows for target re-identification after the target was absent for a complete video shot.
此外,作者还表明其提出的跟踪器甚至可以在目标消失一段时间后重新实别出目标(得益于跟踪器只用了初始帧的目标信息)。
论文旨在学习匹配机制,从大量的外部视频学习先验的匹配函数,训练视频与测试视频没有交集,在学习过程中关注广义目标外形变化。在跟踪过程中目标不变,不进行跟踪器组合和遮挡处理。
核心思想:通过Siamese网络学习一个匹配函数。在得到第一帧目标信息后,接下来的所有帧采样后都和第一帧目标进行匹配度计算,得分最高的即为目标。
加速手段:由于跟踪问题中一个重要的性能就是速度!在检测过程中,如果每提取一个样本就和第一帧图片计算一次匹配度,那么显然是十分耗时的。作者参考Fast-Rnn的思想(reginon pooling layer),从一副大的图片经过CNN后的输出特征图中寻找想要的小patch的特征部分,从而在前面几层只需要一次的CNN前向计算即可,最后根据给定的bounding box regions选取n个feature map在后面几层进行传播计算。
考虑到跟踪中匹配的框有很多交叠的,使用了ROI pooling层进行加速,ROI池化将特征图转换为固定长度的表示。低层的特征分辨性比较强,高层的特征概括性比较强,作者使用了二者的综合特征。在跟踪中,query图像和search图像没必要紧邻。匹配过程中,根据匹配函数找到最佳匹配框:
损失函数:
匹配函数:作者采用Siamese网络架构,网络每次的输入是一个数据对(x1,x2)。在Siamese的CNN部分,作者在两个网络(AlexNet和VGGNet)上做了实验并对比性能。
网络训练的输入:本文Siamese网络的两个分支分别为query stream和search stream。query stream:输入为训练数据集中一个视频序列中任何一帧图片的的ground truth。search stream:输入为随机选取训练数据集中拎一个视频序列的一帧图片的随机的bbox,如果此bbox与此图片中的ground truth的iou大于某个阈值,则此样本对为正样本对,否则为负样本对。
参考:
1. https://blog.csdn.net/cv_family_z/article/details/52301404
2. https://blog.csdn.net/aiqiu_gogogo/article/details/79225555
3. https://blog.csdn.net/mtc_Ningning/article/details/52814480
4. https://zhuanlan.zhihu.com/p/104551016
5. Siamese Instance Search for Tracking (https://openaccess.thecvf.com/content_cvpr_2016/papers/Tao_Siamese_Instance_Search_CVPR_2016_paper.pdf)