来源:技术饭
编辑:郑欣欣@一点人工一点智能
00 摘要
自动驾驶系统分为三个层级:感知层,决策层,执行层,快速且准确的感知系统,是自动驾驶技术的关键。
目前,基于纯相机的BEV视图展现出了不同于传统方法的巨大潜力:3D感知能力强,成本低,既可单独表达,也可同时处理多个任务。但目前大多数BEV方案占用资源大,或性能不佳。基于这些缺陷,一种Fast BEV框架被提出,它能够在车载芯片上执行更快的BEV感知。该算法可使Fast BEV在快速部署,快速运算的同时,还可以保证高性能。
论文:https://arxiv.org/abs/2301.12511
代码:https://github.com/Sense-GVT/Fast-BEV
01 背景
经典3D感知算法常需要依赖激光雷达传感器,通常价格十分昂贵。相比之下,基于纯相机的BEV途径3D感知能力强,成本低。BEV视图的转换途径为:将多摄像机的2D视图基于汽车为中心坐标,形成3D鸟瞰视图。现有的方法为基于查询的transformation方法和基于深度变换的方法。
这些方法通常需要难以加速的体素池操作,在不支持CUDA加速推理库的芯片上难以运行,并且运算耗时大。基于这些结构,本文提出了Fast-Ray转换,借助于“查找表”和“多视图到一个体素”操作,将BEV转换加速到一个新的水平。基于Fast Ray变换,论文进一步提出了Fast BEV,这是一种更快、更强的全卷积BEV感知框架,无需昂贵的视图transformer或深度表示。所提出的快速BEV包括五个部分,Fast-Ray变换、多尺度图像编码器、高效BEV编码器、数据增强和时间融合,这些共同构成了一个框架,赋予Fast BEV快速推理速度和有竞争力的性能。
02 途径
BEV感知中最重要的是如何将2D特征转移到3D空间。基于查询的方法通过变换器中的注意力机制获得3D BEV特征,表达公式如下:
基于深度的方法通过计算2D特征和预测深度的外积来获得3D BEV特征,表达方式如下:
{
}
该方法在非GPU平台上运行不佳,基于此,本文提出了基于射线投影的快速射线转换方法,借助查找表和多视图到一体素操作,在GPU平台上实现了极高的2d到3d推理速度。此外,由于其标量索引的高效率,在CPU平台上运行时,它仍然具有优于现有解决方案的速度性能。这使得它可以转移到更多的平台上。
如下图所示,Fast BEV共分为5个模块:Fast-Ray转换器,多尺度图像编码器,高效BEV编码器,数据增强,时态融合变换器。
1)Fast-Ray转换器:视图转换是将特征从2D图像空间转换到3D BEV空间的关键组件。这种方式优点是,一旦获得了相机的内在/外在参数,就可以很容易地知道2D到3D的投影。基于这一假设,本文从两个角度进一步加速该过程:预计算投影索引(查找表)和密集体素特征生成(多视图到一个体素)。
2)多尺度图像编码器:使用fast-ray转换器可将多张图像输入到图像编码器中,最终得到4级特征,然后在图像编码器输出部分采用了三层多尺度FPN结构。FPN的每一层通过1*1卷积,将以下层上采样后的相同大小的特征进行融合,最终得到F1=4;F1=8;F1=16 3级综合图像特征作为输出。
3)高效BEV编码器:BEV作为4D张量需要大量计算,可使用三位缩减操作加快其运算速度,从而避免3D卷积占用大量内存。此外,BEV编码器的块数和3D体素分辨率的大小对性能影响相对较小,但占用了较大的速度消耗,因此更少的块和更小的体素分辨率也更为关键。
4)数据增强:本研究为图像空间和BEV空间添加了数据增强。如果对图像应用数据增强,还需要改变相机固有矩阵。对于增强操作,基本上遵循常见的操作,例如翻转、裁剪和旋转。BEV增强变换可以通过相应地修改相机外部矩阵来控制。
5)时态融合变换器:本研究将历史帧引入到当前帧中以进行时间特征融合。通过空间对齐操作和级联操作,将历史帧的特征与当前帧的对应特征融合。时间融合可以被认为是帧级的特征增强,在一定范围内较长的时间序列可以带来更多的性能增益。
03 验证
该Fast BEV模型在nuScenes数据集上进行验证,该数据集包含1000个自动驾驶场景,每个场景20秒。
和主流方法的Latency进行比较,结果如下图:
Fast BEV、BEVDet4D和BEVDepth方案的端到端延迟比较,结果如下图:
04 结论
经测试,Fast BEV有着以下优势:可在使用低计算能力芯片进行部署,可在非GPU芯片上部署,扩展能力强。随着技术的发展,许多自动驾驶制造商已经开始放弃激光雷达,只使用纯视觉进行感知。在实际开发中,模型放大或数据放大通常基于从真实车辆收集的数据,以利用数据潜力提高性能。在这种情况下,基于深度监控的解决方案遇到瓶颈,而Fast BEV不引入任何深度信息,可以更好地应用。