Introduction of Siamese Instance Search for Tracking
特点
- 孪生结构
- 没有应用模型更新
- 没有遮挡检测
- 没有采用追踪器集合
- 没有几何匹配
- state-of-the-art
思路
基于图像检索的思路,将孪生网络训练成为一个通用的、对追踪中各种干扰invariant的匹配函数。
Matching function m从视频数据集上学习得到。追踪器仅仅需要寻找到和第一帧初始图像patch匹配最好的那个patch。
匹配学习
《Attributes and categories for generic instance search from one example》介绍了一种匹配学习的方法,即使目标的视角有较大的变化也能很好地应对。
本文提出一种能够应对各种追踪目标外观变化的更通用的匹配函数。训练完成后,该函数不再改变。
贡献
首先,提出从额外的视频数据中学习一个通用的追踪匹配函数,以鲁棒地应对目标在视频序列中可能会遭遇的常见的外观变化。
第二,基于该匹配函数,提出一个达到state-of-the-art的追踪器。
第三,为了学习匹配函数,针对性地提出了双流孪生网络结构。
最后,该追踪器能够实现re-identification。
相关工作
追踪中的匹配函数
NCC,Normalized Cross-Correlation,最古老的的匹配追踪算法。虽然简单,却非常有效。
Lucas and Kanade Tracker给匹配函数增加了一个仿射变换。
MST则依靠于概率匹配法Probabilistic Matching。
FRT使用地面移动物的距离来匹配。
IVT通过追踪中获得的特征图像度量进行匹配。
HBT以一种概率方式利用HOG特征。
FBT使用颜色不变性来对光照变化鲁棒。
上述方法的匹配函数均显式地针对某一种干扰建模。本文则与之不同,直接从标注视频学习出匹配函数,更为通用。
近期追踪方法
TLD将NCC匹配和一个差分追踪器和一个复杂的更新模型结合在一起。
Struck基于结构化SVM,以偏移量作为连续性的输出,并谨慎更新。
MEEM设计了一个判别追踪器,保存一组历史快照作为专家,由专家基于熵规则优化产生每帧的预测。
Alien是一个依赖对局部特征过采样和机遇RANSAC几何匹配的长期跟踪器。
MUSTer有一部分负责存储目标的短时记忆,并使用集成互相关滤波器进行短时跟踪,另一部分负责长时记忆,依赖于RANSAC匹配。
AND-OR追踪器提出了解释对象的外观和结构变化的层次、组成与/或图形的辨别学习。
本文专注于简单的跟踪推理方案,即寻找与第一帧中的初始目标最匹配的图像元。复杂度被留给如何训练一个对于外观变化鲁棒的匹配函数。也就是说,本文提供的匹配函数可以与其他追踪算法相结合,以提升其性能。
追踪中的深度学习
DLT使用栈式降噪自编码器学习追踪特征,但表现不佳。SO-DLT改用深度卷积网络,效果有所提升但是速度依旧受限于在线SGD。
DeepTrack在线学习一个目标分类器,严重受限于数据的缺失。
《Online tracking by learning discriminative saliency map with convolutional neural network.》基于一个预训练的ImageNet网络,学习针对目标的显著性图。
待补充。。。
Siamese Instance Search Tracker
‘conv’, ‘maxpool’, ‘roipool’, ‘fc’分别代表卷积层、最大化池化、感兴趣区域池化、全连接层。中括号中的数字是kernel size, number of outputs和stride。fc层有4096个单元,所有的卷积层后都接着一个ReLU层。
网络细节选择
- Max pooling会降低图像的分辨率,从而影响定位的精确性;但是却能增强对局部形变的不变性。因此本网络中只有前几层为了消除噪声提取特征而加入了maxpooling。
- 放弃一次前向传递数以百计proposals的做法,直接将整幅图像作为输入,几层卷积后送入ROIpooling,输出长度固定的表达。
- layer越深,其对外观变化越不敏感,但也更不具区分力,尤其是面对同类物体的时候。因此使用多个layers的输出作为中间表达,送入loss层。
- ReLU激活函数的输出范围可能很大,因此网络的输出和损失函数可能被生成特征的大小而非表达质量严重影响。因此在损失层前加入L2 normalization layer。
- 使用类AlexNet或类VGGNet,以利用ImageNet预训练的网络参数。
损失函数
希望让网络生成这样的特征表达:和正样本对足够接近,而与负样本对至少相隔一个最小距离。即margin contrastive loss如下:
$$L(x_j, x_k, y_{jk}) = \frac{1}{2} y_{jk} D^2 + \frac{1}{2} (1 - y_{jk}) \max(0, \epsilon - D^2)$$
这里$D=||f(x_j)-f(x_k)||_2$是两个L2正则化的表达的欧式距离,$y_{jk}\in\{0,1\}$表示两个输入是否是同一个目标。$\epsilon$是不同目标之间应满足的最小间距。
实验&结论
评估标准
- Success Plot. 如果算法估计的bounding box(bbox)和ground truth box(gt)的重叠率超过一个阈值,则判定跟踪成功。
- Precision Plot. 如果估计的bbox中心和gt中心距离小于某个阈值,则判定追踪成功。
对比实验
- 基于大量额外数据调整的Siamese网络(c)比直接基于ImageNet预训练的网络(a)和基于首帧数据微调的网络(b)表现都好。
- 不加max pooling layers的网络表现更好。
- 基于多层特征的网络(f)比基于最后一层输出的网络(e)表现更好。
- 更深的网络(g)比浅一些的网络(f)表现更好。
缺点
- 当视野内出现相似目标时,追踪器可能会在其之间跳动
- 当有大的遮挡时,匹配函数表现糟糕
(吐槽:markdown和mathjax会有冲突,公式中表示下标的下划线需要加\,否则就有可能会被markdown理解成加粗=。=)