导读:Elon Musk说过,“人类不是超人,也不是蝙蝠侠,不能够眼放激光,也不装有雷达,但是通过眼睛捕捉到的图像,人类依旧可以构建出对周围世界的3D空间理解能力,从而很好地掌握驾驶这项能力。”想要真正实现自动驾驶,让汽车具备像人类司机一样的感知能力最为关键。

在去年的特斯拉 AI Day上,Karparthy展示了基于Transformer的BEV(Bird's eye view,鸟瞰图)网络结构,该方法使用纯视觉输入进行自动驾驶感知任务,效果十分惊艳。

与此同时,学术界也有许多相关工作旨在利用纯视觉输入来完成自动驾驶感知任务,例如3D目标检测或者构建语义地图。这当中,BEVFormer的主要贡献在于使用Transformer在BEV空间下进行时空信息融合。   

7 月 14 日,前商汤科技研究院执行研究总监、即将入职清华大学电子系的代季峰博士在青源 Talk 第 21 期中分享了题为「BEVFormer:新一代自动驾驶环视感知算法」的报告。之后旷视研究院基础模型组负责人,青源会会员张祥雨与代季峰就BEVFormer的优势等问题进行了对话。(点击文末「阅读原文」查看视频回放)

 

代季峰博士,前商汤科技研究院执行研究总监,智源青年科学家,在清华大学自动化系于2009年和2014年分别获得学士和博士学位。2012年至2013年间,他在加州大学洛杉矶分校访学。2014年至2019年间,他在微软亚洲研究院(MSRA)视觉组工作,曾担任首席研究员、研究经理。2019年至2022年,他在商汤科技研究院工作,担任基础视觉、通用智能两个二级部门负责人,执行研究总监。他的研究兴趣为计算机视觉中的通用物体识别算法和跨模态通用感知算法。他在领域顶级会议和期刊上发表了30多篇论文,根据谷歌学术统计获得了20000多次引用。他的一些工作,如区域全卷积网络R-FCN、可变形卷积网络Deformable ConvNets,被编入顶尖大学计算机视觉课程的讲义中。
整理:熊宇轩
编辑:李梦佳

首先,代季峰博士以特斯拉为例回顾了自动驾驶感知算法的发展历程,说明了基于 BEV 的感知算法相较于基于图像视图感知算法的优势,并重点介绍了其团队研发的 BEVFormer 模型。该模型融合了时空信息、采用了稀疏注意力机制,能够更高效、更准确地完成下游的分割、检测等任务。

随着汽车智能化的发展,汽车上装备的传感器的数量和种类越来越多。2014 年,特斯拉 Hardware 1.0 平台只包含一个前向摄像头。如今,蔚来 ET7、ET5 等国产新势力电动车包含数十个传感器,包括摄像头、LiDAR、RaDAR 等传感器。此时,我们需要充分这些硬件的潜力,使各种传感器优势互补,更好地融合来自多源传感器的数据。

目前,基于图像视图的方案使用不同的网络对图像、点云等数据完成感知子任务。就图像而言,网络针对每张图像单独提取特征,将 2D 特征转化到 3D 空间中,再得到物体的边界框或道路的分割结果。此外,针对点云数据,网络进行 3D 的检测,得到检测的结果。最终,此类方法对各种方法得到的输出结果进行投影,通过以规则为主的融合方法将不同网络的感知结果融合起来。

近年来,基于鸟瞰图视角(BEV)的感知方案逐渐兴起。如上图所示,基于图像视角的方案依赖从摄像头视角观察到的图像。BEV 感知相当于一直有一个无人机在车顶正上方 10-20 米的高度俯视观察。

在 BEV 感知方案下,我们将多传感器的数据融合,统一在相同视角下表达。如何对算法进行创新,最优地表达来自不同传感器的特征,是当前的研究热点和趋势。相较于基于图像视角的方案,BEV 视角下的感知无需考虑尺度、遮挡等问题,便于后续规划控制模块的开发。

BEV 感知方案研究的核心和难点在于:(1)视角变化后的深度估计(2)带有真实标签的数据获取(3)不同传感器的特征融合(4)不同图像采集设备之间的域适应。

逐摄像头检测再融合

BEV 感知方案之所以会兴起,是因为逐摄像头检测再融合的方案存在一些难以解决的缺陷问题。逐摄像头检测再融合的方案正在将图像空间(2D)的预测结果映射到向量空间(3D)的后处理过程中,会假设路面是纯平的,而该假设在现实中往往很难被满足,这会导致融合结果产生错误。此外,当不同图像中包含同一物体的不同部分时,将这些部分融合起来十分困难。

在采用逐摄像头检测再融合的方案时,我们难以精准估计物体的位置、深度、速度。在 BEV 视角下,我们可以回避对深度的估计,在 BEV 空间下做检测。

特斯拉的视觉解决方案路线图

下面,不妨回顾特斯拉的视觉解决方案发展路线。2016 年,他们采用前向摄像头的输入数据,使用简单的 ResNet/RegNet 网络提取特征,再通过分类、回归预测头完成下游任务。到了 2018-2019 年,他们采用了来自更多摄像头和 Radar 的输入数据,考虑了多尺度特征,并采用多任务学习框架让网络能处理各种任务。但此时他们仍然在每个视角下单独处理任务。

2019-2020 年,他们逐渐引入 BEV 感知方案。他们采用了来自多个摄像头的输入数据,分别使用了多个主干网络得到在每个图像视角下的特征,最后经过 BEV 转换将特征投影到 BEV 视角下的统一特征图上。在此基础上,他们应用不同的预测头在多任务学习框架下完成下游任务。到了 2021 年,特斯拉进一步引入了视频特征队列,让网络能够处理时空信息。

基于BEV的端到端感知

在基于 BEV 的端到端感知任务中,输入从不同视角下拍摄的图片,通过「黑盒」模型得到 BEV 视角下的三维「向量空间」。

其中,将图像视角下的特征投影到 BEV 视角下是核心步骤之一。为此,最直观的做法是,基于路面纯平等完美几何假设,根据相机的内外参,使用对应的图像视角上的特征填充 BEV 特征图。然而,这种理想的路面几何特性往往不成立。如果某些部位存在遮挡,投影的结果也会产生错误。因此,针对 BEV 视角下的每一个网格,研究者需要找到该网格与图像块真正的对应关系。

特斯拉开发了一套基于 Transformer 的端到端 BEV 感知模型。其中,它们设计了一个「Raster」位置比那马模块,为每个网格生成位置编码向量。如上图所示,为了填充 BEV 视角下每个网格的特征,模型需要将该网格特征与各个视角下的所有位置计算密集的注意力,该操作的计算复杂度和内存开销都十分巨大。尽管可以利用一些先验知识,减少需要关注的视角,但是注意力机制的计算开销与视角上图像像素的数量仍然成正比。此外,由于初始状态下注意力权值的分布是均匀的,注意力从图像上所有可能位置收敛到精确区域的过程十分缓慢。

为此,代季峰博士团队提出了一种通过稀疏注意力替代密集注意力的方法。他们首先在完美几何假设下,根据相机的内外参将 BEV 视角下某位置与某些图像视图(例如,View 1 和 View 2)上的 ROI 相匹配。接下来,根据匹配视图上对应位置的图像内容决定应该对采样的位置赋予怎样的权重。我们通过将匹配视图中对应位置的特征加权来填充 BEV 视角下某位置的特征。此时,我们只需关注匹配视角中较少部分的像素,实现了稀疏注意力,从而在特征图的层面上大大减小了计算量。在这种情况下,注意力的初始分布更加集中(sharp),梯度的有效性更高。

BEVFormer

代季峰博士团队提出的 BEVFormer 网络架构如上图所示,该架构包含三个关键模块:(1)BEV Queries:用于查询得到 BEV 特征图(2)跨空间注意力:用于融合多视图特征(3)时序自注意力:用于融合时序 BEV 特征。

在 BEVFormer 中,除了在空间层面上将 BEV 网格与图像视图进行匹配、更新网格特征,还会使用类似的机制利用历史时序数据。

具体而言,在时间 t,BEVFormer 接收来自多个视图的图像输入,通过主干网络得到多相机特征。另一方面,BEVFormer 接收历史的 BEV 特征图  和当前的 BEV 查询 Q。在每个 Transformer 块中,模型使用时序自注意力模块融合时序 BEV 特征,使用跨空间注意力模块融合多视图特征和通过时序自注意力模块得到的时序特征。最终,当前的 BEV 特征将被输入给检测或分割头完成下游任务。

在查询空间信息时,具体的步骤如下:(1)将每个 BEV 查询构造为三维空间中的支柱(pillar)形状(2)将支柱中的三维体素点投影为图像视图中的二维像素点(3)从匹配上的视图中的区域采样特征(4)加权融合。

在查询时序信息时,具体的步骤如下:(1)根据帧间运动将两个 BEV 特征图对齐(2)同时从过去和当前时间点采样特征(3)将采样到的过去和当前 BEV 特征图进行加权(4)使用 RNN 的方式迭代式地收集历史 BEV 特征。通过上述过程,我们可以更好地估计速度等特征。

BEV 特征是一种伪 2D 特征,我们可以将高度信息编码到不同的通道上。因此,我们可以直接利用一些 2D 的预测头完成分割、检测等任务。

实验结果

实验结果表明,在 nuScenes 数据集上进行测试 3D 检测性能时,使用更强的主干网络会取得更好的性能;相较于采用密集注意力机制,采用稀疏注意力机制可以获得约 4.4 NDS 的性能提升,其收敛速度也会得到一定的提高;采用时序信息后,模型预测的召回率更高,对速率的估计更为准确;采用多任务学习的预测头有助于提升 3D 目标检测任务的性能,但是会降低 BEV map 分割的性能。

在 nuScenes 数据集上测试各种 BEV 编码器对检测结果的影响时,代季峰博士团队发现:密集注意力会消耗太多的计算资源;点之间的交互限制了感受野;使用可变性的注意力可以在计算开销和感受野之间取得平衡。

代季峰博士团队代表上海人工智能实验室参加了 Waymo 组织的 Camera Track 比赛,以 BEVFormer 模型获得了该赛事的冠军(代码链接:https://github.com/zhiqi-li/BEVFormer)。

对话:张祥雨&代季峰

Q1(张):BEVFormer 中大量使用了 Deformable Attention 机制。Deformable Attention 中不包含 Key 和 Query 的点积,会不会在做 Cross Attention 时存在无法对齐,从而难以预测 Offset 的问题?

代:Deformable Attention 可以在自注意力场景下具有很好的性能,这是因为此时感受野很大,尽管只有 Query,也可以获取到周围很多的特征,从而计算 offset。

Q2(张):多模态数据融合(例如,LiDAR 和视觉信息的融合)受到了越来越多的关注,这一领域存在哪些难点?未来的发展方向如何?

代:LiDAR 数据本身就对应于 BEV 视角,但是其扫描速度较慢,需要进行物理上的校准。较为直观的做法是将 LiDAR 数据与图像的 BEV 特征连接起来或相加,当我们融入了一些接近 Ground Truth 的稀疏特征后,可以增强模型的可靠性。目前,较为合理的方法仍然是使用较简单的模块设计,再利用大量数据训练,效果往往优于设计「精巧」的 trick。

张:无论是利用 LiDAR、RaDAR 还是摄像头获取到的数据,都具有统一的表征空间(三维现实世界)。但是每一种模态也存在自己的归纳偏置,我们应该根据各种模态的一致性关系将其映射到公共的表征空间中。

Q3(张):近期,有一些学者提出使用统一的网络结构和输出方式进行多模态数据融合,尝试使用同一的词例化的方式表征数据。这是否是正确的处理多模态数据的方式?

代:不一定。谷歌也提出了另一种名为「Pathways」的模型融合方式。针对各种多模态的编码,他们采用一些切当的方式实现路由,确定不同子网络之间的权重。

Q4:自动驾驶领域积累了大量的数据,是否有适用于该场景的自监督学习方式?

代:特斯拉等厂家已经开始布局自动驾驶场景下的自监督、跨模态监督问题。近年来,MAE 等工作的出现也让我们对视觉自监督方向的工作更有信心。

Q5:如何提高自动驾驶感知系统的鲁棒性?

代:单纯从感知层面上来说,网络的性能可能较为有限。一些实际问题触及到了神经网络性能的瓶颈,很难有效地处理这些问题。我们可能还是需要引入一些规则来实现更加鲁棒的系统。

张:我们不妨尝试以下几条路线:(1)分析长视频序列(2)考虑不确定性(3)充分挖掘时空信息(4)引入基于知识图谱的推理机制。

观众问答

Q1:在特征层面上使用 BEV 特征图的最本质的优势是什么?为什么不直接输出 BEV 视角的感知结果?

A:在基于图像视角的方案中,我们需要通过手动设计大量规则实现从图像视角到 BEV 视角的融合,并非数据驱动,我们可以将其称为「Software 1.0」;在 BEV 视角下,我们可以在各位置通过对图像中的特征采样并融合他们,这一过程是由网络和数据自动驱动的,免去了很多后融合的步骤,我们可以将其称为「Software 2.0」。如果遇见一些无法处理的极端情况,我们可以让汽车行驶更长的里程,采样到这些极端情况,然后更新数据库并训练网络,其算法性能上限也更高。

Q2:BEVformer 等方案非常依赖于根据几何关系求出的参考点,当相机的外参发生变化时,投影关系会发生微小变化,模型性能会有所下降。如何解决这种特征融合的不确定性?

A:主要有两套方案解决上述问题:(1)通过实时标定的方法实时矫正外参变化的影响。(2)实验发现全局注意力更为鲁棒,但其计算量非常的大。所以可以研究稀疏、高效的注意力机制,使特征融合更为鲁棒。

Q3:针对 Radar 和摄像头的信息融合方法有何差异?

A:通过大模型统一感知任务的 Software 2.0 时代已经到来。我们可以将编码好的 Radar 数据输入给大网络,通过数据驱动的方式融合信息。从编码层面上说,我们应该针对 Radar 数据的各种特点(例如,无法区分静态物体)引入各种先验知识,得到更好的编码特征。具体而言,使用怎样的先验信息或融合方式更好还有待进一步探究。

Q4:相较于「基于多传感器融合」,「基于纯视觉感知」的自动驾驶方案有哪些不足?

代:现有的深度学习算法无法解决所有的极端情况,不能做到百分之一百的安全。而如果加入了其它传感器的数据(例如,LiDAR 数据),可以获得较为准确的真实深度信息。当系统意识到有一团点云迅速靠近汽车,就可以强制刹车。

张:从视觉算法的角度来说,识别物体是否存在更多是语义层面的问题,这一过程依赖于训练数据,必然存在漏检、误检等错误。而通过 LiDAR 等设备从物理层面上识别物体的存在则更为可靠。此外,多尺度、小物体检测等视觉算法中存在的传统问题也会制约系统的性能。

Q5:BEV 算法目前在芯片端使用率仍较低,请问其落地前景如何?

A:目前某些芯片还不能很好地处理 BEV 感知等目前的最优算法。对芯片公司而言,这是一个机遇。芯片公司要善于分析未来的算法发展趋势,芯片端和算法端是相互促进、相互迭代的。

Q6:BEV 算法是数据驱动的,各大公司都纷纷开始了「军备竞赛」,小公司是否有较好的切入点?

A:小公司也有很多机会。现代深度学习算法实际上存在「数据饱和」的特点。目前最好的汽车芯片的算力其实仅仅与 NVIDIA 2070、2080 相当,模型本身的容量也要比在服务器端的 A100 显卡上小很多。对于算法公司而言,由于数据饱和瓶颈的存在,存在边际效益递减的情况,使用千万公里的数据不会比使用百万公里的数据具有非常大的性能提升。此外,随着数据标注量的增加,新的极端情况会越来越少,数据标注的成本也会大大降低。「如何提升数据质量」、「如何更好地利用数据」是我们需要重点关注的问题。