本篇解读主要用于了解熟悉BEVFusion的算法原理,以及实验结论,并且总结一些自己在看完这篇论文的启发和想法。
Motivation
多传感器融合对于自动驾驶系统至关重要,近来的方法通常基于point-level fusion的方式,使用图像特征用于增强Lidar点云特征,然而这种camera-to-LiDAR的投影方式丢弃掉图像特征的semantic density特性,妨碍了这类方法在semantic-oriented任务中的性能。
Method
构建多任务-多传感器融合架构,在BEV空间中统一多模态特征,同时保留几何特征与语义特征。
提出高效BEV Pooling降低耗时,解决view transformation的技术瓶颈。
Contribution
- 针对view transformation的主要瓶颈,作者通过precomputation和interval reduction降低bev pooling耗时,相比于以往方法加速40倍以上;
- 打破以往认为point-level fusion性能最好的想法,可以作为sensor fusion研究的baseline;
Pipeline
首先,应用模态特定的encoders分别提取图像、Lidar点云对应的特征;
然后,将特征转换成统一的BEV表征;
为了避免不同特征之间的局部对齐误差,作者应用conv-based BEV encoder用于统一BEV特征;
最后,采用任务特定的head用于支持不同的3D任务。
统一表征
camera-to-bev 转换是实现多传感器融合的关键
LiDAR-to-BEV投影将稀疏的LiDAR特征沿着高度维度展开,因此没有导致几何特征损失。
camera-to-BEV
camera-to-BEV投影将每一个camera feature pixel投影回3D空间下的一个射线ray,从而构成密集的BEV特征图。
遵循LSS和BEVDet中预测图像中每一个像素的深度概率分布的方式,沿着相机光线将每个特征像素分散到D个离散点,并根据相应的深度概率对相关特征进行缩放,获取camera feature 点云的维度是,然后使用step size沿着x,y维度对图像点云进行量化,使用BEV pooling操作在每一个 BEV网格中聚合特征,然后沿着z轴将特征展开。
Efficient BEV Pooling
- 「Precomputation」: 特征点云的坐标是固定的,因此预先计算3D coordinate以及每一个点的BEV grid index,根据网格indices排序所有点并记录点的顺序。在推理过程中,仅需要根据预先计算的顺序对所有特征点进行排序。
- 「Interval Reduction」:实现并行的在BEV网格中计算的GPU kernel
全卷积-based Fusion
考虑到Lidar BEV特征和camera BEV特征之间会存在空间上的对齐误差,作者应用conv-based BEV encoder(with a few residual blocks)以弥补这种局部误差,降低潜在的depth estimation误差。
作者在此处提到使用GT depth用于监督view transformer可能会在未来工作中尝试。
Multi-Task Heads
文中应用task-specific heads,主要是3D object detection和BEV map segmentation任务。
Experiments
- 「Model」: 使用swin-T作为image backbone, VoxelNet作为LiDAR backbone, FPN用于聚合多尺度的1/8下采样率的图像特征。将图像特征下采样到,将Lidar点云使用0.75m(检测)体素化。
- 「Training」: 与将camera encoder固定(freeze)的方法不同,作者以端到端的方法训练整个模型,应用image和Lidar数据增强用于避免过拟合,使用AdamW weight decay 用于优化。
- 「Dataset」: 使用nuScenes评估这个方法。
3D Object Detection实验
- 「Setting」: 使用mAP和NDS作为检测评估指标,同样也衡量在RTX3900 GPU的single-inference MACs和latency
- 「Results」: 相比于TransFusion高出1.3%, 对比point-level fusion方法PointPainting和MVP 1.6x速度,1.5x MACs reduction以及3.8 higher mAP.
作者分析了weather and lighting, sizes and distances, sparse Lidars, multi-task learning等多种情况下BEVFusion性能。
结论
BEVFusion在共享的BEV空间下统一camera feature和Lidar点云feature, 为了实现camera-to-BEV转换的高效,文中提出实现并行计算的GPU kernel,将速度提升40倍。BEVFusion打破了以往将point-level fusion作为最佳解决方案的经验,并在3D检测和BEV segmentation均实现新SOTA。