多模态:自动驾驶中的多模态学习

本文首发于公众号“我AI”,欢迎关注,共同进步。

进入深度学习时代后,自动驾驶车辆的感知系统得到了大幅提升。为了获得更加鲁棒和准确的感知结果,一辆具备辅助驾驶或自动驾驶功能的车辆,通常需要配备不同的传感器,在不同的工况下互相补充。典型的传感器模态包括:摄像头、雷达、激光雷达、高精地图等。本文结合一篇综述文章和笔者的理解,介绍在自动驾驶中对多模态数据进行处理、学习的方法和挑战。

对多模态不甚了解的朋友可以先阅读我的这篇文章:#多模态(一):下一代人机交互?#

图源[1],自动驾驶感知系统利用多模态数据进行鲁棒、准确的感知

这篇综述文章Deep Multi-modal Object Detection and Semantic Segmentation for Autonomous Driving: Datasets, Methods, and Challenges由Bosch、乌尔姆大学、卡尔斯鲁厄理工大学的几位研究人员发表在IEEE Transactions on Intelligent Transportation Systems上。针对自动驾驶感知中的两类典型任务:目标检测和语义分割,回顾了与多模态相关的数据集、方法和挑战。

图源[1]

本文的大致内容如下:

1. 在设计和使用多模态方法之前,首先需要考虑和数据相关的几个问题(在本文第1节介绍):

是否有可用的多模态数据集以及数据是如何标注的;

数据集是否覆盖了多样的驾驶场景;

数据是否是高质量的;

2. 在设计多模态方法时,需要考虑的问题(在本文第2、3、4节介绍):

what to fuse:哪些模态需要被融合,如何恰当的表征和处理这些模态;

how to fuse:可以使用哪些融合操作和方法;

when to fuse:哪一阶段的特征表征最适合融合;

3. 现今对多模态学习的研究,面临的问题和挑战(本文第5节)。


01 自动驾驶的多模传感器和数据集

自动驾驶车辆通常配备的代表不同模态的传感器(见下图):

a) 视觉摄像头和热成像相机(Camera):通过相机能捕捉环境的详细纹理信息。视觉摄像头通常对光照和天气敏感,热成像相机则对白天/黑夜变化更鲁棒。然而,这两类视觉感知都无法提供深度信息;

b) 激光雷达(LiDAR):激光雷达能以3D点云的方式提供环境中准确的深度信息,受光照和天气影响相对较小。但是,无法捕捉环境目标的详细纹理(近期有新型的flash LiDAR弥补了该缺陷)且点云对于遥远目标变得非常稀疏;

c) 雷达(Radar):对光照和天气影响鲁棒,但由于分辨率低(稀疏点云),使得通过雷达数据识别物体类型很困难;

d) 超声传感(Ultrasonic):常用于低速场景下的近场目标检测,例如泊车场景。容易受到空气湿度、温度、尘土影响;

e) 全球导航卫星系统(GNSS)和高精地图(HD Map):GNSS例如GPS,结合高精地图,用于自车定位和路径规划;

f) IMU和里程计(Odometer):提供自车的加速度、旋转速率、里程,用于自车定位。

图源[1],(a)为DARPA 2007的Boss自动驾驶车辆,(b)为waymo的自动驾驶车辆

大部分基于深度学习的多模态算法都采用了有监督学习,因此有标注的数据集尤为重要。下表概括了自2013年以来的自动驾驶多模态数据集,从模态、标注方法、采集场景、数据集大小、目标类别几个主要维度进行对比

表源[2],自动驾驶多模态数据集-1


表源[2],自动驾驶多模态数据集-2


02 多模态方法-what to fuse

在自动驾驶感知的目标识别和语义分割任务中,Lidar和camera是最常被用于进行多模态深度学习的两个模态,radar和camera的融合次之。

