继续喷TLD

来源:互联网 发布:php考试编程题及答案 编辑:程序博客网 时间:2024/04/30 18:30

  视频目标跟踪来说,常用的方法有两种:

一是使用根据物体在上一帧的位置预测它在下一帧的位置,即基于运动估计的视频跟踪,常见的有kalman滤波跟踪,UKF以及一次改进的一些列算法;还有基于特征点匹配的跟踪,通过特征点的匹配来预测下一帧目标的位置,最典型的就是光流法.这些个跟踪算法会积累误差,缺乏记忆功能,一旦物体在图像中消失,跟踪就会永久失效,即使物体再出现也无法完成追踪;

另一种方法是使用检测器,对每一帧单独处理检测物体的位置,但这又需要提前对检测器离线训练,只能用来追踪事先已知的物体。这就是常说的Tracking By detection,有几个在线学习的跟踪算法就是online adaboost.以及其一些列,在线学习的算法首先也要训练一个简单的模型,其主要在预测的过程中学习,简答的说就是在tracking的时候,observation model这一块是用一个在线训练的分类器.。这种方法有一个很大的缺点就是效率低下,很难满足实时性的需求.

讲到这里,就可能会想到,如果把跟踪和检测结合起来是不是就能由以上两点的优势了哪.

然后我们说说TLD,如名字一样,正如名字所示,TLD算法主要由三个模块构成(tracker)(detector)和(learning)。

tracker的作用是跟踪连续帧间的运动,当物体始终可见时跟踪器才会有效。跟踪器根据物体在前一帧已知的位置估计在当前帧的位置,这样就会产生一条物体运动的轨迹,从这条轨迹可以为学习模块产生正样本(Tracking->Learning)。在轨迹线附近取正样本.

Detector的作用是估计tracker的误差,如果误差很大就改正tracker的结果。检测器对每一帧图像都做全面的扫描,找到与目标物体相似的所有外观的位置,从检测产生的结果中产生正样本和负样本,交给学习模块(Detection->Learning)。最终从所有正样本中选出一个最可信的位置作为这一帧TLD的输出结果,然后用这个结果更新追踪器的起始位置。

 学习模块---根据追踪器和检测器产生的正负样本,迭代训练分类器,改善检测器的精度(Learning->Detection),也就是P-N学习。


PN学习即PN learning, P指代Positive Constraint,也称之为P-expert或者growing event,N指代Negative Constraint,也称之为N-expert或者pruning event

P-expert的作用可以说是修正目标的生成模型,即发现目标的新的外观(形变)变化,并以此来增加正样本的数量,从而使得检测模块更具鲁棒性;

N-expert的作用是生成负的训练样本。N-expert的前提假设是,(被跟踪的)前景目标仅可能出现在视频帧中的一个位置,因此,如果前景目标的位置是确定的,那么其周围必然是负样例。

  作者认为,算法的结果应该具有“结构性”(constrictant):每一帧图像内物体最多只出现在一个位置;相邻帧间物体的运动是连续的,连续帧的位置可以构成一条较平滑的轨迹。而且连续帧的结果构成了一条平滑的轨迹,还应该注意在整个追踪过程中,轨迹可能是分段的,因为物体有可能中途消失,之后再度出现。

       TLD模块中的PN学习作用是通过对视频序列的在线处理来逐步改善检测模块(TLD中的Detection)的性能。对视频中的每一帧而言,我们希望评估检测模块在当前帧中的误检,并以此来更新目标模型,从而使得在以后的视频帧处理过程中避免类似的错误再次发生。

PN学习的关键在于两种类型的“专家(experts)”:

P-experts检查那些被检测模块错误分类为正样本(前景目标)的数据;

