Matlab R2017b 自动驾驶工具箱学习笔记(5)_Multiple Object Tracking

多目标跟踪

跟踪是实时定位视频流中运动物体或多目标物体的过程。物体跟踪不同于物体检测,物体检测是单帧图像上定位感兴趣物体的过程,而跟踪则将检测跨多帧联系起来。

追踪多目标步骤包含检测,预测和数据关联:

  • 检测:检测单帧图像上的感兴趣物体;
  • 预测:预测物体在下一帧图像上的位置;
  • 数据关联:利用预测位置将检测位置跨帧关联起来以形成追踪;

检测

根据需检测目标和摄像头静止与否选择合适的检测方法。

静止摄像头的物体检测

利用静止摄像头检测移动物体,可以利用vision.ForegroundDetector系统对象做背景分离。背景分割效率很高,但是需要摄像头静止。

移动摄像头的物体检测

利用移动摄像头检测运动物体,可以使用窗口滑移方法,此方法比背景分割运行的慢。检测和跟踪特定对象,参考表格中的系统对象。

选择检测算法

跟踪对象类型

摄像头

函数对象

任何运动物体

静止

vision.ForegroundDetector System object™

脸,眼睛,鼻子,嘴巴,上半身

静止,运动

vision.CascadeObjectDetector System object

行人

静止,运动

vision.PeopleDetector System object

特定物体类型

静止,运动

trainCascadeObjectDetector function
或基于 extractHOGFeatures 和 selectStrongestBbox的sliding windows detector

预测

实时跟踪目标意味着我们必须预测下一帧上物体的位置。最简单的预测方法是假定物体会在最后出现位置的附近。换句话就是,上一步的检测将为下一步的预测服务。这个方法适用于高帧率的使用场景。然而,此方法在物体变速运动或者帧率相比于物体运动速度较低的情况下会失效。

更稳健的预测方法是利用上一步观测到的物体运动信息。卡尔曼滤波(vision.KalmanFilter)预测物体的下一个位置,假定物体运动遵从某一运动模型,例如匀速和匀加速运动。卡尔曼滤波同样会引入计算误差和测量误差,计算误差是物体的实际运动和运动模型的偏差,测量误差为检测的误差。

为了更简便的实现卡尔曼滤波,可使用configureKalmanFilter。函数在笛卡尔坐标系下设定了滤波器,用于跟踪匀速和匀加速运动的物体。所有维度的统计数据均相同,如果需要更改卡尔曼 滤波器的设定,需对vision.KalmanFilter对象进行修改。

数据关联

数据关联是跨帧将传感器探测数据与相应探测物体相关联的过程,特定对象的时序结果由多量测值组成,称为航迹。航迹可以是对象的所有历史位置,同样也可以只是能得到的最近的位置和当前速度。

量测航迹匹配函数

航迹和量测的匹配需建立评价匹配的准则。通常,通过定义代价函数来建立此标准;量测到航迹的匹配代价越高,量测跟航迹越不匹配。一个简单的准则是对象的预测边框和量测边框的重叠程度。 Tracking Pedestrians from a Moving Car例程中用 bboxOverlapRatio实现了此代价函数,也可以使用更复杂的代价方程,用vision.KalmanFilter 对象中的distance计算预测的不确定性。我们也可以自定义一个同时考虑对象尺寸和外观的代价方程

剔除“坏”匹配

门限是剔除“坏”匹配的一种方法,例如在陈本函数中添加阈值。某次量测和航迹的匹配成本函数超过阈值,则量测和航迹不匹配。这类阈值方法在预测值附近生成圆形的门限区域,圆内均为可匹配量测。另一种门限方法是创建一可包含预测的k最近邻值的门限区域。

量测航迹配准

数据关联即缩减为最小权重二分匹配问题,这是图论中已充分研究的领域。二分图将航迹和量测描述为顶点,同样他将量测和航迹匹配的代价描述为相应顶点的加权边缘。

assignDetectionsToTracks 方程实现了匈牙利二分匹配算法的Munkres变量。输入为代价矩阵,行向量代表航迹,列向量代表航迹。每个交点即为量测和航迹匹配的值,不匹配的阈值可设定为无穷大。

航迹管理

数据关联必须考虑FOV中新对象的出现和跟踪对象的离开。换句话说就是任何时刻,新航迹可能需要被创建,已跟踪航迹可能需要剔除。assignDetectionsToTracks 方程除返回匹配对象外,也返回未匹配的航迹和未匹配的量测的索引。

处理无配对的量测的一个方法是为他们分别创建新的航迹,或者也可以只为大于特定尺寸的未匹配量测或特定位置和外观的量测新建航迹。例如,如果场景中有单独入口,例如出入口,可以只为入口附近的未配对量测新建航迹,其他未配对量测均当做噪声处理;

另一种处理未配对航迹的方法是将指定帧数内任未配对的航迹删除,同样的,也可以定义删除最后已知时刻位于exit point附件的未配对航迹。

 

 

 

你可能感兴趣的:(自动驾驶,传感器融合)