多目标跟踪概述(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xiaowan777/article/details/89469619

       多目标跟踪(Multiple Object Tracking or Multiple Target Tracking, MOT or MTT)主要任务是在给定一个图像序列中同时对多个感兴趣的目标进行定位,并维持他们的ID,最后给出不同目标的运动轨迹。这些目标是任意的,如行人、车辆、动物等。目前研究最多的是行人跟踪。因为首先 “行人”是典型的非刚体目标,相对于刚体目标难度更大,其次在实际应用中行人的检测跟踪更有商业价值。当前在计算所做的也是针对行人的多目标跟踪项目。

       说了这么多,先上一段视频,有图有真相!视频30秒 https://motchallenge.net/vis/MOT16-01/HDTR_16  


目录

一. 目标跟踪

二. 多目标跟踪方法分类    

三 .多目标跟踪算法

   1.基于目标检测的多目标跟踪算法

   2.基于轨迹预测的跟踪算法

   3.基于目标特征建模的跟踪算法


 

一. 目标跟踪

       在AI 计算机视觉的三层结构中,目标跟踪属于中间层,是其他高层任务(如动作识别,行为分析)的基础。目标跟踪的主要应用包括:

  1.  视频监控。检测异常行为,维护社会治安,保障人民的生命财产安全。(最近写毕设论文,官话一大堆)  
  2. 人机交互。对于复杂场景中目标交互的识别与处理。
  3. 虚拟现实和增强现实。比如游戏中角色运动的设置等。
  4. 医学图像。 

       目标跟踪包括单目标跟踪和多目标跟踪。单目标跟踪了解的不多,只读过一两篇相关的论文。大致是通过目标的表观建模或者运动建模,来处理光照、形变、遮挡等问题。而多目标跟踪问题要复杂的多,除了上述单目标跟踪遇到的问题外,还需要目标间的关联匹配。同时,还有目标的频繁遮挡、目标太小、表观相似、轨迹开始终止时刻未知等等问题。所以MOT 研究更加棘手。

 

二. 多目标跟踪方法分类    

  1.  按照跟踪目标初始化方式分类:DBT(检测目标需要训练检测器)和DFT(第一帧初始化目标)。
  2.  处理模式:Offline跟踪和Online跟踪。(区别是否用到后面几帧的检测目标的结果)。

     下面结合具体图例说明:

      

       DBT(Detection Based  Tracking)(如上图左层所示)是指在跟踪之前每一幅图像中的目标信息都事先经过检测算法得到。它首先检测目标,然后链接到已有的轨迹中。这种策略也通常被称为“tracking -by- detection”。跟踪目标的数量,跟踪目标的类型全部由检测算法的结果来决定,无法预知。也就是说MOT过程包含一个独立的detection 过程。这种方法性能比较依赖于检测算法的好坏。

       DFT(Detection Free Tracking )(如上图右层所示)需要人工标定第一帧图像中的目标,之后边检测边跟踪目标。DBT 和DFT相比较,DBT使用的更多。原因在于DFT 目标需要人工标定,对于非第一帧出现的目标或者中间帧消失的目标没办法处理。

       一般而言,online tracking更适用于实际情况,即视频一般时序列化得到,用到的是直到当前帧的前面所有帧的信息。但是offine tracking 因为是通过提前获取视频中所有帧的观测目标,经分析计算组成最后的输出,所以更可能得到全局最优解。考虑到计算复杂度和内存限制,现在许多方法采用的是在较小的时间片段内使用offine tracking 的方法进行折衷。

泛化的多目标跟踪。一般DBT方法要求预训练检测器,这就导致跟踪目标的类型是确定的。最近也有研究针对任意类型目标的多目标跟踪方法,比如在前几帧检测出了该目标类型类似的所有目标,使用这些目标训练分类器,后续类似于DBT过程。这样多目标跟踪方法就可以针对不同的视频数据进行处理了。

三 .多目标跟踪算法

     在设计MOT算法的时候只需要考虑两个问题:

  • 怎样判断帧内目标的相似性。
  • 基于相似性怎样判断帧间目标是否相同。     

     前者主要包括外观特征,运动特征和形状特征的建模问题,后者主要和数据关联有关。

1.基于目标检测的多目标跟踪算法

    1.1 跟踪流程

    1)在上一帧中的N个目标轨迹中找到了本次检测到的目标,说明正常跟踪到了;

    2)在上一帧中的N个目标轨迹中没有找到本次检测到的目标,说明这个目标是这一帧中新出现的,所以需要记录保存下来,用于下一帧的跟踪关联;

    3)在上一帧中存在某个目标,但这一帧并没有与之关联的目标。说明该目标可能从视野中已消失,需要将其移除。(注意这里的可能,是因为有可能由于检测误差或者目标被遮挡,导致在这一帧中该目标并没有被检测到)

   

      1.2 处理流程

       跟踪目标,先要将视频中的目标检测出来,这一步成为“目标检测”。然后根据检测得到的结果,将每帧中的目标关联起来。目标检测算法有很多,如Fast R-CNN,SSD和YOLO等。

  

       1.3 数据关联方式

        1)通过计算两帧中两个目标间的距离,认为距离最短的就是同一个目标。

        2)加上判断条件如IoU,当IoU超过一定的阈值就说明是同一个目标。

        这种方式优点是简单,匹配速度快,缺点也显而易见,当遇见目标被遮挡、目标过于密集、视频跳帧太大等情况时,跟踪就会失败。

       1.4 存在的问题

        

       当物体运动的速度比较慢,两个目标的前后帧距离相隔很小,很容易造成误判。如上图,上一帧A目标的轨迹连接到了B目标,B目标轨迹线丢失。

 

 

2.基于轨迹预测的跟踪算法

       先预测目标的下一帧会出现的位置,然后让真实的检测结果与预测的位置进行对比关联。这样的话,只要预测足够准确,几乎不会出现前面提到的由于速度太快而存在的误差。

    2.1 跟踪预测方法

  • 卡尔曼滤波
  • 粒子滤波
  • 均值漂移算法

   2.2 数据关联算法

  • 多假设跟踪方法
  • 关联滤波器方法
  • 匈牙利算法
  • 马尔可夫链蒙特卡罗方法
  • 贪婪关联算法

3.基于目标特征建模的跟踪算法

       该方法引入cnn卷积神经网络,表观特征提取模型。对每个检测到的目标,先利用卷积神经网络提取表观特征(可以理解为该目标的一种特征编码),然后计算每个目标特征之间的余弦距离。存在问题准确率会大幅提高,但耗时增多。

         

          执行流程: 

   

猜你喜欢

转载自blog.csdn.net/xiaowan777/article/details/89469619
今日推荐