7.1 目标追踪

7.1 目标追踪(Object Tracking)概述

学习目标

  • 目标

    • 知道目标追踪的算法类型以及应用

    • 知道目标追踪算法的任务类型以及挑战

  • 应用

目标跟踪是计算机视觉领域的一个重要分支。目前的目标跟踪的通常任务是,在视频的第一帧给定一个目标的矩形框,然后后续这个矩形框紧跟着要跟踪的物体。不过,目标跟踪与计算机视觉中的图像识别,分割,检测是分不开的,通常跟踪是这些分割检测的最后一步。

7.1.1 为什么使用目标追踪(Object Tracking)

传统的基于图片的目标检测方法已经非常成熟,对于视频目标检测来说,如果视频流按帧一张一张使用图片的目标检测算法来处理会出现以下两类问题:

  • 因为视频流的图片信息具有时间和空间相关性,相邻帧之间的特征提取网络会输出有冗余的特征图信息,会造成没必要的计算浪费。

  • 图片的目标检测算法在目标物体运动模糊,拍摄焦距失调,物体部分遮挡,非刚性物体罕见变形姿态的情况下,很难获得较为准确的结果,而这些情况(如下图)在视频的拍摄中情况较为多见。

我们以检测为例,实际检测过程中,外界环境复杂(光照、遮挡等)、相机会抖动等多因素影响,仅依赖检测的结果,检测框是很不稳定的,这里展示仅有检测和追踪的视频结果的对比。

  • 单纯的检测(无追踪)

  • 含追踪效果

可以看到,加入追踪后的检测框极其稳定,输出结果更平滑,几乎不存在抖动,同时还给出了不同物体的label,和同一类型物体的不同的id信息,既对不同物体做了区分,又对同一类型物体做了区分,即实现了多目标追踪

7.1.2 目标追踪介绍

7.1.2.1 定义

视觉目标(单目标)跟踪任务就是在给定某视频序列初始帧的目标大小与位置的情况下,预测后续帧中该目标的大小与位置。

  • 输入初始化目标框,在下一帧中产生众多候选框(Motion Model),提取这些候选框的特征(Feature Extractor),然后对这些候选框评分(Observation Model),最后在这些评分中找一个得分最高的候选框作为预测的目标(Prediction A),或者对多个预测值进行融合(Ensemble)得到更优的预测目标。

7.1.2.2 研究内容:

目标跟踪划分为5项主要的研究内容:

7.1 目标追踪_第1张图片

(1)运动模型(Motion Model):如何产生众多的候选样本。

生成候选样本的速度与质量直接决定了跟踪系统表现的优劣。常用的有两种方法:粒子滤波(Particle Filter)和滑动窗口(Sliding Window)。粒子滤波是一种序贯贝叶斯推断方法。通过递归的方式推断目标的隐含状态。而滑动窗口是一种穷举搜索方法,它列出目标附近的所有可能的样本作为候选样本。

(2)特征提取:利用何种特征表示目标。

鉴别性的特征表示是目标跟踪的关键之一。常用的特征被分为两种类型:手工设计的特征(Hand-crafted feature)和深度特征(Deep feature)。常用的手工设计的特征有灰度特征(Gray),方向梯度直方图(HOG),哈尔特征(Haar-like),尺度不变特征(SIFT)等。与人为设计的特征不同,深度特征是通过大量的训练样本学习出来的特征,它比手工设计的特征更具有鉴别性。因此,利用深度特征的跟踪方法通常很轻松就能获得一个不错的效果。

(3)观测模型:如何为众多候选样本进行评分。

大多数的跟踪方法主要集中在这一块的设计上。根据不同的思路,观测模型可分为两类:生成式模型(Generative Model)和判别式模型(Discriminative Model)生成式模型通常寻找与目标模板最相似的候选作为跟踪结果。判别式模型通过训练一个分类器去区分目标与背景,选择置信度最高的候选样本作为预测结果。判别式方法已经成为目标跟踪中的主流方法,因为有大量的机器学习方法可以利用。常用的理论方法包括:逻辑回归,岭回归,支持向量机,多示例学习,相关滤波等。

(4)模型更新:如何更新观测模型使其适应目标的变化。

防止跟踪过程发生漂移,模型更新没有一个统一的标准,通常认为目标的表观连续变化,所以常常会每一帧都更新一次模型。但也有人认为目标过去的表观对跟踪很重要,连续更新可能会丢失过去的表观信息,引入过多的噪音,因此利用长短期更新相结合的方式来解决这一问题。

(5)集成方法:如何融合多个决策获得一个更优的决策结果。