N-experts检查哪些被检测模块错误分类为负样本(背景)的数据;需要提醒的是,无论P-experts还是N-experts都会产生一定的偏差。那么,如果用这些存在偏差的数据来更新检测模块(目标模型),是否会造成检测模型的性能恶化呢?作者经过研究发现,尽管存在误差,在一定条件下,误差是允许的,并且检测模块的性能会因此得到改善。

        PN学习包含四个部分:

                       (1)一个待学习的分类器;

                       (2)训练样本集--一些已知类别标签的样本;

                       (3)监督学习--一种从训练样本集中训练分类器的方法;

                      (4P-N experts--在学习过程中用于产生正(训练)样本和负(训练)样本的表达函数;这四个部分之间的关系如下图所示:


        首先根据一些已有类别标记的样本,借助监督学习方法来训练,从而得到一个初始分类器。之后,通过迭代学习,利用上一次迭代得到的分类器对所有的未赋予标签的样本数据进行分类,而P-N experts则找出那些错误分类的样本,并依此来对训练样本集做出修正,使得下一次迭代训练之后得到的分类器的性能有所改善。

        P-N学习最关键的要素是它能评估分类器误差.主要idea就是将错误的正样本与错误的负样本挑出来分开. P-export分析被分为负样本的样本,评估这些样本,找出错误的负样本,将他们已正样本的标签添加都训练集中(纠错了),N-export则分析被分为正样本的样本,找出错误的正样本(其实应该为负样本)的样本放到训练集的负样本集合中.这样,在第k次迭代中,P-export纠正n(k)个正样本送给训练集,N-export纠正m(k)个负样本送给训练集.然后以这些样本在第k+1次训练时使用.

看看论文中的一个图例

        上图所示为三个连续的视频帧,PN学习需要处理的是t时刻那个黄色框所在区域的那个小车。跟踪模块在相邻帧之间给出小车的位置,从前面的分析我们知道,跟踪模块给出的区域可以被P-experts用来产生正的训练样本;但由于遮挡,在t+2时刻,P-experts产生了错误的正(训练)样本;与此同时,N-experts则找出目标最可能出现的位置(用红色的星号来标记),并且将所有其他的区域标记为负的训练样本;这里,N-expertst+2时刻很好的修正了P-experts的错误;  

P-experts将那些被分类器标记为负样本,但根据结构性约束条件应该为正样本的那些样本赋予“正”的标签,并添加到训练样本集中;而N-experts则将那些被分类器标记为正样本,但根据结构性约束条件应该为负样本的那些样本赋予“负”的标签,并添加到训练样本集当中;这也就意味着,P-experts增加了分类器的鲁棒性,而N-experts则增加了分类器的判别能力。

       下面我们就举例来说明PN学习的运行机制:假设存在三个连续的视频帧如下所示,每个视频帧之上都有若干个扫描窗口如(a)所示;


每一个扫描窗口就表示一个图像片(image patch),图像片的类别标签用(b)(c)中的彩色圆点来表示。检测模块对每个图像片的类别赋值过程是彼此独立的,因此,N个扫描窗口就存在个类别标签的组合。而(b)则显示了其中一种可能的类别标签形式,这种类别标签标明,待检测目标在一个视频帧中可能同时出现在好几个区域,并且,待检测目标在相邻视频帧之间的运动没有连续性(例如(b)中最前面的图像中右上角的红色圆点在后面的两个图像中均没有出现),显然,这种类别标签形式是错误的。相反,(c)所示的类别标签形式则显示,每个视频帧中,目标只可能出现在一个区域,并且,相邻视频帧之间检测到的目标区域是连续了,构成了一个目标的运动轨迹。这种性质,我们称之为“结构性”的。PN学习的关键就是找到这种结构性的数据,从而来判别检测模块所产生的错误标签;

      刚才的例子表明:P-experts寻找视频序列中的时域上的结构性特征,并且假设目标是沿着轨迹线移动的,即,相邻帧之间的移动很小,且存在一定的相关性。P-experts记录目标在上一帧中的位置,并根据帧与帧之间的跟踪算法(这里采用的是LK光流法)来预测目标在当前帧中的位置。如果检测模块将跟踪算法预测到的目标在当前帧中的位置标记为负标签,那么P-experts就产生一个正的训练样本;

       N-experts寻找视频序列中的空间域上的结构性特征,并且假设目标在一个视频帧中只可能出现在一个位置。N-experts对检测模块在当前帧中的所有输出结果以及跟踪模块的输出结果进行分析,并找到具有最大可能性的那个区域。当前帧中所有目标可能出现的区域当中,如果某个区域同最大可能性区域之间没有重叠,就将其认定为负样本。另外,具有最大可能性的那个区域,被用于重新初始化跟踪模块;


英语水平有限,如果想知道更详细的,可以看参考文献的第一篇论文.



参考文献:

1. Tracking-Learning-Detection, Zdenek Kalal, Krystian Mikolajczyk, and Jiri Matas, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010

2. Forward-Backward Error: Automatic Detection of Tracking Failures, Zdenek Kalal, Krystian Mikolajczyk, and Jiri Matas, International Conference on Pattern Recognition, 2010

3. Tracking-Learning-Detection Documentation

4. Decision Trees, Random Forests and Random Ferns

5. Random Forests and Ferns

  视频目标跟踪来说,常用的方法有两种:

一是使用根据物体在上一帧的位置预测它在下一帧的位置,即基于运动估计的视频跟踪,常见的有kalman滤波跟踪,UKF以及一次改进的一些列算法;还有基于特征点匹配的跟踪,通过特征点的匹配来预测下一帧目标的位置,最典型的就是光流法.这些个跟踪算法会积累误差,缺乏记忆功能,一旦物体在图像中消失,跟踪就会永久失效,即使物体再出现也无法完成追踪;

另一种方法是使用检测器,对每一帧单独处理检测物体的位置,但这又需要提前对检测器离线训练,只能用来追踪事先已知的物体。这就是常说的Tracking By detection,有几个在线学习的跟踪算法就是online adaboost.以及其一些列,在线学习的算法首先也要训练一个简单的模型,其主要在预测的过程中学习,简答的说就是在tracking的时候,observation model这一块是用一个在线训练的分类器.。这种方法有一个很大的缺点就是效率低下,很难满足实时性的需求.

讲到这里,就可能会想到,如果把跟踪和检测结合起来是不是就能由以上两点的优势了哪.

然后我们说说TLD,如名字一样,正如名字所示,TLD算法主要由三个模块构成(tracker)(detector)和(learning)。

tracker的作用是跟踪连续帧间的运动,当物体始终可见时跟踪器才会有效。跟踪器根据物体在前一帧已知的位置估计在当前帧的位置,这样就会产生一条物体运动的轨迹,从这条轨迹可以为学习模块产生正样本(Tracking->Learning)。在轨迹线附近取正样本.

Detector的作用是估计tracker的误差,如果误差很大就改正tracker的结果。检测器对每一帧图像都做全面的扫描,找到与目标物体相似的所有外观的位置,从检测产生的结果中产生正样本和负样本,交给学习模块(Detection->Learning)。最终从所有正样本中选出一个最可信的位置作为这一帧TLD的输出结果,然后用这个结果更新追踪器的起始位置。

 学习模块---根据追踪器和检测器产生的正负样本,迭代训练分类器,改善检测器的精度(Learning->Detection),也就是P-N学习。


PN学习即PN learning, P指代Positive Constraint,也称之为P-expert或者growing event,N指代Negative Constraint,也称之为N-expert或者pruning event

P-expert的作用可以说是修正目标的生成模型,即发现目标的新的外观(形变)变化,并以此来增加正样本的数量,从而使得检测模块更具鲁棒性;

N-expert的作用是生成负的训练样本。N-expert的前提假设是,(被跟踪的)前景目标仅可能出现在视频帧中的一个位置,因此,如果前景目标的位置是确定的,那么其周围必然是负样例。

  作者认为,算法的结果应该具有“结构性”(constrictant):每一帧图像内物体最多只出现在一个位置;相邻帧间物体的运动是连续的,连续帧的位置可以构成一条较平滑的轨迹。而且连续帧的结果构成了一条平滑的轨迹,还应该注意在整个追踪过程中,轨迹可能是分段的,因为物体有可能中途消失,之后再度出现。

       TLD模块中的PN学习作用是通过对视频序列的在线处理来逐步改善检测模块(TLD中的Detection)的性能。对视频中的每一帧而言,我们希望评估检测模块在当前帧中的误检,并以此来更新目标模型,从而使得在以后的视频帧处理过程中避免类似的错误再次发生。

PN学习的关键在于两种类型的“专家(experts)”:

P-experts检查那些被检测模块错误分类为正样本(前景目标)的数据;

N-experts检查哪些被检测模块错误分类为负样本(背景)的数据;需要提醒的是,无论P-experts还是N-experts都会产生一定的偏差。那么,如果用这些存在偏差的数据来更新检测模块(目标模型),是否会造成检测模型的性能恶化呢?作者经过研究发现,尽管存在误差,在一定条件下,误差是允许的,并且检测模块的性能会因此得到改善。

        PN学习包含四个部分:

                       (1)一个待学习的分类器;

                       (2)训练样本集--一些已知类别标签的样本;

                       (3)监督学习--一种从训练样本集中训练分类器的方法;

                      (4P-N experts--在学习过程中用于产生正(训练)样本和负(训练)样本的表达函数;这四个部分之间的关系如下图所示:


        首先根据一些已有类别标记的样本,借助监督学习方法来训练,从而得到一个初始分类器。之后,通过迭代学习,利用上一次迭代得到的分类器对所有的未赋予标签的样本数据进行分类,而P-N experts则找出那些错误分类的样本,并依此来对训练样本集做出修正,使得下一次迭代训练之后得到的分类器的性能有所改善。

        P-N学习最关键的要素是它能评估分类器误差.主要idea就是将错误的正样本与错误的负样本挑出来分开. P-export分析被分为负样本的样本,评估这些样本,找出错误的负样本,将他们已正样本的标签添加都训练集中(纠错了),N-export则分析被分为正样本的样本,找出错误的正样本(其实应该为负样本)的样本放到训练集的负样本集合中.这样,在第k次迭代中,P-export纠正n(k)个正样本送给训练集,N-export纠正m(k)个负样本送给训练集.然后以这些样本在第k+1次训练时使用.

看看论文中的一个图例

        上图所示为三个连续的视频帧,PN学习需要处理的是t时刻那个黄色框所在区域的那个小车。跟踪模块在相邻帧之间给出小车的位置,从前面的分析我们知道,跟踪模块给出的区域可以被P-experts用来产生正的训练样本;但由于遮挡,在t+2时刻,P-experts产生了错误的正(训练)样本;与此同时,N-experts则找出目标最可能出现的位置(用红色的星号来标记),并且将所有其他的区域标记为负的训练样本;这里,N-expertst+2时刻很好的修正了P-experts的错误;  

P-experts将那些被分类器标记为负样本,但根据结构性约束条件应该为正样本的那些样本赋予“正”的标签,并添加到训练样本集中;而N-experts则将那些被分类器标记为正样本,但根据结构性约束条件应该为负样本的那些样本赋予“负”的标签,并添加到训练样本集当中;这也就意味着,P-experts增加了分类器的鲁棒性,而N-experts则增加了分类器的判别能力。

       下面我们就举例来说明PN学习的运行机制:假设存在三个连续的视频帧如下所示,每个视频帧之上都有若干个扫描窗口如(a)所示;


每一个扫描窗口就表示一个图像片(image patch),图像片的类别标签用(b)(c)中的彩色圆点来表示。检测模块对每个图像片的类别赋值过程是彼此独立的,因此,N个扫描窗口就存在个类别标签的组合。而(b)则显示了其中一种可能的类别标签形式,这种类别标签标明,待检测目标在一个视频帧中可能同时出现在好几个区域,并且,待检测目标在相邻视频帧之间的运动没有连续性(例如(b)中最前面的图像中右上角的红色圆点在后面的两个图像中均没有出现),显然,这种类别标签形式是错误的。相反,(c)所示的类别标签形式则显示,每个视频帧中,目标只可能出现在一个区域,并且,相邻视频帧之间检测到的目标区域是连续了,构成了一个目标的运动轨迹。这种性质,我们称之为“结构性”的。PN学习的关键就是找到这种结构性的数据,从而来判别检测模块所产生的错误标签;

      刚才的例子表明:P-experts寻找视频序列中的时域上的结构性特征,并且假设目标是沿着轨迹线移动的,即,相邻帧之间的移动很小,且存在一定的相关性。P-experts记录目标在上一帧中的位置,并根据帧与帧之间的跟踪算法(这里采用的是LK光流法)来预测目标在当前帧中的位置。如果检测模块将跟踪算法预测到的目标在当前帧中的位置标记为负标签,那么P-experts就产生一个正的训练样本;

       N-experts寻找视频序列中的空间域上的结构性特征,并且假设目标在一个视频帧中只可能出现在一个位置。N-experts对检测模块在当前帧中的所有输出结果以及跟踪模块的输出结果进行分析,并找到具有最大可能性的那个区域。当前帧中所有目标可能出现的区域当中,如果某个区域同最大可能性区域之间没有重叠,就将其认定为负样本。另外,具有最大可能性的那个区域,被用于重新初始化跟踪模块;


英语水平有限,如果想知道更详细的,可以看参考文献的第一篇论文.



参考文献:

1. Tracking-Learning-Detection, Zdenek Kalal, Krystian Mikolajczyk, and Jiri Matas, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010

2. Forward-Backward Error: Automatic Detection of Tracking Failures, Zdenek Kalal, Krystian Mikolajczyk, and Jiri Matas, International Conference on Pattern Recognition, 2010

3. Tracking-Learning-Detection Documentation

4. Decision Trees, Random Forests and Random Ferns

5. Random Forests and Ferns

0 0
原创粉丝点击