零、简单了解下BEVFusion
-
BEV 与 Fusion 与 MIT-BEVFusion
-
BEV:Bird’s-Eye View鸟瞰图
-
Fusion: 多传感器不同模态输入,进行融合
-
-
BEVFusion: 使用了多个传感器特征,并统一的融合在BEV中表示的一类方法。没有特殊剧情的情况下,本文出现BEVFusion时,特指MIT的BEVFusion。
-
MIT-BEVFusion: 特指MIT提供的BEVFusion融合方案,2022年5月26日发布的论文,是一个多任务多传感器融合框架。
-
CUDA-BEVFusion: 英伟达发布的部署MIT-BEVFusion的方案,以惊人的25FPS同时保持67.66的高精度mAP运行在Orin上。
-
-
- 动画理解: 多传感器不同模态输入,进行融合。点击观看
- 动画理解: 多传感器不同模态输入,进行融合。点击观看
一、BEVFusion所需条件
-
软、硬件条件
- 显卡尽量不要低于3090显卡性能。
- NVIDIA的Lidar_AI_Solution中CUDA-BEVFusion要求如下:
-
知识储备
- MIT-BEVFusion部分: python基础 以及 一点点想象力
- 量化、onnx导出: 量化基础、onnx.helper、钩子函数
- TensorRT: TensorRT、C++、CUDA基础
二、为什么要了解BEVFusion
2021 年是自动驾驶开启商业化的元年,自动驾驶进入商业化探索的快车道,主要的国家加快政策法规突破以促进自动驾驶商业化。(来源:中国信息通信研究院和人工智能与经济社会研究中心)。一系列因素都促使学界、工业界不断探索,加速落地。
2.1 技术上,它是自动驾驶领域比较热门的路线之一
特斯拉代表的纯视觉方案,在自动驾驶领域独树一帜。
BEVFusion属于配备了多种传感器,使用多种传感器融合的自动驾驶系统方案,也同样极具竞争力。
- 简单了解下多种传感器融合的方案的特点。
-
- 1)多个传感器优势互补
- 例如,Waymo的自动驾驶车辆有29个摄像头,6个雷达,和5个激光雷达。不同的传感器提供互补的信号。
- 下方是MIT-BEVFusion使用的多个传感器及网络
- 下方是MIT-BEVFusion使用的多个传感器及网络
- 例如,Waymo的自动驾驶车辆有29个摄像头,6个雷达,和5个激光雷达。不同的传感器提供互补的信号。
- 1)多个传感器优势互补
-
- 2)多模态的特征统一表示
- 对于多传感器,找到一个适用于多任务多模态特征融合的统一表示很重要。来自不同传感器的数据以根本不同的方式表示。例如,摄像头以透视视图捕捉数据,而激光雷达以3D视图捕捉数据。为了解决这种视图差异,我们必须找到一个适用于多任务多模态特征融合的统一表示。
- 2)多模态的特征统一表示
2.2 车企在研、在用的算法。
- 国内在搞BEV的有造车新势力:小鹏、蔚来、理想等,科技公司:百度、华为、毫末智行等。
- 小鹏BEV感知技术架构XNet以视觉为主、以雷达为辅。
- 蔚来已经推送的Banyan2.0.0版本,切换为了BEV架构。
2.3 MIT-BEVFusion提供新范式
-
- 高效通用的多任务多传感器融合框架,能够在共享的鸟瞰视图表示空间中统一多模态特征。这个融合框架保留了几何和语义信息,并且能够在极小的架构变动下支持不同的3D感知任务,在nuScenes基准测试上确立了新的最先进性能。
-
- 结果展示–来源https://hanlab.mit.edu/projects/bevfusion 见网页Poster海报链接
- 结果展示–来源https://hanlab.mit.edu/projects/bevfusion 见网页Poster海报链接
-
- 更加贴近工程的BEV融合算法
-
- MIT-BEVFusion的架构的允许通过定制网络的“head”来适应不同的任务。
2.4 MIT-BEVFusion NVIDIA提供成熟部署方案
BEVFusion部署十分困难。NVIDIA官方实现并开源了BEVFusion部署方案,在保证高精度的同时,能够达到25FPS。
- 难点
- backbone的选择
- 稀疏卷积onnx导出onnx、推理复杂。
- transformer结构带精度问题–decode导出要使用FP16精度。
- bevpool部署实现的选择。
- 量化的技巧