其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。
1. 导言
目标跟踪是机器视觉中一类被广为研究的重要问题,分为单目标跟踪与多目标跟踪。前者跟踪视频画面中的单个目标,后者则同时跟踪视频画面中的多个目标,得到这些目标的运动轨迹。
基于视觉的目标自动跟踪在智能监控、动作与行为分析、自动驾驶等领域都有重要的应用。例如,在自动驾驶系统中,目标跟踪算法要对运动的车、行人、其他动物的运动进行跟踪,对它们在未来的位置、速度等信息作出预判。
目标跟踪算法可以进行轨迹特征的自动分析和提取,以弥补视觉目标检测的不足,有效的去除错误的检测,增加遗漏的检测,为进一步的行为分析提供基础。相对于多目标跟踪算法,视觉单目标跟踪算法研究的更为广泛,当前解决的相对更好。典型的如Mean shift算法,用卡尔曼滤波、粒子滤波进行状态预测,TLD等基于在线学习的跟踪,KCF等基于相关性滤波的算法等。
对于单目标跟踪算法的测试视频来说,存在一个先验假设是目标总是在摄像机视场范围内,因此即使把矩形框固定在初始位置,有时候仍然能得到一个看起来还好的跟踪结果(如图1)。
多目标跟踪问题没有上述的先验假设,一般情况下,多目标跟踪的对象位置变化很大,跟踪对象可以从场景入口进入,从出口离开,跟踪目标个数不固定。另外,多目标跟踪问题通常追踪给定类型的多个对象,同类对象具有一定的外观轮廓相似性,如下图跟踪场景:
相对来说,多目标跟踪问题更加复杂,除了单目标跟踪中存在的物体形变、背景干扰等因素。通常还需要解决以下一些问题:
-
跟踪目标的自动初始化和自动终止,即处理新目标的出现,老目标的消失
-
跟踪目标的运动预测和相似度判别,即准确的区分每一个目标
-
跟踪目标之间的交互和遮挡处理
-
跟丢目标再次出现时,如何进行再识别问题
多目标跟踪任务需要解决比单目标跟踪更多的问题和难点,如何有效地解决这些问题对多目标跟踪算法有重要意义。在这篇文章中,SIGAI将和大家一起对一些经典的视觉多目标跟踪算法进行回顾和归纳,以理解视觉多目标跟踪算法的框架和当前主流算法的框架和基本原理,如果对本文的观点持有不同的意见,欢迎向我们的公众号发消息一起讨论。
2. 视觉多目标跟踪算法的分类
多目标跟踪问题最早出现在雷达信号中目标运动轨迹的跟踪,如同时跟踪飞过来的多架敌人的飞机和多枚导弹。这些算法后来被借鉴用于机器视觉领域的多目标跟踪任务,随着计算机视觉领域的深入研究,近年来研究者对多目标跟踪算法从不同的方面进行了扩展。比如通过扩展单目标跟踪算法来支持多目标的情况,更多的工作从整个视频场景出发,对所有的目标轨迹做了统一的考虑。根据不同的分类标准,多目标跟踪算法有不同的分类方法。比如按照预测校正的跟踪和按照关联方式的跟踪,按照离线方式的关联跟踪和按照在线方式的跟踪,按照确定性推导的跟踪算法和按照概率统计最大化的跟踪等。
按照轨迹形成的时间顺序,多目标跟踪可以分为在线方式的跟踪算法以及离线形式的跟踪过程。如果跟踪的顺序是逐帧方式的:即为在线方式的目标跟踪方法。在线多目标跟踪与人眼实时跟踪目标过程类似,是对每个目标的状态进行估计,然后考虑整体状态的合理性进行约束。这个过程也可以简化为:获得每帧图像检测结果,把检测结果同已有的跟踪轨迹进行关联。如果跟踪算法运行是在视频已经获取结束,所有检测结果都已经提前获取情况下,这种跟踪方法为离线形式的多目标跟踪。离线多目标跟踪算法把检测结果集合作为观察,把轨迹看作检测集合的一种划分,因此跟踪问题转化为子集优化的过程。
按照跟踪算法形式化表示和优化框架过程,多目标跟踪可以分为确定性推导的跟踪和概率统计最大化的跟踪算法(如图3)。
在确定性推导的多目标跟踪框架中,我们把检测和轨迹和匹配看作为二元变量,通过构
造一个整体的目标函数,我们求变量的最佳值,使得目标函数最优,从而得到检测和轨迹的最佳匹配。这种整体的目标函数可以构造为二部图匹配的匹配代价,网络流的代价和,或者直接构造为机器学习中的分类问题进行优化计算。在概率统计最大化的多目标跟踪方法中,检测和轨迹的关系通过概率模型进行形式化,例如基于贝叶斯推导的卡尔曼滤波和粒子滤波,基于构造马尔科夫图模型,通过样本构造学习模型参数,在跟踪过程中计算概率最大化的轨迹结果,而对马尔科夫图模型的一个直接的公式化方法就是构造能量函数,因此能量最小化也是一些多目标跟