集成方法有利于提高模型的预测精度,也常常被视为一种提高跟踪准确率的有效手段。可以把集成方法笼统的划分为两类:在多个预测结果中选一个最好的,或是利用所有的预测加权平均。

7.1.2.3 目标追踪算法分类

  • 对于视觉目标跟踪(即单目标跟踪)任务而言

    • 在2017年之前,大量的跟踪都是在相关滤波算法的基础上做出改进的,经典的算法包括KCF、DSST等。

    • 随着深度学习技术的兴起,跟踪领域中的学者们也开始去尝试着将深度神经网络应用该领域中,前期大家更多的是关注预训练的神经网络的使用;

    • 而从2017之后,以SINT和Siamese fc为代表的孪生网络跟踪器受到了研究者们的关注

      • 主要的原因还是Siamese fc算法给大家展现了一个超快的跟踪速度,而且跟踪精度也不差。

目标跟踪最近几年发展迅速,以基于相关滤波(Correlation Filter)和卷积神经网络(CNN)的跟踪方法已经占据了目标跟踪的大半江山。如下图给出的2014-2017年以来表现排名靠前的一些跟踪方法。可以看到前三名的方法不是基于相关滤波的方法就是基于卷积神经网络的方法,或是两者结合的方法。视觉目标跟踪方法根据观测模型是生成式模型或判别式模型可以被分为生成式方法(Generative Method)和判别式方法(Discriminative Method)。

7.1 目标追踪_第2张图片

  • 传统算法:在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置

    • 生成式:

      • 例子:从当前帧知道了目标区域80%是红色,20%是绿色,然后在下一帧,到处去找最符合这个颜色比例的区域

      • 1、卡尔曼滤波、粒子滤波(Particle Filter)、Meanshift

      • 2、基于相关滤波的算法

        • 如KCF, CN, DSST

    • 判别式:就是图像特征+机器学习,与生成类方法最大的区别是,分类器采用机器学习,训练中用到了背景信息

      • 有两种可以使用的基本网络模型:堆叠自动编码器( SAE )和卷积神经网络( CNN )

      • 如:最流行的使用 SAE 进行目标跟踪的网络是 Deep Learning Tracker(DLT),它使用了离线预训练和在线微调, TLD算法

      • 深度学习相关算法

  • 基于深度学习的跟踪方法(重点需要去介绍的):

    • 具有代表性的基于卷积神经网络的跟踪算法有全卷积网络跟踪器( FCNT )和多域卷积神经网络( MD Net )

    • 1、FCNT(ICCV15)

    • 1、VOT2015的冠军MDNet

    • 2、VOT2016的冠军TCNN

    • 3、速度方面比较突出的如80FPS的SiamFC和100FPS的GOTURN

    • 深度学习END2END的强大威力在目标跟踪方向还远没有发挥出来,还没有和相关滤波类方法拉开多大差

  • 总结:

    • 如果追求高准确度,又能忍受慢一些的速度,那么就用CSRT

    • 如果对准确度的要求不苛刻,想追求速度,那么就选KCF

    • 纯粹想节省时间就用MOSSE

7.1.2.4 视觉目标跟踪问题以及面临的挑战

1、任务类型

  • 单目标跟踪(最多)

  • 多目标跟踪

    • 与单目标跟踪相比,多目标跟踪的研究进展则缓慢得多,可用的数据集不够丰富,可以参考的开源代码也比较少。

    • 因为相对来说实现难度更大,多目标跟踪是一个更工程化的问题,深度学习在该问题上的潜力也尚未被很好地挖掘出来。

    • 注:一般提到“视觉目标跟踪”或“VOT”,往往指的是单目标跟踪。尽管看起来 SOT(Single Object Tracking)和 MOT(Multi Object Tracking)只是目标数量上的差异,但它们通用的方法实际上截然不同。

多目标追踪需要的一些算法技术

  • 匈牙利、KM匹配的后端追踪优化算法:SORT & DeepSORT

  • IOU Tracker & V-IOU Tracker

  • MOT-RNN

注:除了上述一些,还有跟踪与分割,3D目标跟踪等任务

2、挑战

