针对自动驾驶对传感器数据进行可视化、标记和融合

作者 Avinash Nehemiah and Mark Corless, MathWorks

开发ADAS或全自动驾驶感知算法的工程师通常需要处理大量输入数据。这些数据来自雷达、LiDAR、摄像头和车道检测器等多种不同类型的传感器,但是起初这些数据带来的问题往往多于其能够解决的问题。如何解析这些数据并为其赋予生命?如何协调来自不同传感器的冲突数据?一旦开发出算法,如何评估其产生的结果?

以下是MATLAB®和Automated Driving Toolbox™的功能指南,可帮助您解答这些问题。我们将关注四个主要任务:可视化车辆传感器数据、标记环境真实值、融合多个传感器的数据和合成传感器数据以测试跟踪和融合算法。

可视化车辆传感器数据

解析数据是感知系统开发早期阶段面临的主要挑战。传感器以不同格式和速率提供输出数据。例如,摄像头提供图像的三维矩阵、LiDAR提供点列表,而嵌入式或智能相机则提供包含车辆、车道和其他物体的目标列表。这些输出数据的不同特性使得研究人员很难了解整体情况(图1)。

图1. 车辆传感器数据示例。

在此早期阶段,我们需要确切了解传感器如何显示车辆周围环境。最佳可视化类型是鸟瞰图,因为它可以在一个地方对来自不同传感器的所有数据进行可视化。

要创建鸟瞰图,我们需要使用MATLAB®和Automated Driving Toolbox™中的可视化工具。然后,我使用以下对象向视图中添加更多细节:

  • coverageAreaPlotter, 用于显示传感器覆盖区域
  • detectionPlotter, 用于显示视觉、雷达和LiDAR传感器检测的目标列表
  • laneBoundaryPlotter, 用于将车道检测数据叠加到图像上

现在,我们便对传感器覆盖范围、检测数据和车道边界进行了准确的可视化(图2)。

图2.(从左上部顺时针)绘制传感器覆盖范围、将车辆坐标转换到图像坐标、绘制车道和雷达检测数据,并绘制LiDAR点云。

自动执行真实值标记

真实值标记被用于通过机器学习或深度学习技术训练目标检测器。其在对现有检测算法进行评估的过程中也是必须的。建立真实值标记通常费时费力,需要逐帧手动将标签插入视频。Automated Driving Toolbox中的Ground Truth Labeler应用程序包含计算机视觉算法,可加速真实值的标记过程。该应用程序具有三个关键功能(图3):

  • 车辆检测器基于聚合通道特征(ACF)自动检测和标记关键帧中的车辆。
  • 跨时插值器标记在所选关键帧之间的所有帧中检测到的物体。
  • 点跟踪器 使用Kanade-Lucas-Tomasi (KLT)算法的一个版本跨帧跟踪相关区域。
  • 添加算法可添加自定义算法并简化目标检测器的迭代开发。

图3. Ground Truth Labeler应用程序。

融合多个传感器的数据

事实上,所有感知系统都使用来自若干互补传感器的数据。协调来自这些传感器的数据非常困难,因为每个传感器给出的结果可能略有不同。例如,视觉传感器报告车辆位于某个位置,而雷达检测器显示该车辆在附近,但所在位置却明显不同。

Automated Driving Toolbox中的multiObjectTracker会对检测数据进行跟踪和融合。通用程序可融合雷达和视觉检测数据,以提高周围车辆位置估计的准确性(图4)。

图4. 此处采用多目标跟踪器融合雷达数据(红色圆圈)和视觉检测数据(蓝色三角形)数据,以此对车辆位置进行更加准确的估计(黑色椭圆形)。

合成传感器数据以生成测试场景

某些测试场景使用真车执行比较危险(如濒临撞车),而其它一些场景可能需要阴云密布或其它特殊天气条件。我们可通过合成目标级传感器数据解决这一挑战,生成包含道路、车辆和行人在内的虚拟目标作为场景。我们可以使用此合成数据测试跟踪和传感器融合算法(图5)。

图5. 合成测试场景的顶视图、跟随摄像机视图和鸟瞰图。

在感知系统中使用车辆数据

车辆数据的可视化、融合和合成为开发目标检测算法奠定坚实基础。做好部署MATLAB算法的准备后,我们能够使用MATLAB Coder™生成可移植的、兼容ANSI/ISO的C/C++代码,并将它们集成到嵌入式环境。

出版年份 2017 - 93165v00


查看文章,了解相关功能

查看文章,了解相关行业