Fast-BEV 是一种用于自动驾驶系统的先进技术,它专注于提高多摄像头图像到 3D bounding box 和速度预测的实时性能,本文记录相关内容。
简介
自动驾驶系统分为三个层级:感知层,决策层,执行层,快速且准确的感知系统,是自动驾驶技术的关键。
目前,基于纯相机的BEV视图展现出了不同于传统方法的巨大潜力:3D感知能力强,成本低,既可单独表达,也可同时处理多个任务。但目前大多数BEV方案占用资源大,或性能不佳。基于这些缺陷,一种Fast BEV框架被提出,它能够在车载芯片上执行更快的BEV感知。该算法可使Fast BEV在快速部署,快速运算的同时,还可以保证高性能。
近两年,BEV感知在自动驾驶领域里发展的如火如荼,从而受到了越来越多专业人士的关注。不过,大多数现有的BEV技术,例如基于transformer的BevFormer、基于深度转换的BevDepth等等,均对算力的要求颇高,尤其对于车载芯片Xavier, Orin, Tesla T4等来讲,多少有点吃不消。在Fast-BEV这篇论文论文中,作者提出了一种对车载芯片友好的且简单轻便的BEV新框架。
论文: https://arxiv.org/abs/2301.12511
代码: https://github.com/Sense-GVT/Fast-BEV
背景
对于自动驾驶来说,一个快速准确的 3D 感知系统是很有必要的。经典方法,例如:Pointpillars、Voxlnet等,强烈依赖基于激光雷达点云提供的准确3D信息。然而,激光雷达传感器通常要花费数千美元,为此在汽车上应用起来成本过高。最近基于纯相机的鸟瞰图 (BEV) 方法显示出了巨大潜力,它的3D感知能力不仅令人印象深刻,如图1所示,而且还可以极大地降低经济成本。BEV方法基本上遵循着如下范式:首先将多目环视相机的图像特征从二维图像空间转换至汽车坐标系下的三维BEV特征空间,然后采用特定的head结构应用于统一的BEV特征,以便执行定制的3D任务,统一的BEV特征可以高效且灵活的执行单个任务或同时执行多项任务,例如:3D 检测、分割等多种任务。
经典3D感知算法常需要依赖激光雷达传感器,通常价格十分昂贵。相比之下,基于纯相机的BEV途径3D感知能力强,成本低。BEV视图的转换途径为:将多摄像机的2D视图基于汽车为中心坐标,形成3D鸟瞰视图。现有的方法为基于查询的 transformation 方法和基于深度变换的方法。
这些方法通常需要难以加速的体素池操作,在不支持CUDA加速推理库的芯片上难以运行,并且运算耗时大。基于这些结构,本文提出了Fast-Ray转换,借助于“查找表”和“多视图到一个体素”操作,将BEV转换加速到一个新的水平。基于Fast Ray变换,论文进一步提出了Fast BEV,这是一种更快、更强的全卷积BEV感知框架,无需昂贵的视图transformer或深度表示。所提出的快速BEV包括五个部分,Fast-Ray变换、多尺度图像编码器、高效BEV编码器、数据增强和时间融合,这些共同构成了一个框架,赋予Fast BEV快速推理速度和有竞争力的性能。
方法
Fast BEV共分为5个模块:Fast-Ray转换器,多尺度图像编码器,高效BEV编码器,数据增强,时态融合变换器。
1.Fast-Ray转换器: 视图转换是将特征从2D图像空间转换到3D BEV空间的关键组件。这种方式优点是,一旦获得了相机的内在/外在参数,就可以很容易地知道2D到3D的投影。基于这一假设,本文从两个角度进一步加速该过程:预计算投影索引(查找表)和密集体素特征生成(多视图到一个体素)。
一般来说,从图像特征从二维图像空间投影至三维BEV体素空间会占据着大量的耗时,为此作者提出了两种优化手段来加速这个模块的计算:一是预计算一个固定的投影索引,构建出一个LUT查询表;二是将所有的相机图像特征一次性投影至同一个密集的BEV体素空间下,从来避免复杂的聚合操作。
在标定获取到每个相机的内参以及相机至车辆坐标系的外参后,可以很容易的计算出二维图像特征空间至三维BEV体素空间之间的投影关系,因为不像之前的DevDepth有依赖于深度预测结果和BevFormer的transformer模式造成的投影关系变动,为此可以把这种投影索引直接写死并存储下来,而不用每次推理时都重新计算索引。如图3所示,对三维BEV体素空间下的每一个体素,直接构建其与每一个相机索引及对应相机图像特征二维坐标系(x,y)之间投影关系。
在BevFormer中,每一个相机图像特征都会各自投影至一个稀疏的BEV体素空间里,为此便需要一个复杂的聚合操作来将多个不同的BEV体素空间集成到一起,见图4a所示。而Fast-BEV为了避免聚合这种复杂操作,则是将所有相机图像特征直接投影至同一个密集的BEV体素空间下,见图4b所示。这个加速投影便是通过上面构建的LUT表来完成的,多视图相机图像特征投影至同一个体素空间的过程如图所示。
2.多尺度图像编码器: 使用 fast-ray 转换器可将多张图像输入到图像编码器中,最终得到4级特征,然后在图像编码器输出部分采用了三层多尺度FPN结构。FPN的每一层通过1*1卷积,将以下层上采样后的相同大小的特征进行融合,最终得到F1=4;F1=8;F1=16 3级综合图像特征作为输出。
如下图所示,6张多目环视相机图像