视觉运动目标跟踪是一个极具挑战性的任务,因为对于运动目标而言,其运动的场景非常复杂并且经常发生变化,或是目标本身也会不断变化。那么如何在复杂场景中识别并跟踪不断变化的目标就成为一个挑战性的任务。

  • 遮挡(Occlusion)是目标跟踪中最常见的挑战因素之一:遮挡又分为部分遮挡(Partial Occlusion)和完全遮挡(Full Occlusion)。解决部分遮挡通常有两种思路:

  • 形变(Deformation)也是目标跟踪中的一大难题:目标表观的不断变化,通常导致跟踪发生漂移(Drift)。

  • 背景杂斑(Background Clutter):指得是要跟踪的目标周围有非常相似的目标对跟踪造成了干扰,

    • 解决这类问题常用的手段是利用目标的运动信息,预测运动的大致轨迹,防止跟踪器跟踪到相似的其他目标上,或是利用目标周围的大量样本框对分类器进行更新训练,提高分类器对背景与目标的辨别能力。

  • 尺度变换(Scale Variation):是目标在运动过程中的由远及近或由近及远而产生的尺度大小变化的现象。预测目标框的大小也是目标跟踪中的一项挑战,如何又快又准确的预测出目标的尺度变化系数直接影响了跟踪的准确率。

    • 通常的做法有:在运动模型产生候选样本的时候,生成大量尺度大小不一的候选框,或是在多个不同尺度目标上进行目标跟踪,产生多个预测结果,选择其中最优的作为最后的预测目标。

当然,除了上述几个常见的挑战外,还有一些其他的挑战性因素:光照(illumination),低分辨率(Low Resolution),运动模糊(Motion Blur),快速运动(Fast Motion),超出视野(Out of View),旋转(Rotation)等。所有的这些挑战因数共同决定了目标跟踪是一项极为复杂的任务。

7.1 目标追踪_第3张图片

7.1 目标追踪_第4张图片

7.1.3 目标检测数据集

7.1.3.1 数据集与排行

  • 1、单目标

    • LaSOT https://cis.temple.edu/lasot/

    • TrackingNet https://tracking-net.org/

    • OTB Dataset http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html

    • UAV123 https://ivul.kaust.edu.sa/Pages/Dataset-UAV123.aspx

    • VOT Challenge http://votchallenge.net

OTB和VOT区别:OTB包括25%的灰度序列,但VOT都是彩色序列,所以对于一个tracker,如果论文在两个库(最好是OTB100和VOT2016)上都结果上佳,效果肯定是非常优秀的,如果只跑了一个,更偏向于VOT2016,因为序列都是精细标注,且评价指标更好。

VOT竞赛的数据库是每年更新,经常就重新标注、改变评价指标,对当年算法是难度比较大,所以结果相对更可靠。

  • 2、多目标

    • PathTrack http://people.ee.ethz.ch/~daid/pathtrack/

    • ViDrone http://aiskyeye.com/views/index

    • DukeMTMC(已关闭) http://vision.cs.duke.edu/DukeMTMC/

    • UA-DETRAC http://detrac-db.rit.albany.edu/

    • MOT Challenge https://motchallenge.net

多目标跟踪,即MOT(Multi-Object Tracking):就是在一段视频中同时跟踪多个目标。

MOT主要应用场景是安防监控和自动驾驶等,这些场景中我们往往需要对众多目标同时进行追踪。TBD(Tracking-by-Detecton)与DFT(Detection-Free Tracking),也即基于检测的多目标跟踪与基于初始框无需检测器的多目标跟踪。TBD则是目前学界业界研究的主流。下图比较形象地说明了两类算法的区别。

7.1.3.2 评价指标

对于多目标跟踪,最主要的评价指标就是MOTA。

7.1.4 目标追踪的应用

  • 1、智能视频监控:基于运动识别(基于步法的人类识别、自动物体检测等),自动化监测(监视一个场景以检测可疑行为),交通监视(实时收集交通数据用来指挥交通流动);

  • 3、人机交互:传统人机交互是通过计算机键盘和鼠标进行的,为了使计算机具有识别和理解人的姿态、动作、手势等能力,跟踪技术是关键;

  • 4、机器人视觉导航:在智能机器人中,跟踪技术可用于计算拍摄物体的运动轨迹;

  • 5、虚拟现实:虚拟环境中3D交互和虚拟角色动作模拟直接得益于视频人体运动分析的研究成果,可给参与者更加丰富的交互形式,人体跟踪分析是其关键技术;医学诊断:跟踪技术在超声波和核磁序列图像的自动分析中有广泛应用,由于超声波图像中的噪声经常会淹没单帧图像有用信息,使静态分析十分困难,而通过跟踪技术利用序列图像中目标在几何上的连续性和时间上的相关性,可以得到更准确的结果。

7.1.5 小结

  • 知道目标追踪的算法类型以及应用

  • 知道目标追踪算法的任务类型以及挑战

 

 

 

你可能感兴趣的:(目标追踪,神经网络,大数据,算法,深度学习,机器学习)