针对lidar、camera、radar这三种不同模态的传感器,首先自然是要了解他们各自的表征方法,即这三种模态在单模态方法中是如何各自被神经网络处理的。了解了模态的特性和处理方法后,才能明确面对某一任务该使用哪些模态的组合。

Camera:大部分神经网络直接用单摄像头的RGB图像数据作为输入,输出2D或3D坐标系下的目标检测框,即单目视觉。理论上,在没有任何先验的前提下,单目视觉无法从几何的角度还原出目标物体的3D坐标信息。但通过从数据中学习的方法,能实现对3D坐标的估计。

这一研究领域即为单目3D目标检测(我会在之后具体撰文分享)。在我看来,单目3D目标检测方案通常可以分为以下几大类:

a)BEV(Bird-Eye-View)法:将单目图像转为鸟瞰图后做检测;

b)伪激光雷达法:通过单目深度估计,将单目图像转为点云图,然后利用对激光雷达点云数据的目标检测算法;

c)关键点和形状法:利用目标的关键点和形状等先验知识,还原3D坐标信息;

d)2D升级3D法:在2D目标检测网络的基础上增加检测的维度(如yaw角度、目标的长宽高等),从而还原出3D检测框;

e)直接生成法:通过网络在2D图像上直接回归出3D的检测框。

Lidar:激光雷达提供环境的点云数据,每个点都有xyz坐标和反射强度信息。由于激光雷达的数据是三维点云,传统用于图像中的深度学习方法无法直接处理如此海量的点数据(原因例如a.每一帧的点的个数都不固定;b.3维点云数据是稀疏的而2维图像数据是稠密的)。因此在进入网络之前通常需要对点云数据进行预处理,得到合适的数据表征。

常见的对点云数据的目标检测方法可以分为三类:

a)体素(voxel)法:首先将3D点云编码为离散的3D体素,再经过神经网络检测;

b)直接法:直接学习3D点云数据,例如PointNet++;

c)图像法:将3D点云转为2D图像(如鸟瞰图形式),再利用2D图像目标检测方法。

Radar:往往采用与激光雷达大体类似的思路,但由于其分辨率低且点更加稀疏,需要在算法上做些许调整,例如累积多帧的点云数据后再进神经网络学习。

下图的表格们,总结了一些多模态深度学习的方法。从已有的这些方法中,论文的作者作出以下观察:

a) 大部分方法使用2D卷积神经网络提取lidar和camera数据特征(将3D点云投影到2D平面),少部分会使用3D卷积神经网络或PointNet来提取lidar点云数据中的特征;

b) 虽然多篇多模态目标检测的工作对3D激光雷达点云数据聚类和分割,但在进行多模态融合时仍基于点云数据的2D表征来提取特征;

c) 为了进行模态对齐,存在一些工作将点云投影到图像平面或者将RGB图像投影到点云BEV平面。同时,另一些工作直接融合点云BEV图和RGB图像,通过神经网络隐式的进行特征对齐。

表源[2],多模态目标检测方法-1
表源[2],多模态目标检测方法-2
表源[2],多模态目标检测方法-3
表源[2],多模态语义分割方法


03 多模态方法-how to fuse

上一节解决了如何从单一模态中提取特征,这一节解决如何将不同模态的特征进行融合

文章中总结了四种模态特征融合的方法

a) 相加或平均(Addition or Average Mean):对不同模态的特征向量或特征图进行按元素相加或求不同维度上的平均;

b) 拼接(Concatenation):特征向量或特征图在某一维度上进行拼接或堆叠;

c) 集成(Ensemble):常被用于融合目标检测网络中的ROIs,不同模态下的检测的ROIs进行合并;

d) 专家混合(Mixture of Experts):上述的模态融合方法没有考虑感知模态的信息量(例如RGB摄像头在夜晚比激光雷达点云具备更少的信息量),寄希望于神经网络能够隐式的学习不同模态特征图的权重。专家混合方法则希望通过模型显式的建模特征图的权重。例如下图中的Gating Network就是这样一个显式的模型。

