TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)

时间:2024-04-09 08:57:56

       原文链接:http://blog.csdn.net/wood_water/article/details/9023151

      在上一篇跟踪器与检测器(tracker and detector)中,我们已经详细介绍了TLD中跟踪器与检测器的设计方案,而在具体运行过程中需要对二者进行调和,所谓调和主要指两方面:

1.对二者输出的结果综合考虑,选择最有可能的作为最终的输出。

2.当目标跟踪中断再度出现时重新启动跟踪器;运行过程中对检测器进行更新,以适应目标运行过程中形变差异。

        TLD中的Learning阶段主要思想已均在CVPR2010年的文章P-N Learning: Bootstrapping Binary Classifiers by Structural Constraints中提出。

        TLD中的主体学习方法也是在其上稍作改进而得出。在本篇文章中,笔者将介绍学习阶段的任务及论文中涉及的目标模型(Object Model)与综合子(Integrator)。

本人博客地址:http://blog.csdn.net/outstandinger/article/details/9023151 转载请注明。

一,P-N Learning学习阶段

1.P-N Learning 综述

        正如在TLD前言中所说,在TMD中Modeling即相当于后来提出的P-N Learning方式。P-N Learning 包含两个expert, 即 P-expert 与 N-expert.

        据paper说明,前者作用在于识别missed detections(false negatives),也即寻找正样本;而N-expert 则用于识别false alarms(false positives),也即用于寻找负样本。

        P-N学习的关键点在于利用两种 “expert” 可以对检测子进行修正,两种  “expert” 也可能会出错,但是经CVPR2010的文中证明,只要错误率低于0.5,检测器的性能由于两个  “expert” 相互独立的互补作用,性能将会得到改善。

        具体实现框图如下,

        TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)

       学习的结果即在于利用一个相对较小的标注集和,作为训练集训练初始分类器,对未标记集进行初始分类,然后经P-N expert进行校正分类结果,作为正负样本再次送入训练集,从而实现一个自举(bootstrap)的效果。

2.P-expert 与 N-expert 示意

       P-expert 主要基于时间连续性的考虑,当前帧中目标位置,必然与其前一帧中的位置相近,所有相距甚远的位置均可以标记为负样本。其主要利用逐帧跟踪的结果产生当前物体的位置,如果该位置标记为负样本,则将其更改为正样本,送入训练集。

      N-expert  主要利用空间性的考虑,因为TLD采用的是单目标跟踪策略,所以同一时刻在同一帧中只有一个可能的位置。故N-expert将综合检测器和分类器的结果,输出最可能的位置,与最可能的位置不重合的区域均标记为负样本。同时该位置将重新对跟踪器进行初始化。

      下图即是关于 P-N learning的示例结果。示例中需要跟踪一辆车,在第 t 帧 和 第 t+1帧 该车均被正常输出,P-expert 用于寻找正样本,N-expert 用于寻找负样本,当到第 t+2 帧时,由于遮挡,导致输出错误结果,此时N-expert 确定最大可能的位置即左下角加 * 的作为正样本,其他标记为负样本。

      下图中,黄圈表示 tracker, 红圈表示 detector,黑粗线表示 P-expert,,灰色圈表示 N-expert。右图也是该学习方法的示意图,我们的即在于将位于轨迹上的样本确定出来,其他位置利用时间空间信息排除为负样本。

TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)

3. 学习具体策略与实现

        前述主要是论文中用以说明P-N Learning中的作用优势极其主要运行原理,在本部分将具体介绍其作用。
        P-N Learning 的作用在于协调 跟踪器 与 检测器的输出结果,在初始条件下,对检测器初始化,这部分我们在检测器部分已经介绍。在运行阶段P-expert利用跟踪器结果产生正样本,而 N-expert 利用 检测器 产生负样本, 两种  “expert” 都可能出错,利用两者的互补取得较好的结果。如下图所示:
TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)

4.具体P-N expert实现

        实际中,P-expert对跟踪器结果进行如下筛选,P-expert的整体作用是寻找物体新的正样本,修正detector,就是前面提到的减少漏检。前面提到P-expert采用连续两帧之间的关联性来检测。P-expert 会在获得的轨迹中寻找正样本以更新模型。不过在TLD中这条轨迹是由跟踪器 检测器和结合器共同组合生成的。既可能并不连续,也并不总是正确。所以P-expert要从中寻找可信的部分并用它产生训练样本。在具体执行过程中,作者定义了一个core(如下图 A 所示)。
        core 不是一个固定的结构,而是会逐渐生长的结构。如图所示,这是在特征空间内的表示。红色表示可靠的轨迹,叉号表示轨迹的结束点。core表示在特征空间中度量Sc大于阈值的结果,关于度量Sc请查看下节物体模型所述。
        B)如何区别轨迹是否可信,是否可靠呢?当轨迹进入core后即变为可靠并且一直保持到下次初始化,否则即为不可靠。虚线即表示不可靠。
        C) 表示轨迹在接受可信轨迹后的变化,当一个样本被当做可信样本后就会经过前述处理,寻找距离这个样本最近的10个框对其做幅度扭曲处理等即如ensemble classifier.
TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)
        我们之前提到N-expert主要起到查找虚警的作用。这里将其用来产生负样本的。当然他也会将检测为正样本的样本改为负样本。仍然是前面所提到的假设,在一帧图像中,目标只能出现在一个位置。如果其位置已经确定。那其他部分均应标为负样本。但是如此一来负样本数量会太多。我们只取那些通过方差检测和组合分类器仍然还没有被丢弃的部分加入检测器训练此部分也即我们要提到的目标模型。

5. 学习总结

         此即所谓的P-N Learning 过程,因在两篇文献中均反复申明其作用,故对此做如上解释,希望没有说错。

二,物体模型 

        物体模型(object Model)是一系列正样本及负样本集合的统称,主要用以训练检测器分类器并对其进行参数更新。
        物体模型可以表示为:
                                    TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)
        分别表示m个正样本和n个负样本。具体排序按照加入模型的顺序标注。
        具体计算公式:
        TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)表示与距离最近的负样本之间的距离,其中S表示在上篇中提到的NCC;
        TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)表示与距离最近的正样本之间的距离;
        TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)表示距离前50%个正样本最近的正样本的距离;
        TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)即前述P-expert中产生core时所采用的度量,在0~1之间取值,值越大表明与前50%个正样本越相似;
        TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)此公式用于最近邻分类时的距离度量。
        
        在运行过程中,将会对模型进行更新,将会有新的正负样本加入到 Model中。仅加入最近邻分类器分类结果与 P-N expert 结果不一致的部分。这可以大大减少加入模型中的样本数量。当总体样本达到一定数目后,将对前面的结果进行随机的删除。

三,综合器/结合器

如果跟踪器或者检测器均未输出结果,则表示此时物体是不可见的。否则,综合器将结合二者的结果,输出Sc得分最高的结果。
如下图所示,红点即表示当前物体不可见。
                                              TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)

四,综合框图

                                                     TLD目标跟踪算法详解(二)学习器Learning (跟踪器与检测器的协调与更新)
综上所述,我们即介绍了TLD的各个组成模块,在第一帧时,我们给出目标的位置,由该位置初始化检测器和最初的物体模型,并由该位置开始进行跟踪,跟踪与检测的结果经过 P-N expert 的判决,其结果用以更新物体模型,并对检测器和跟踪器进行相应的更新。综合器结合上述二者的结果,最终输出结果。