自动驾驶-BEV感知综述

BEV感知综述

随着自动驾驶传感器配置多模态化、多源化,将多源信息在unified View下表达变得更加关键。BEV视角下构建的local map对于多源信息融合及理解更加直观简洁,同时对于后续规划控制模块任务的开展也更为方便。BEV感知的核心问题是:

  • 如何利用缺失3D信息的PV视角来构建BEV视角;
  • 如何获取BEV表达下的真值标注;
  • 如何有效融合不同模态及视角的传感器数据;
  • 不同车型、场景下传感器配置各不相同,如何能够实现Onetrack的能力;

本文回溯了近期BEV感知领域的最新进展,并对各类解决方案进行了深入分析。对于工业界流行的解决方案也进行了详细的阐述,并指明了未来该领域的研究方向。以期更多的研发资源能够推动该领域快速发展。

自动驾驶感知模块的任务就是对物理世界的3D重建。随着智驾车辆传感器配置多样化丰富化,BEV对于多源多视觉信息的汇聚融合具有天然的优势。BEV视角下解决了2D前视视角存在的遮挡、尺度等问题,同时动目标、地图要素等可直接用于下游的规划和控制模块。

  • BEV Camera:纯视觉;
  • BEV LiDAR:激光;
  • BEV Fusion:多传感器,包括视觉、激光、轮速、IMU等;

BEV感知研究动机

重要性

目前Nuscence和Waymo数据集的排行榜可知,视觉相比激光仍然存在20-30%的差距,那纯视觉的效果能否追平甚至超越激光的效果呢?这个问题对于学术界,是如何将2D的视觉信息像LiDAR一样精确的转换到BEV空间中;而对于工业界来说,相机相比LiDAR具有更低的成本,且在远处更稠密更丰富的纹理信息。另外一个问题是如何融合两种传感器的优势,形成更为强大的融合结果。

空间

对于激光传感器易获得深度信息,而对于单目相机要获得深度信息是非常挑战的任务。如何对多模态数据进行融合,包括前融合、后融合等,其中后融合阶段来自于视觉和激光的深度信息误差或配准都会导致性能降低。

准备度

当前公开的数据集是否能够支撑BEV感知的进一步研究?在数据集方面:Nusence及Waymo数据集提供了高质量的标注及多模态数据对齐,非常利于BEV感知研发的开展。同时leadboard也给大家听了同台打擂的机会。在算法方面:通用视觉领域已经突飞猛进,Transformer、ViT、CLIP等均有优异的表现。

贡献

  • 回溯了今年BEV感知研发的进展,包括宏观的架构及方法的细节讨论;
  • 综合分析了各个方面,包括depth estimation、View transformation、sensor fusion、domain adaptation等;
  • 除理论基础外,还提供了提升BEV感知的实践指导手册;

评价标准

BEV感知方法介绍

BEV Camera

在这里插入图片描述

纯视觉3D感知最初的任务是如何从PV视角预测Object的位置,因为基于PV的检测任务已经成熟,所以核心任务就成了如何在2D检测能力基础上增加3D场景的认知能力。之后为了处理在3D空间Oject的Size保持一致,而在image中会随着距离远近而变化的问题,研究者引入了BEV的表达形式加以解决;通常采用了深度预测及先验信息假设(地面、触地点)等手段来弥补image的3D信息缺失。近期BEV感知进展已经极大的推动了3D感知问题的发展,主要原因包括:

  1. 高质量数据集的出现,比如Nuscence multi-camera的配置非常适合在BEV空间下进行multi-view特征的聚合;
  2. 纯视觉BEV任务借鉴了很多LiDAR在检测头和LOSS函数设计方面的优秀实践;
  3. 单目视觉的PV视角任务经历了蓬勃发展,这些进展在BEV任务中的落地也推动了BEV任务的性能表现;

BEV Lidar

雷达BEV感知

在这里插入图片描述

  • preBEV
  • postBEV

点云是在连续3D空间采集到的数据,而在3D连续空间计算点与点见的相对位置关系存在着算力和感受野受限等关键问题。近期研究利用离散的grid数据来表示原始点云数据;然后使用卷积操作在grid表达上进行卷积操作,然而原始点云被表达为grid的形式难以避免信息的丢失。SOTA的pre-BEV方法借住高分辨率的Voxel size能够尽可能保留原始点云中的信息,从而在3D检测任务中取得了不俗的表现。高分辨率Voxel size也伴随着高算力和高存储的问题。直接将原始点云转到BEV空间避免了3D空间的卷积操作,但是丢失了大量高维信息,最高效的方式是将原始点云通过统计的方式表达为featrue map,获得不是最优但是可以接受的性能表现。pillar-base方法很好的平衡了效果和算力,在商用落地上优势明显。因此在效果和效率的trade-off上是lidar bev感知的核心问题。

