发表文章

[最新] CREST EAST DSiam

qq40289855 24天前 1

作者:Xf Mao
链接:http://zhuanlan.zhihu.com/p/34297377
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

 

在SiamFC提出以后,各种改良工作有了爆发式发展的趋势,去年ICCV就有3篇基于SiamFC结构来改进的。

3.CREST,EAST,DSiam(ICCV2017)

这三篇中,CREST(CREST: Convolutional Residual Learning for Visual Tracking)和DSiam(Learning Dynamic Siamese Network for Visual Object Tracking)是改进SiamFC判别效果的,EAST(Learning Policies for Adaptive Tracking with Deep Feature Cascades)则主要针对速度提升。

 

先来说说CREST,还是上次说到的问题,DCFNet虽然避免了空域卷积,但是很不稳定判别力不够。只用一个DCF Layer直接把score map回归到groundtruth label是很困难的,这时候最简单的想法就是stacking more layers,但是这样做会产生model degradation。所以文章很自然的把Residual Learning的思想借用到了这里。

CREST

具体是怎么做Residual Learning的呢?看上图CREST的整体框架。左半部分就是SiamFC,主要区别在右半部分。最上面的橙色框,展示的是DCFNet里的DCF过程,输入T帧的feature map,输出Response Map,但是此时的Response Map并不准确。所以CREST就增加了两个可学习的残差:空间残差和时间残差。

空间残差用了三层网络,使用小尺寸的卷积核,输入T帧的feature map,输出Response Map。从原理上看,空间残差可以看做当目标受外部因素(光照,遮挡,复杂背景等)影响造成DCF无法回归到groundtruth时,通过图片空间域的信息估计一个残差,去修正base mapping的结果。

时间残差的输入是起始帧(object appearance)的特征,输出是Response Map。时间残差适用于空间残差+DCF无法回归到groundtruth的情况,当然不可否认这种情况是会存在的。计算T帧的图像完全没用了,那我们只能用起始帧了,所以他编码的是起始帧。为什么叫空间残差可能就是因为取自不同帧吧。

神奇的是,虽然参照了SiamFC,这篇文章用VGG权值做初始化后,其余部分的权值是online update的。

 

接下来DSiam,天津大学做的,应该不是有名的组,但是这个工作我很喜欢。首先展示一张图

这张图显示了不同tracker在序列上的IoU变化情况,我们可以很清楚的看到,SiamFC在跟踪跑道上人的时候,经常会跟偏到另外一个跑道上,这个问题对deep tracking很致命,同时也是非常重要的一个问题。原因是我们基于深度特征来跟踪时,其实已经失去了物体的细节表达,所以deep tracking只能区分“人”在哪,无法区分两个人之间的差别,所以一旦目标周围有相似物体出现很容易跟丢。

在这种情况下,用目标的appearance去匹配可能不是最佳的,而是需要在线学习目标的形态变化(一个有意思的细节:CREST和DSiam都用到了在线训练来改善DCF,从这里我们看到其实视频的前后帧先验还是很有用的,一旦抛弃online完全offline,正确率也会大打折扣)。文中定义了两个transformations,V学习起始帧到t-1帧的特征变换

这样有一个好处,我们将起始帧变换成t-1帧后,用t-1帧的appearance去预测t帧的位置,会很大程度上减小appearance variation。另外一个transformation W用来抑制无关背景特征

上述 \bar{G}_{t-1} 就是手工加余弦窗的图,用一张图表示以上过程

求解V和W都是FFT循环卷积假设,到傅里叶域快速求解的,保证了速度。最后输出就是两个经过transform的特征的互相关

 

最后一个加速SiamFC的工作EAST,EAST的思想就很简单易懂了,对于简单帧(目标外观没发生很大变化的帧),用底层卷积特征甚至是pixel value就可以精确跟踪,而对于困难帧则需要深度特征,于是文章通过每一层特征对应预测位置的精确程度来判断是否early stop,一旦浅层特征就可以达到很精确,那就不必计算深度的了。这一方法大大减小计算量,提升跟踪速度。

说说简单,但是训练这么一个决策的Agent还是很复杂的。文中定义了8个action作为决策结果(见如上图右半部分)。从上到下,前两个是Global scaling,用于全局缩放,中间四个Local scaling,用来调整宽和高,最后俩分别是不缩放和停止。

然后把score map和历史action作为当前节点的状态,根据IoU来设计奖惩函数,最后通过Deep Q-learning来训练Agent,这是我见过第一篇用强化学习来enhance跟踪的文章,可谓创意十足,而且这篇文章的Agent是offline训练的。

相关推荐
最新评论 (0)
返回
发表文章
qq40289855
文章数
9
评论数
0
注册排名
1323782