标签:包含 dom specific 在线 参数 pipeline margin 实验 nal
写博客好麻烦,每次写到一半就不想写了。。。。前面好几个坑还没填完,这又来写新的了==
老板一句话,直接抛开之前检测的工作,来研究跟踪,这算是研究生阶段严格来说看的第一篇跟踪文章吧,这篇文章号称标志了跟踪也被深度学习攻陷~下面进入正题。
一、简介
1、CNN为什么在跟踪中用的少
为什么CNN兴起那么久了,在这篇文章之前,跟踪领域用CNN做的好文章没咋出现?因为:一是CNN需要大数据来驱动、训练提取特征,对于视频处理来说,并没有那么多的数据;二是针对视觉跟踪的特殊的训练方法还没有。对于第一点很容易理解,第二点对于我这样的刚入门跟踪的人来说可能有点难理解。我对第二点的理解是这样的:
<1> 正如上一篇DeepID中提出的目标检测中用ImageNet里image-level(我觉得翻译过来就没有感觉了,还是用英文表示吧)的标注信息来预训练objective-level的目标检测是存在gap的一样,用分类数据集来预训练跟踪网络肯定gap更大,就比如在目标检测里,一张图片里的所有猫,你都该分类成正样本猫,但是在某个跟踪序列里,你要对特定的序列里特定的目标里进行跟踪,也就是说在跟踪的帧里,两只猫一个需要分类成正样本,另一个要分类成负样本;
<2> 再者,跟踪和检测的很大区别就是,跟踪对于目标的位置(location)特别敏感,而检测不是很敏感。检测的时候,在某一张图片里bounding box偏差十个像素甚至更大也没啥影响,毕竟单张图片独立;但是在跟踪里,真值信息只在第一帧提供,后面进行训练分类器等都是很依赖前一帧检测出的真值,即使每次只偏一个像素,经过视频序列很多帧的累加,会产生很大的偏移,也就是跟踪问题里的drift问题,所以这一点是很重要的。
2、作者打算怎么解决
作者认为,新的训练方法需要能够获取序列无关的信息特征。所以作者提出Multi-Domain Network(多域网络MDNet:玛德net)。一个域指的就是一个video。
为了学习序列无关的共享特征,MDNet在卷积层和全连接层后有很多个用来做二分类的全连接分支。上图好理解:
需要注意的是在test阶段后面多个分支都会被移除,接上针对test时的那个序列独有的全连接层。也就是说这个方法需要在线训练。
3、总结一下这篇文章的贡献:
<1> 提出了一个基于CNN的多域学习框架;
<2> 提出了一个比较好的训练方式;
<3> 整个的pipeline值得借鉴
二、具体细节
1、网络结构
输入:107 x 107的RGB图像,隐层有五个,三个卷积俩全连接。训练时有K个分支,也就是K个训练视频序列。为哈用那么浅的网络呢?作者说:跟踪的分类很简单,就两类,目标和背景,不需要太复杂的模型;二,由于网络越深,目标的空间信息就会被稀释的越厉害,定位就越不准;三,跟踪的目标一半很小,所以input也就比较小,也就决定了网络不会太深(这个不是很理解,为啥目标小输入就要小??);最后,对于跟踪问题来说,训练和测试都是在线的,所以时间的消耗很大,也就深了不好。作者说实验结果也是深了不好。
2、训练算法
这个是本文的重点吧。训练的目的是得到一个能够消除目标和背景歧义的多域CNN,提取一些共同的特征,比如光照改变的鲁棒性、运动模糊、尺度变换等。
第k次迭代,训练数据的minibatch是从k mod K个序列中提取,相应的全连接层fc6被使能,其它的禁止。
3、online跟踪
视觉跟踪里鲁棒性和适应性是一对互补的性质,一个需要序列无关,一个是序列specific。作者分别通过long-term和short-term来进行实现。long-term是在固定的帧数进行训练更新,short-term是当估计的目标被分类成背景发生错误时(问问磊哥),利用short-term里的正样本进行训练更新。由于负样本随之时间的推移会变得很冗余并且相关性减小,所以两种term的负样本都用short-term保存的。
每次的候选目标是在上一帧的目标周围进行随机采样256个box(高斯,具体的也不咋懂),取的分最大的。
4、hard minibatch mining
就是减少负样本的个数,加快收敛,对检测出的负样本进行排序,选得分高的负样本进行下一次迭代。
5、bb 回归
没啥好说的,需要注意的是只在第一帧进行bb回归参数训练(因为bb回归的训练还是比较耗时的,而且也不太有用)。
6、算法步骤
输入:预训练的CNN隐层(三个卷积俩全连接)+ 初始目标状态;
输出:估计的目标状态
<1> 随机初始化最后一层fc6参数;
<2> 训练一个bb回归器;
<3> 获取正负样本;
<4>训练,更新权重w4 5 6;
<5>更新long-term,short-term帧数
<6>迭代:
① 获取候选目标;
② 计算得分找最优;
③ 如果得分大于0.5
更新正负样本;
更新long-term,short-term帧数;
bb回归精修位置。
④ 如果得分小于0.5
利用short-term的正负样本训练更新权重
⑤ 如果帧数 mod 100 ==0,
利用long-term的正样本和short-term的负负样本训练更新权重.
7、训练数据
对于离线训练,选取50个正样本,200个负样本,IoU分别>=0.7 和<=0.5;在线训练选取50个正样本,200个负样本,IoU分别>=0.7 和<=0.3,但是第一帧取500正样本5000负样本。
8、学习参数
离线训练时迭代100K次,K为序列个数,卷积层学习率是0.0001,全连接层0.001.
在线更新的第一帧训练时,全连接层迭代30次,fc4 5学习率为0.0001,fc6是0.001;
在线更新时,迭代10次,学习率比第一帧大三倍。mini bath包含36正,96负
Learning Multi-Domain Convolutional Neural Networks for Visual Tracking 论文阅读
标签:包含 dom specific 在线 参数 pipeline margin 实验 nal
原文地址:http://www.cnblogs.com/ronghuohuo/p/6127550.html