但是也可以发现MDNet的总体思路和RCNN比较类似,需要前向传递上百个proposal,虽然网络结构较小,速度仍较慢。且boundingbox回归也需要单独训练,因此MDNet还有进一步提升的空间。
运用递归神经网络进行目标跟踪的新思路
近年来RNN尤其是带有门结构的LSTM,GRU等在时序任务上显示出了突出的性能。不少研究者开始探索如何应用RNN来做解决现有跟踪任务中存在的问题,以下简要介绍两篇在这方面比较有代表性的探索文章。
RTT(CVPR16)
Recurrently Target-Attending Tracking
这篇文章的出发点比较有意思,即利用多方向递归神经网络(multi-directional recurrent neural network)来建模和挖掘对整体跟踪有用的可靠目标部分(reliable part),实际上是二维平面上的RNN建模,最终解决预测误差累积和传播导致的跟踪漂移问题。其本身也是对part-based跟踪方法和相关滤波(correlation filter)方法的改进和探索。
RTT的整体框架如上图所示:
(1) 首先对每一帧的候选区域进行网状分块,对每个分块提取HOG特征,最终相连获得基于块的特征
(2) 得到分块特征以后,RTT利用前5帧训练多方向RNN来学习分块之间大范围的空间关联。
通过在4个方向上的前向推进,RNN计算出每个分块的置信度,最终每个块的预测值组成了整个候选区域的置信图(confidence map)。受益于RNN的recurrent结构,每个分块的输出值都受到其他关联分块的影响,相比于仅仅考虑当前块的准确度更高,避免单个方向上遮挡等的影响,增加可靠目标部分在整体置信图中的影响。
(3) 由RNN得出置信图之后,RTT执行了另外一条pipeline。即训练相关滤波器来获得最终的跟踪结果。值得注意的是,在训练过程中RNN的置信图对不同块的filter做了加权,达到抑制背景中的相似物体,增强可靠部分的效果。
(4) RTT提出了一个判断当前跟踪物体是否被遮挡的策略,用其判断是否更新。即计算目标区域的置信度和,并与历史置信度和的移动平均数(moving average)做一个对比,低于一定比例,则认为受到遮挡,停止模型更新,防止引入噪声。
小结:RTT是第一个利用RNN来建模part-based跟踪任务中复杂的大范围关联关系的跟踪算法。在CVPR2013提出的OTB50数据集上OPE准确度绘图为0.827,OPE成功率绘图达到了0.588。相比于其他基于传统特征的相关滤波器算法有较大的提升,说明RNN对关联关系的挖掘和对滤波器的约束确实有效。RTT受制于参数数目的影响,只选用了参数较少的普通RNN结构(采用HOG特征其实也是降低参数的另外一种折中策略)。结合之前介绍的解决训练数据缺失的措施,RTT可以运用更好的特征和RNN结构,效果还有提升空间。
DeepTracking: Seeing Beyond Seeing Using Recurrent Neural Networks(AAAI16)
这篇文章的应用场景是机器人视觉,目标是将传感器获得的有遮挡的环境信息还原为真实的无遮挡的环境信息。严格来说这篇文章仅输出还原后的图片,没有明确预测目标的位置和尺寸等状态信息,和之前介绍的所有文章的做法都不一样,不妨称为一种新的跟踪任务。
在模型方面,不同于RTT用RNN建模二维平面关联,DeepTracking利用RNN来做序列关联的建模,并最终实现了端到端的跟踪算法。
传统的贝叶斯跟踪方法一般采用高斯分布(卡尔曼滤波Kalman filter)或者离散的采样点权重(粒子滤波particle filter)来近似需要求解的后验概率 P(yt|x1:t) (yt 为需要预测的机器人周围的真实场景, xt 为传感器直接获得的场景信息),其表达能力有限。DeepTracking拓展了传统的贝叶斯跟踪框架,并利用RNN强大的表征能力来建模后验概率。
具体而言DeepTracking引入了一个具有马尔可夫性质的隐变量 ht ,认为其反映了真实环境的全部信息。最终需要预测的 yt 包含了 ht,包含了 ht 的部分信息,可由 ht 得到。假设 Bt 为关于 ht 的信念(belief),对应于后验概率:Bel(ht) = P(yt|ht) 。之后经典贝叶斯跟踪框架中由 P(yt-1|x1:t-1) 到 P(yt|x1:t) 到的时序更新在这里转化为:Bt = F(Bt-1,xt)和 P(ty|x1:t) = P(yt|Bt)。