ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记

论文主页:http://cvgl.stanford.edu/projects/MDP_tracking/


摘要

本文将在线MOT问题看成了Markov Decision Processes中的决策问题,将一个目标的一生(从出现到消失)建模成MDP,将数据关联中的学习相似性函数看作是MDP中的学习policy,然后在增强型学习的方式下,policy的学习就接近于数据关联中offline学习和online学习的共同优点。另外,本文还将目标的出现和消失看作是MDP中的状态转移,然后使用现有的单目标跟踪方法来处理这类问题。



Markov Decision Process

MDP由这样一个元组(S,A,T(·),R(·))组成,其中:

——S(Status)表示目标的状态集

——A(Action)表示目标可采取的动作

——T(·)(Transition)表示状态转移函数,即S * A -> S,用来描述各状态进行各动作后的影响

——R(·)(real-valued reward)表示回馈函数,即S * A -> R,用来描述状态转移后的即时回馈

ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记



Policy

在MDP中,Policy就是从状态集S到动作集A的一种映射关系,具体来说就是,给定一个状态,根据policy来分配该状态应该采取的动作,也就是所谓的decision making。而学习Policy的目的就在于得到一个policy,使得所有回馈函数得到的回馈值最大。



Active状态下的policy

特征选择:5维特征向量((x,y)坐标,(w,h)宽高,score检测的分数)

分类器选择:SVM

回馈函数公式:ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记,其中(wActive,bActive)定义了SVM的hyperplane,y(a)=+1时选择动作a1,y(a)=-1时选择动作a2

注意:来自检测器的错检在该阶段不会被检测出来,而是交到了tracked状态。



Tracked状态下的policy

模型表示:每当有检测传送过来时,都将该检测包含的检测框作为目标初始的跟踪框。

模型跟踪:a)使用TLD中的Median-Flow追踪算法,预测下一帧目标出现的位置,再根据正反向连续性得到FB误差,将一个目标内所有点得到的FB误差的中值作为参考指标之一;

b)然而本文又提出仅靠光流法进行跟踪是不稳定的,因为可能会收到错检目标(active阶段传来),所以引入一个新机制:当跟踪目标和检测目标有一段时间的不匹配,那么就认为它是错检的。那么如何判断是否不匹配呢?本文提出保留跟踪目标的一段历史(过去K帧的跟踪框,K是需要调节的参数),然后将这些历史跟踪框与当时对应的检测框进行overlap比较,将得到的overlap的均值作为另一参考指标之一。

c)根据上述指标,可以得到如下回馈函数ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记,其中e0,o0分别是FB误差中值阈值和overlap均值阈值,当y(a)=+1时选择动作a3,当y(a)=-1时选择动作a4。

模型更新:为了避免积累误差产生漂移,我们采取“懒惰”更新的规则。当目标正在被跟踪的时候保持现在的模型不变,但是需要记录最新的K个模板,也就是跟踪中提到的“历史”,当目标丢失后再重新出现时,可以根据这K个模板进行数据关联,找到最接近目标的那个模板作为新模板,这样就减少了ID Swithes。



Lost状态下的policy

回顾图2可知,从lost状态只能转移到inactive,tracked和lost自己三种状态,其中转移到inactive的条件是保持lost状态超过一定阈值帧数即可,而从Lost转移到tracked状态就相对复杂,需要将目标与检测器传来的其中一个检测框连接才可以。

数据关联:本阶段的目标是判断丢失的目标是否能与某一检测目标相连接,因此考虑使用线性分类器,根据检测目标与丢失目标之间的相似性特征向量φ(t,d),对每一对进行分类,回馈函数如下:ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记,其中当y(a)=+1时选择动作a6,当y(a)=-1时选择动作a5,本阶段policy学习的目的在于得到参数(w,b)(因为现在是训练阶段,所以需要得到分类器的参数,用于测试数据中)。


增强型学习:ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记,其中ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记,k=1,...,M是松弛变量,C是正则化参数。

ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记


Algorithm 1的一个特点是一旦学习到错误例子时,将错误例子放进待重新学习的集合中,并将例子的正确标签重新贴上。如何判断是否学到了错误例子?与ground truth作对比,当数据关联产生错误时,将正确的关联目标替换进去,再重新学习。


在Lost阶段,当(当前目标和检测目标)特征采取的action与(当前目标和gt)特征采取的action不同时,需要将由(当前目标和gt)特征得到的正确标签与(当前目标和检测目标)特征一起代入Eq(4)重新训练分类器参数。但我存在一个疑问:为什么这时训练完参数后还要break出去,而不直接用(当前目标和gt)特征采取的action进入正确的state,然后继续检查当前目标的下一帧?如果break出去的话,那么下一次循环遍历到当前目标时又要从它的第一帧开始,这样时间复杂度应该会高很多。反正都已经重新训练好分类器参数了,何不一次性过完呢?


ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记



Multi-Object Tracking with MDPs

ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记



实验分析

a)K越大,跟踪效果越好,但时间、内存消耗都增大;

b)检验各组成部分对整个模型的影响:ICCV 2015 Learning to Track: Online Multi-Object Tracking by Decision Making 阅读笔记

  1. 禁用动作a3(禁用tracked状态的自循环),使得tracking模型没有用,所有tracked状态会自动转到lost状态中,然而这对整体跟踪效果影响不大,原因是在lost状态中的数据关联可以自动与检测目标连接上,直观上理解就是将会导致一个目标在tracked状态和lost状态中来回转换。但是,当错检被传入tracked状态时,tracking模型的禁用导致了不能对目标的跟踪框进行修正,这样就会直接失去目标。
  2. 禁用动作a6(禁用从lost状态转移到tracked状态),会使lost中的数据关联失效,导致IDS次数是完整模型的三倍。
  3. 分别禁用以上四个特征,图4也证明了这4个特征各有作用,其中distance特征影响最大。另外,overlap和检测分数对模型跟踪效果几乎没有影响。
c)由于本文使用的特征都是数据关联中的相似性度量特征,因此可以被泛化使用到各个方面、场景的跟踪中,并不针对特定场景使用。