对于TLD中的Tracking,作者主要使用的是他提出的Forward-Backward Error 的办法,使用 Lucas-Kanade 光流法跟踪,对跟踪的结果,用Forward-Backward Error做反馈,求 Forward-Backward (FB) Error 的结果与原始位置的 欧式距离 ,把距离过大的跟踪结果舍弃,他把这种利用Forward-Backward (FB) Error 舍弃坏值的跟踪方法叫做 Median Flow ,是把欧式距离集合中较大的50%的那些跟踪结果舍弃。
接下来谈谈,这个Forward-Backward (FB) Error 到底是怎么计算的,首先这里必须要有个前提,就是前后一致性假设。原文是The proposed method is based on so called forward- backward consistency assumption that correct tracking should be independent of the direction of time-flow,即正确的追踪是不依赖与时间流的方向的。
下面结合图像说明该Error的原理:
这张图就能非常好的表明 Forward-Backward (FB) Error 是怎么计算的,上 描述了在两幅图像(基本轨迹)中追踪点的方法。点1在两幅图像中都是可见的,追踪器能够正确定位其位置。向前和向后追踪为相同的轨迹。但是,点2在右边图像中是不可见的,追踪器定位到了另外一个位置。向前和向后追踪定位了与原始图形中不同的位置。上图中下部分的红色部分d就是本文的Forward-Backward (FB) Error,下面看看作者是怎么定义的:
如上图(下面部分)所示。S表示图像序列(It ,It+1 …, It+k ),xt 表示时间t时的点的位置。使用任一探测器,向前探测该点k布,得到轨迹Tf k =(xt , xt+1 。。。 xt+k ),其中f表示向前探测,k表示长度。给定图像序列S,估算轨迹Tf k 的误差(可靠性)。为此,首先构造一个验证轨迹,定义为由点xt+k 从最后一帧图像 反向追踪到第一幅图像,得到Tf k =( ^ xt , ^ xt+1 。。。 ^ xt+k ),其中xt+k = ^ x t+k ,换句话说就是追踪的都是选取的目标点 。 Forward-Backward Error定义为这两个轨迹之间的距离:FB(T f k |S)=distance(T f k , T b k )。轨迹之间的比较可以使用多种距离。简单起见,使用验证轨迹的初始点与终点之间的欧式距离,distance(T f k , T b k )=||x t - ^ x t ||。
这里说明下,就是上图中小图(1)中,对于特征点1,它的Forward-Backward (FB) Error(1)=distance(①-1'),由于1点是可跟踪的点,由图就可以很明显的看到distance(①-1')=0,而对于特征点2,它的Forward-Backward (FB) Error(2)=distance(②-2'),由图这很明显的看到其距离distance(②-2')是很大的,远远大于0,这是因为点2被遮挡了,t+k时刻该特征点被遮挡,检测时发生了偏移。