自动驾驶中的多目标跟踪_第一篇

自动驾驶中的多目标跟踪:第一篇

多目标跟踪(multi-object/multi-target tracking)的任务包括估计场景中目标的数目、位置(状态)或其他属性,最关键的是需要在一段时间内持续地进行估计。

附赠自动驾驶学习资料和量产经验:链接

应用

多目标跟踪有如下两个方面应用:

  1. 在二战中,多目标跟踪技术被用于跟踪敌方飞机 。雷达通过向天空发射电磁波并接收相应的回波。如果电磁波波束指向的位置恰好有飞机,那么飞机反射回波有一定概率会被信号处理器检测到。信号处理器输出的有关这架飞机的位置、速度等信息称为量测(measurement) 。每一个时刻的量测会被数据处理器处理,输出飞机的轨迹,称为航迹(trajectory) 。把每个时刻的量测转换为航迹的算法就是目标跟踪算法。

雷达跟踪示意图

与雷达多目标跟踪相似的应用还有基于Lidar或者声呐的多目标跟踪,这类传感器提供的目标信息较少,因此提高数据关联(data association, DA)技术 和以更严密的数学理论描述多目标跟踪问题成为了这类技术的发展方向。

  1. 多目标跟踪也是视频监控的核心技术。在视频图像中跟踪各类物体或人,以此来推断监控场景中发生的事件,例如人群聚集、犯罪行为、车辆碰撞等。视频中应用的多目标跟踪技术和雷达多目标跟踪技术有很大的不同,主要原因在于图像受到光照或者其他因素影响较大,视频中物体常常发生遮挡而且密集,所以目标的检测比较困难。但图像是高分辨率的,提供有关目标的特征较多,所以提高检测质量或者提取高层次特征是很多视频跟踪算法努力的方向。

视频监控人群

在前述的第一种应用中,根据目标产生的量测特点,跟踪任务可以分为下面两种类型:

  • 点目标跟踪(point object tracking):每个目标每一时刻至多产生一个量测,即目标要么没被检测到,要么被检测到且只产生一个量测。这种类型的跟踪任务大多在空域监视雷达或图像中。

图中的车辆可以视为点目标

  • 扩展目标跟踪(extended object tracking): 每个目标每一时刻可能产生多个个量测,这种现象出现的原因是目标尺寸超过传感器能提供的最小分辨率。这种类型的跟踪任务大多在自动驾驶或使用高分辨率的雷达跟踪目标场景。

(a) Lidar (b)毫米波雷达

除上述两种类型目标,在跟踪的过程中有时还会出现多个目标只产生一个量测的情况,它时常发生在两个相互靠近的物体,它们之间的距离小于传感器的最小分辨单元。

两辆并排行驶且速度相同的车辆,雷达无法分辨这两个目标


挑战

下图包含了多目标跟踪面临的几种挑战

  • 未知目标的数目和状态:在跟踪算法的初始化阶段,场景中的目标数目是未知的,尽管根据检测的数目对实际目标数有一个大致估计,但考虑到检测并不是完美的,存在虚警(false alarm, FA)或者漏警(miss detection, MD),所以目标数目仍然是一个未知量。此外,在很多情况下目标的状态也有很大的不确定性。考虑一个两坐标雷达,传感器提供的量测的形式只有平面_x-y_坐标,这样目标状态中的姿态(pose)和速度(velocity)都不能被传感器测得,只有从长时间的测量数据中估计出上述状态。

  • 目标运动:目标运动具有不确定性,其运动模式可能会变化,这可能会影响目标跟踪依赖的系统模型(system model)与目标运动模式的匹配度。此外,目标可能突然进入视野(上图右下角的行人),从视野中消失(上图右上角的行人)或者运动到传感器无法测量的位置(上图红圈处),这使得目标数目的估计变得困难,同样增加了数据关联问题的复杂度。

  • 不完美的传感器: 传感器同样会给目标跟踪带来挑战,最显著的两个挑战就是虚警和漏警。无论选择哪种传感器,几乎都会面临这两个挑战。在雷达应用中,虚警的产生是由于背景中的物体反射了足够的电磁波能量使得信号处理器认为该物体是感兴趣的目标(target of interest)或者敌方干扰机发射了干扰信号。漏警的产生是由于信噪比过低、信号强度弱低于检测门限、被遮挡等。

左图 发生对行人漏警 右图 斑马线处发生虚警

  • 数据关联不确定性: 在与点目标跟踪相关的各类文献中,数据关联一直占据着很重要的地位。数据关联就是目标和量测的对应关系。由于量测的来源不确定(可能是虚警、新/旧目标),很多情况中我们不能判断量测属于哪个目标产生的,所以算法中需要考虑数据关联(对应关系)的所有可能性。一种对应关系称为关联假设,然而我们会看到这种对应关系的数目是组合数增长的,计算量爆炸性增长。之后我们会看到各种算法提出多种近似手段去解决这一问题。下图是一个简单一维量测数据关联的例子。从上半部分图可以看出有4个目标在运动,不同颜色的圆圈表明它们产生的量测,灰色的圆圈是虚警。在时刻3,标为黄色的目标发生了一次漏检,在时刻2,红色的目标停住不动。当我们知道量测与目标的对应关系时,对目标的跟踪是比较容易的,考虑使用各类滤波算法。但实际跟踪算法处理的是下半部分图所对应的量测,即我们不知道量测-目标的对应关系,我们也不知道哪个量测是虚警。即便我们假设目标的数目在跟踪过程中保持不变,关联假设的数目都是组合数式增长的!

在下一篇文章中,我会简单回顾贝叶斯滤波的相关知识,这是单/多目标跟踪的基础。

未完待续...

相关推荐
Evand J14 小时前
集合卡尔曼滤波(Ensemble Kalman Filter),用于二维滤波(模拟平面上的目标跟踪),MATLAB代码
matlab·平面·目标跟踪
地平线开发者18 小时前
CPU& 内存加压工具 stress-ng 介绍
算法·自动驾驶
菠菠萝宝1 天前
【YOLOv8】安卓端部署-1-项目介绍
android·java·c++·yolo·目标检测·目标跟踪·kotlin
清流君1 天前
【运动规划】移动机器人运动规划与轨迹优化全解析 | 经典算法总结
人工智能·笔记·算法·机器人·自动驾驶·运动规划
audyxiao0012 天前
突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合
人工智能·机器学习·大模型·自动驾驶·多智能体
学步_技术3 天前
自动驾驶系列—面向自动驾驶的模型迭代:工具、平台与最佳实践
人工智能·机器学习·自动驾驶·模型迭代
学步_技术4 天前
自动驾驶系列—自动驾驶数据脱敏:保护隐私与数据安全的关键技术
人工智能·机器学习·自动驾驶·数据安全·数据脱敏
学步_技术4 天前
自动驾驶系列—深入解析自动驾驶车联网技术及其应用场景
人工智能·机器学习·自动驾驶·车联网
标贝科技4 天前
标贝科技:AI基础数据服务,人工智能行业发展的底层支撑
人工智能·机器学习·语言模型·数据挖掘·自动驾驶·database·big data
Mr.Winter`4 天前
轨迹优化 | 基于Savitzky-Golay滤波的无约束路径平滑(附ROS C++/Python仿真)
人工智能·算法·机器人·自动驾驶·ros·ros2·数值优化