图源[1],专家混合方法


04 多模态方法-when to fuse

上一节回答了如何进行模态的融合,这一节需要解决在模型的哪一阶段进行模态的融合

文章中总结了几个融合的阶段:

a) 前融合(early fusion):下图(a),直接融合原始的或经过一定前处理的传感器数据。前融合的优点——充分利用了原始数据中的信息量、同时处理多个传感器可以降低整体运算和内存消耗。缺点是——对传感器数据的对齐(空间和时间上对齐)敏感、模型的灵活性下降;

b) 后融合(late fusion):下图(b),对每一个模态的检测/识别结果进行融合。后融合的优点——高度灵活和模块化,引入一个新的模态不会对原有网络产生影响。缺点是——高运算和内存消耗,并且丢失了大量对于模态融合有益的中间信息;

c) 中间融合(middle fusion):在模型的特征层上,对不同模态数据被处理出的特征进行融合。下图的(c)(d)(e)均为中间融合的不同方式。

图源[1],不同阶段的模态融合图示

除了简单的作出上述三个融合阶段的划分外,对于目标检测任务,还存在着复杂的融合模式(见下图),例如虽然融合发生在模型的中间层,但并非直接在特征层上进行融合(因此不属于middle fusion),而是在region proposal上进行融合。

图源[1],对于目标检测任务的一些不同的融合模式

“how to fuse”和“what to fuse”并不是割裂的,在不同的融合阶段,使用的融合方法也存在差异:

a) 特征拼接常用于early和middle fusion;

b) 相加或平均常用于middle fusion;

c) 集成和专家混合常用于middle和late fusion。


05 问题和挑战

对于自动驾驶中多模态学习的研究,仍存在许多需要克服的问题和挑战(详见下表):

1. 数据

a) 数据的多样性:获取覆盖复杂多样的驾驶场景的大量多模态数据难以获取

b) 数据和标注的质量:标注错误降低算法性能;多模态数据的空间和时间对齐误差影响算法学习

2. 融合方法

a) 在what/how/when to fuse上还有大量的工作可做

b) 融合网络需要满足自动驾驶的实时性要求

3. 其他

a) 评价指标:自动驾驶感知系统对鲁棒性的要求更高,且在多模态系统中涉及到多个传感器,其在不同工况下的不确定性亦不相同。因此,对模型的评价应当引入鲁棒性或不确定性指标

b) 更多的网络结构设计

表源[1],问题和挑战汇总


06 结语

需要强调的是:作者认为没有直接的证据证明某一阶段的融合就一定优于在其他阶段的融合,例如前融合就一定优于后融合。因为融合方法的性能和融合的模态、数据的情况、网络结构的设计等高度相关。

尽管如此,我也曾根据经验对不同融合阶段进行对比(见下表)。在我看来,纯从理论上来说,由于前融合所损失的信息量最小,只要有合适的方法,就能够在大多数场景下取得最佳的性能。

而这一“合适的方法”,正是学界不断摸索的方向。

参考资料:

[1] Feng, D., Haase-Schutz, C., Rosenbaum, L., Hertlein, H., Glaser, C., Timm, F., Wiesbeck, W., & Dietmayer, K. (2020). Deep Multi-Modal Object Detection and Semantic Segmentation for Autonomous Driving: Datasets, Methods, and Challenges. IEEE Transactions on Intelligent Transportation Systems, 1–20. https://doi.org/10.1109/TITS.2020.2972974.

[2] https://arxiv.org/pdf/1902.07830.pdf

- END -

新朋友们可以看看我过往的相关文章

【相关推荐阅读】

#多模态(一):下一代人机交互?#

模式识别学科发展报告丨前言

“一心多用”的方法——多任务学习

NCP:19个神经元完成自动驾驶?

你可能感兴趣的:(多模态:自动驾驶中的多模态学习)