zoukankan      html  css  js  c++  java
  • 多目标跟踪 综述(一)

    多目标跟踪 综述(一)

    多目标跟踪,即Multiple Object Tracking(MOT),也称为Multiple Target Tracking(MTT)。其主要任务是给定一个图像序列,找到图像序列中运动的物体,并将不同帧中的运动物体一一对应(Identity),然后给出不同物体的运动轨迹。这些物体可以是任意的,如行人、车辆、运动员、各种动物等等,而研究最多的是“行人跟踪”。这是因为首先“行人”是典型的非刚体目标,相对于刚体目标难度更大,其次在实际应用中行人的检测跟踪更具有商业价值。 据不完全统计,至少的多目标跟踪研究是在研究行人跟踪。

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

    1. 视频监控。检测异常行为,节省大量的人力物力。

    2. 人机交互。对于复杂场景中目标交互的识别与处理。

    3. 虚拟现实和增强现实。比如游戏中角色运动的设置等。

    4. 医学图像。

    目标跟踪又包括单目标跟踪和多目标跟踪。单目标跟踪可以通过目标的表观建模或者运动建模,以处理光照、形变、遮挡等问题,而多目标跟踪问题就要复杂得多,除了单目标跟踪回遇到的问题外,还需要目标间的关联匹配。另外在多目标跟踪任务中经常会碰到 目标的频繁遮挡、轨迹开始终止时刻未知、目标太小、表观相似、目标间交互、低帧率等等问题。所以MOT问题更加棘手。

    在介绍MOT问题solutions的一般思路之前,先了解一些术语。

    目标 在一幅图像中,明显区别于周围环境的闭合区域往往被称为目标,当然这些目标最好具有一定的物理意义。
    检测 给出目标在图像中的位置的过程称为检测。检测方法很多,比如模板匹配,对于视频中运动目标检测,可以通过帧间差分法、背景减除法、光流法等等实现。
    跟踪 在连续图像序列中完成对目标的检测,并把物理意义下的同一目标相关联的过程。
    检测响应也称为“检测假设”、“检测观测量”。(detection response,detection hypotheses,detection observations)。是检测过程的输出量。
    轨迹(Trajectory)MOT系统的输出量,一条轨迹对应这一个目标在一个时间段内中的位置序列。
    小段轨迹(Tracklet)。 形成Trajectory过程中的轨迹片段。完整的Trajectory是由属于同一物理目标的Tracklets构成的。
    数据关联 数据关联是多目标跟踪任务中经常使用的典型的处理方法,用于解决目标间的匹配问题,这里的目标可以是detection responses,也可以是tracklets。
    注: 所谓的“物理目标”,就是具有相同物理意义的目标,比如两幅图像都出现了“张三”、“李四”,那么两个“张三”就是同一物理目标,虽然有可能两幅图像中“张三”的形状、表观都发生了很大的变化。

    enter description here

    符号定义.jpg

    MTT的形式化表达

    给定图像序列,每幅图像中目标的个数为,每个目标的状态使用表示,这里的状态可以有位置、大小、速度、表观等组成,那么每幅图像中所有目标状态表示为,对应的第i个目标的trajectory表示为,所有图像中目标组成的状态序列为

    对于detection observations可以对应使用表示。

    那么MTT任务,即根据detection responses找出目标的trajectory(S_{1:t}),可以formulated as

    即后验概率问题。

    这个形式有两种实现方法:probabilistic inference 和 deterministic optimization。

    其中probabilistic方法适合online tracking,每一幅图像的处理仅和之前的结果有关,类似于Hidden Markov Model,操作分为两个步骤:预测和更新

    预测:
    更新:

    这类方法有粒子滤波(Praticle Filter)、蒙特卡洛模拟退火(MCMC)等。

    另一个deterministic optimization则是利用了当前帧的前后帧信息进行最优化求解,可以通过直接优化替代原问题,也可以通过直接求解相关的能量函数求解。

    具体的方法包括二分图匹配、动态规划、最小流最大割方法和最大权重独立集等方法。

    MTT方法的分类

    MTT方法的分类方法有很多,不同的分类角度对应着不同的分类结果。

    1. 初始化的角度
      主要强调的是目标式如何获得的,可以分为Detection Based Tracking (DBT) 和Detection Free Tracking (DFT)。如下图

    enter description here

    1477811647620.jpg

    DBT是指在跟踪之前每一幅图像中目标都是detected,也就是说MOT过程包含一个独立的detection过程。这种方法性能比较依赖于detectors的好坏。
    DFT需要人工标定第一帧图像中的目标,之后的过程中边检测目标边跟踪目标。

    DFT和DBT相比较,DBT使用的更多。主要原因在于DFT需要人工标定目标,对于非第一帧出现的目标或者中间帧消失的目标没办法处理。而DFT相对于DBT的有点在于对目标类型事先要求不高,由人工指定,而DBT的目标类型则由分类器决定。

    1. 处理过程的角度
      数据的处理方式可以分为Online tracking和offline tracking。如下图示意

    enter description here

    1477812160768.jpg

    一般而言 online tracking更适用于实际情况,即视频一般时序列化得到。但是offline tracking更可能得到全局最优解。所以许多方法采用的是在较小的时间片段内使用offline tracking的方法进行折衷。

    1. 数学的角度
      即前面提到的probability inference和deteministic optimization。

    总结:起始可以发现不同的分类之间是存在交叉的,比如DFT就是online tracking的过程。当然DBT也存在online tracking方式,比如两帧关联。另外,实际应用中,一般大多数online tracking方法都是probability inference方法,而deterministinc optimization对应着offline tracking。

    1. 应用的角度
      a. 运动场景中,比如运动员的检测跟踪。这个应用中难点体现在数据上,拍摄的图像存在这各种角度、尺寸的变换,而且,同一队伍的运动员因为衣服相同,导致表观难以区分。 但赛场和背景也存在着显著的边界特性以及不同队伍间表观已区分性也为跟踪带来了有用的信息。
      b. 航拍场景中, 主要难点在于:目标太小,帧率太低,目标分布密度太大。这类问题处理时一般context、velocity等提供的信息比较多。

    泛化的MTT,一般DBT方法要求预先训练好的detector,这就导致跟踪目标的类型时确定的。而最近有学者研究针对于任意类型目标的MTT方法,比如在第一帧中人工标定一个目标,然后在前几帧中检测出了该目标类似的所有目标,使用这些目标训练分类器,后续类似于DBT过程,这样MTT方法就可以针对于不同的视频数据处理了。

  • 相关阅读:
    net.sf.json.JSONException: There is a cycle in the hierarchy!
    数据源的配置
    java枚举使用详解
    hibernate级联保存,更新个人遇到的问题
    NonUniqueObjectException 问题
    No.2 dotnetcore&docker--数据库等在Docker上的配置
    No.1 dotnetcore&docker--环境搭建
    No.5 dotnetcore&docker--采用Ambry做文件服务器
    No.3 dotnetcore&docker--搭建一个nuget服务器
    关于APM数据采集实例以及Eureka整合的一个想法
  • 原文地址:https://www.cnblogs.com/YiXiaoZhou/p/6013360.html
Copyright © 2011-2022 走看看