论文笔记 STCT: Sequentially Training Convolutional Networks for Visual Tracking

来源:互联网 发布:电子幻灯片制作软件 编辑:程序博客网 时间:2024/05/20 06:09

CVPR 2016中的一篇关于tracking的文章,大连理工的卢湖川教授与港中文组合作的第二篇跟踪的文章吧~感觉挺有意思的,来学习一下。

对于deep CNN网络的应用,在训练数据的数目有限时,往往在大数据集上预训练再在目标任务中微调的方法进行解决。但是在在线视觉跟踪问题(online visual tracking)中,有ground truth 标签的训练数据仅仅在第一帧中,通过在后续序列视频中更新tracker得到跟踪结果,因此,数据太少,用一个预训练模型进行微调的方法太容易产生过拟合。本文因而提出sequential training method。

 

主要思想:CNN被看做一个ensemble,其中每一个channel的卷积层map被看做一个base learner,通过新的loss相对独立地更新。这样online fine-tuning CNN就作为一个sequential ensemble learning problem(连续的集成学习),而在线跟踪转化成这个ensemble中的前景背景分割问题。越看越晕,还是赶快进入细节~

 

网络结构示意图:


3个基本网络介绍:

CNN-E网络:特征提取网络,应用16层的VGG网络的前十层在Imagenet分类问题中训练得到,该网络输入为RGB图像,输出为一个具有512通道的特征图,记为X。

CNN-A网络:online adaptation network,第一层为卷积+mask层,大小5*5的卷积核,产生100通道的特征图(与100个base learners一致),第二层采用3*3大小的卷积核的卷积层,产生1个通道的用于目标定位的特征图。

SPN网络:建立在预训练的CNN-E的顶端,CNN-E网络的输出特征图X 即为SPN网络的输入,通过一系列预先定义好的尺度变换器获得变换尺度后的特征图。


算法流程:

(1)初始化

在跟踪问题的第一帧,是有ground truth标记的,在标记的ground truth位置处,用一个2倍大小的bounding box标记。通过CNN-E得到特征图X,独立地初始化base learners,通过loss函数,得到热度图M,进行target score map的预测。其loss函数如下:


该loss函数即为2倍大小的bounding box标记处为中心的高斯分布,与100个base learner下的网络得到结果之差。等于该loss函数即使得CNN-A与CNN-E得到的X特征图的高斯分布逐渐接近。

同时,SPN网络使用如下loss函数,来使得尺度上一致:


(2)Online Tracking

对于第t帧,输入图像通过CNN-E网络获得特征图Xt,CNN-A网络以Xt为输入即可得到一个预测热度图Mt,热度图的最大值处即预测为目标的位置。

(3)Online Update

为了避免使用错误的数据进行更新带来不好的结果,预先设定一个阈值,只有当预测的位置的置信度高于阈值时,才进行online update操作。update时候,CNN-A网络中的base learner通过SGD算法独立运行,loss函数如下(上面为base learner 在ensemble set的loss,下面为candidate set的loss):


其中Mt仍然表示预测的目标位置为中心的热度图。因此,当上面的loss训练误差较大(大于另一个阈值)时,同时candidate set为空,对该帧进行采样,放入ensemble set中。。。。

此为字面翻译,有点晕,个人看过代码后理解就是预测出的结果很好,loss很小的时候,假设将该帧图像预测的结果作为正样本,如果loss够好,则作为正样本。


算法流程示意图:



实验结果:

(更多实验结果请参考该文章,这里仅仅展示可视化结果,评价与对比等结果部分不予展示)



2 0