一、目的
对于跟踪问题来说,CNN应该是由视频跟踪的数据训练得到的更为合理。
但用跟踪数据来训练很难,因为同一个object,在某个序列中是目标,在另外一个序列中可能就是背景,而且每个序列的目标存在相当大的差异,而且会经历各种挑战,比如遮挡、形变等等。
现有的很多训练好的网络主要针对的任务比如目标检测、分类、分割等的网络很大,因为他们要分出很多类别的目标。
目前很多训练好的网络都过大,若在跟踪问题中,一个网络只需要分两类:目标和背景,则网络不必过大。由此提出MDNet网络。
二、MDNet网络
1、结构
1)input
107*107的RGB图像(采集的样本)
2)Shared Layers
3个卷积层+2个全连接层,共享层输出512个通道特征
3)Domain-specific Layers
Fc6对应一个二分类的全连接层,带有softmax交叉熵损失函数,来区分目标与背景;输出二维向量,分别表示输入的边界框的目标与背景的得分概率;对应K个分支(K个不同类别的视频),每次训练使用对应该视频的一个分支;
2、训练数据
mini-batch的构成是从某一视频中随机采的8帧图片,再从每一帧图片上取50个正样本和200个负样本,从这些正负样本中取32个正样本和96个负样本(利用了hard negative mining),即每个mini-batch由某一个视频的128个框来构成,也就是说每个视频都只训练一个mini-batch。
3、训练过程
1)目的:让共享层学到不同域共同的特性(光照变换、运动模糊、尺度变换),让不同分支的特定域层学到该域特有的一些特征。
2)利用迭代方法:假设有K个训练视频,一共做100次循环。在每次循环中,会做K次迭代,一次用K个视频的mini-batch来做训练,重复进行100次循环。用SGD(随机梯度下降算法)进行训练,每个视频会对应自己的fc6层。
3)经过这种训练,最终确定w1-w5。同时,由于共性已被提取,fc6的分支的作用也已经完成,在进行测试时,会新建一个fc6层,在线调整,其它层保持不变。
4、测试
当开始进行测试,原来fc6的那些分支全被取消,再重新建立一个fc6,其它层不变,其中w1-w3固定,w4-w6在测试中在线微调。
三、利用MDNet在线跟踪
1、网络在线更新
更新用的是正负样本S+、S-,更新的是w4-w6,在线更新方法:
1)long-term:长期更新是在固定时间内做一次更新(文中10帧1次)
2)short-term:短期更新是当目标得分<0.5时进行
2、正负样本提取
1)离线训练网络时:以ground-truth bounding box(真实边界框)为准,得分>0.7的为正样本S+,得分<0.5的为负样本S-;
2)在线跟踪时:以estimated target bounding box(估计目标边界框)为准,得分>0.7的为正样本S+(50个),得分<0.3的为负样本S-(200个);第一帧给出目标位置,在其周围选取500个正样本,5000个负样本
3、在线跟踪
1)给出一个视频,其中选取的第一帧标记好目标位置,其后每新来的一帧图片,都以上一帧图片的目标位置为中心,用(宽,高,尺度)的形式选取256个candidates,记为xi,i=1,2,...,256(i为上角标)
2)再将它们的大小归一化为107*107,输入到已训练好的MDNet网络(共享层+fc6)
3)输出一个二维向量(bounding box对应目标,目标概率),最终目标是概率值最高的bounding box;最佳目标状态:
4)再做一次bounding box regression,以此提高精度。
4、算法
四、实验结果
1、OTB
2、VOT2014
五、结论
MDNet效果好的原因:
1、用了CNN特征,并且是专门为了tracking设计的网络,用tracking的数据集做了训练;
2、有做在线的微调fine-tune,这一点虽然使得速度慢,但是对结果很重要;
3、Candidates的采样同时也考虑到了尺度,使得对尺度变化的视频也相对鲁棒;
4、Hard negative mining和bounding box regression这两个策略的使用,使得结果更加精确。