BEV Fusion

雷达BEV感知

在这里插入图片描述

在这里插入图片描述

雷达BEV感知

如上图,各模态在独自的模态上进行特征提取的工作,然后各自模态下的feature map转换到BEV空间下进行融合,这块可以参考 BEVFusion ;还有一种实现路径是将视觉PV信息先提升到Voxel下的feature map,然后和激光的Voxel下feature map进行融合,这类的方法可以参考 UVTR 。进一步可以考虑自车的运动信息实现时域维度的融合,更好的速度预测及遮挡场景下的检测效果。在Temporal上的融合可以参见 BEVDet4D BEVFormer

图像是PV坐标系,而点云是3D坐标系,因此对齐两种模态的数据是关键环节之一。虽然点云数据通过相机投影模型很容易转换到图像PV坐标系下,但是点云的稀疏性使得紧靠点云单独提取有价值的feature变得困难;反过来由于图像PV数据缺少深度信息,将PV观测转到3D空间也是一个病态的问题。针对这一问题,已有的研究,包括IPM、LSS等,正在构建将图像PV数据转换为BEV空间的方法,使得多模态、时间、空间的融合成为了可能。

融合视觉和激光各自传感器优势,显著提升了3D感知任务的优势。融合框架同时保留了传感器件的独立性,不在依赖于单一器件,因此整个感知系统的鲁棒性也得到了增强。对于时域的融合,BEV空间的feature map具有尺度一致性,可以通过自车的运动补偿实现时域融合。因此考虑到鲁棒性和尺度准确性,BEV成为了一个感知结果表达的理想空间。

BEV感知商用落地

雷达BEV感知

在这里插入图片描述

商用的感知系统最初常用a图方式,即pv先出感知结果,然后转换到bev空间下与激光的结果进行后融合操作;显著已经发展为了b图的形式,即pv出featuremap,然后转换到bev空间下进行featuremap融合,进而执行检测任务,也就是所谓的前融合。

经验谈

Data Augmentation

  1. 视觉:color jitter, flip(包含了image的和bev两种空间下的翻转), resize, rotation, crop, and Grid Mask;
  2. 激光:random rotation, scaling, flipping, and point translation、Painting( Point-Painting )、temporal;

BEV Encoder

参考以下两种视觉和激光的典型BEV方法:

  • BEVFormer++
  • Voxel-SPVCNN

LOSS

对于视觉来说,可以综合运用目标检测的2D和3D的loss设计来训练模型;此外还可以使用深度监督信息( BEVDepth ),以提升3D检测的精度。通常2D的目标检测和单目深度估计会直接使用SOTA的预训练模型。对于激光来说,会联合使用 cross-entropy loss Geo loss Lovász loss 来提升检测效果;

总结

综合以上,未来BEV感知的主要研究方向包括:

  1. 如何设计一个精确的深度估计器;
  2. 如何融合来自多模态多视角的传感器数据的feature map;
  3. 如何实现模型对传感器安装位置无感,实现onetrack的部署能力;
  4. 如何将foundation model的成功经验(大模型、多任务)复制到bev感知领域上;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/146014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞书开发学习笔记(八)-开发飞书小程序Demo

飞书开发学习笔记(八)-开发飞书小程序Demo 一.小程序开发概述 1.1 小程序开发概述 飞书开发文档中查看:小程序开发概述 飞书小程序是指可以运行在飞书客户端中的小程序,小程序的一套代码可以适配 Android、iOS、PC 多平台,且用户体验与飞书…

VUE基础的一些实战总结

目录 创建一个 Vue 应用 步骤 1:安装 Node.js 和 npm 步骤 2:安装 Vue CLI 步骤 3:创建 Vue 项目 步骤 4:启动开发服务器 步骤 5:访问应用程序 步骤 6:编辑 Vue 应用 步骤 7:构建和部署…

python3.8 安装 ssl 模块 和 _ctypes 模块

这文章目录 前情提要安装 openssl-1.1.1重新编译安装 python3.8-rpath 编译选项介绍python3.8 跟 python3.10 的区别那要怎么解决这个问题呢,我想到有四种解决方案: 前情提要 我在之前给 python3.10 安装 ssl 模块后以为该步骤 “对于 python3.6、pytho…

uniapp使用Canvas实现电子签名

来源: 公司的一个需求,需要给新注册的会员和客商需要增加签署协议功能; 之前的思路: 1、使用vue-signature-pad来实现电子签名,但是安卓手机不兼容; 2、uniapp插件市场来实现,但是对HBuilderX…

【MMC/SD/SDIO】读写操作

