【VALSE 前沿技术选介17-07期】
http://mp.weixin.qq.com/s/4s54_cPu430n87P1fSPAyQ【VALSE 前沿技术选介17-07期】联系经典与流行,LK Tracking在Deep时代的新生
作者:Winsty
今天给大家介绍一篇联系起了Tracking和Landmark localization中几个经典与流行的方法的框架,这篇文章思路清晰,很有insight。这里涉及到的算法有像传统的Lucas-Kanade (LK)算法,Face landmark中经典的Supervised Descent Method (SDM)和目前基于Deep learning中一个引起很大关注的Deep regression方法 GOTURN。下面首先简单回顾一下这几个相关的方法和它们之间的联系,想清楚这些之后,引出这篇文章的方法就是一个很自然而然的事情了。
在经典LK的算法中,一个最重要的假设就是局部线性 (Local Linear)这个假设,这也是这后面一系列工作的一个基本假设。这个假设的意义在于,认为图像的外观 (appearance)和其位移有近似线性关系,所以可以近似使用泰勒展开来近似一个图像在局部邻域内的外观:
我们为了实现追踪,需要寻找一个位移\delta_p,使得其接近于一个预设的模板,联合上述公式,我们可以得到IC-LK算法的优化目标:
解最优的\delta_p即是一个标准的最小二乘问题,这里就不再赘述。其最优解可以写成如下的形式:
其中W是和template图像Jacobian相关矩阵,\phi可以是一个通用的feature extractor。由于真实图像是一个复杂的非线性关系,所以一般需要多次采用这样的线性化操作来得到最终的结果。
更通用地,其实IC-LK算法属于Cascaded Linear Regression中的一种。上面的式子其实可以变换成更通用的形式:
属于这个类别里面的工作还有很多,比如著名的SDM,是通过数据训练得到的R和b,而不是直接从一个给定的template中计算R和b。讲到这些之后,我们就可以联系起来LK和GOTURN这两个算法了。在GOTURN中,直接输入template的特征和初始框对应的特征,输出位移:
其中,f是多层CNN表示的非线性变换。在IC-LK中,我们也可以写成类似的形式:
可以看到,IC-LK和GOTURN唯一的区别就在于,IC-LK是一个线性变化,而且这个线性变换是和template的图片相关但是在测试中保持不变的;在GOTURN中,这个变换是非线性,但是预先固定的。对于tracking而言,前者这样类似于one shot learning的方式可以更好地适应不同种类的物体。而且这个weight只需要计算一次,是在传统基于deep learning的方法,需要固定频率使用bp来更新网络和GOTURN这样完全不更新网络的两个极端中取得了一个平衡。
所以,在本篇文章中,作者希望能够结合这两者的优势,一是通过训练得到一个更符合IC-LK算法需求的feature extractor,二是同时保留IC-LK根据template设定不同transformation的能力。前者如下图所示:
如果我们直接使用在imagenet上pretrain得到的特征,那么很可能不能保证IC-LK算法所需要的local linear的保证,如上图中蓝色所示。而经过作者提出的训练算法后,可以得到上图中红色曲线的结果,即基本对shift对称线性。这就为IC-LK算法的快速收敛提供了很好的保证。
下图展示了整个Deep-LK算法的流程:
在训练阶段,通过大量视频数据,我们训练出的目标就是可以在局部区域内feature随位移linear变化;在测试阶段,有了好的feature,方法就可以很直接,基本就是使用了deep feature的标准的IC-LK算法。
性能方面,虽然这个方法没有取得最佳的性能,但是在CPU20fps/GPU100fps这个速度下,相比GOTURN和其他CPU实时方法,性能取得了巨大的提高。这在实际使用中有着巨大的优势。
在这个deep learning事实上统治的年代,温故而知新, 联系起经典方法和流行方法,优势互补,相信一定可以碰撞出更多优秀的工作~
页:
[1]