SD 总线是基于命令和数据流,它们由一个开始 Bit 发起,由一个停止 Bit 结束。 Command:命令开始一个操作。命令由 Host 驱动,或者给单卡(寻址命令),或者给所有连接的卡(广播命令&…

【Linux网络】工作环境救急——关于yum安装的5个花式操作

目录 1、只下载不安装,离线安装软件 2、自行打包创建元数据 第一步:先准备好nginx的软件包,放在一个文件夹下 第二步:在本地下载createrepo命令软件,用于创建元信息,这个一定是对包的上一级目录使用命令…

【Android】导入三方jar包/系统的framework.jar

1.Android.mk导包 1).jar包位置 与res和src同一级的libs中(没有就新建) 2).Android.mk文件 LOCAL_STATIC_ANDROID_LIBRARIES:android静态库,经常用于一些support的导包 LOCAL_JAVA_LIBRARIES:依赖的java库,一般为系统的jar…

【MySQL学习笔记-001】- 创建表、插入数据、查看数据库结构

创建employees表 当创建一个表时,需要指定表的名称和每个列的名称和数据类型。以下是一个示例SQL语句,用于创建一个名为"employees"的表,其中包含员工ID、姓名、职位和工资等列: CREATE TABLE employees (employee_id…

PCA降维Python demo

读这篇15年CVPR的文章🤣🤣🤣🤣🤣 inproceedings{liu2015sparse,title{Sparse convolutional neural networks},author{Liu, Baoyuan and Wang, Min and Foroosh, Hassan and Tappen, Marshall and Pensky, Marianna},…

相机突然断电,保存的DAT视频文件如何修复

3-7 本文主要解决因相机突然断电导致拍摄的视频文件损坏的问题。 在平常使用相机拍摄视频,比如用单反相机、无人机拍摄视频的时候,如果电池突然断电,或者突然炸机了,就非常有可能会得到一个损坏的视频文件,比如会产生…

【Vue配置项】 computed计算属性 | watch侦听属性

目录 前言 computed计算属性 什么是计算属性? Vue的原有属性是什么? 得到的全新的属性是什么? 计算属性怎么用? 计算属性的作用是什么? 为什么说代码执行率高了? computed计算属性中的this指向 co…

Express.js 与 Nest.js对比

Express.js 与 Nest.js对比 自从 Node.js 发布以来,Javascript 在后端领域的使用有所增加。由于 Node.js 的使用越来越多,每天都会有新的框架和工具发布。Express 和 Nest 是使用 Node.js 创建后端应用程序的最著名的框架之一,在本文中&…

【前段基础入门之】=>CSS3新特性 响应式布局

文章目录 概念媒体查询媒体类型媒体特性媒体运算符 概念 所谓对响应式布局方案的理解,众说纷纭,核心点就是同一套代码在不同尺度屏幕下的布局呈现方式的不同 社区中有很多人分享,并列出了多种实现响应式布局的方案,比如【 rem&…

基于ssm+vue员工工资管理系统

基于ssmvue员工工资管理系统 摘要 随着信息技术的不断发展,各行各业对于高效管理和利用数据的需求也日益增长。员工工资管理系统作为企业管理中的一个重要组成部分,对于实现工资信息的精确计算、及时发放和有效管理具有重要意义。本文基于SSM&#xff08…

消息中间件概述

概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如ActiveMQ、RabbitMQ,Kafka,还有阿里…

Word文档处理:用Python轻松提取Word文档图文数据

将内容从Word文档中提取出来可以方便我们对其进行其他操作,如储将内容存在数据库中、将内容导入到其他程序中、用于AI训练以及制作其他文档等。使用Spire.Doc for Python提供了一个简单的方法直接提取Word文档中的文本内容,包括文本和图片,而…

【Linux】重定向|重新理解Linux下一切皆文件

文章目录 一、什么是重定向输出重定向的原理认识一下输出重定向的系统调用输出重定向的另外写法 二、浅谈输入重定向三、重定向和进程替换有冲突吗四、Linux下一切皆文件总结 一、什么是重定向 理解重定向之前:先理解一个叫做文件描述符的具体操作。 文件描述符&a…

【Qt之QWizardPage】使用

介绍 QWizardPage类是向导页面的基类。 QWizard表示一个向导。每个页面都是一个QWizardPage。当创建自己的向导时,可以直接使用QWizardPage,也可以子类化它以获得更多控制。 页面具有以下属性,由QWizard呈现:a title,…

JVM虚拟机-虚拟机执行子系统-第6章 字节码指令

字节码指令 Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需的参数(称为操作数,Operand)构成。 字节码与数据类型 在Java虚拟…

uni-app 蓝牙打印, CPCL指令集使用

先上代码: GitHub - byc233518/uniapp-bluetooth-printer-demo: 使用uniApp 连接蓝牙打印机 Demo, CPCL 指令简单实用示例 (内含 芝珂,佳博,精臣 多个厂家指令集使用文档) 文件结构: ├── App.vue ├── CPCL 指令手册.pdf // 指令集参考手册 ├── LICENSE ├── R…