BEV感知,是下一代自动驾驶感知算法风向吗?
1 背景
在现代自动驾驶任务中,决策规划模块依赖于多个感知、预测任务模块以提供充足的环境信息,其中感知任务不仅需要检测场景中的动态物体,还需要识别道路边界、人行横道、车道线、路标等静态元素。而预测任务需要系统能够推理其它动态物体的运动趋势,为决策提供信息依据,规划出道路从而避免碰撞。
目前业界基于纯视觉的感知、预测算法研究通常仅针对上述流程中的单个子问题的image-view方案,如3D目标检测、语义地图识别或物体运动预测,通过前融合或后融合的方式将不同网络的感知结果进行融合。这导致了在搭建整体系统时只能以线性结构堆叠多个子模块。尽管上述方式能够实现问题分解、便于独立的学术研究,但这种串行架构具有几个重要的缺陷:
(1)上游模块的模型误差会不断向下游传递,然而在子问题的独立研究中通常以真值作为输入,这使得累积误差会显著影响下游任务的性能表现
(2)不同子模块中存在重复的特征提取、维度转换等运算过程,但是串行架构无法实现这些冗余计算的共享,不利于提升系统的整体效率
(3)无法充分利用时序信息,一方面,时序信息可以作为空间信息的补充,更好地检测当前时刻被遮挡的物体,为定位物体的位置提供更多参考信息。另一方面,时序信息能够帮助判断物体的运动状态,在缺少时序信息的条件下,基于纯视觉的方法几乎无法有效判断物体的运动速度
区别于image-view方案,BEV方案通过多摄像头或雷达将视觉信息转换至鸟瞰视角进行相关感知任务,这样的方案能够为自动驾驶感知提供更大的视野并且能够并行地完成多项感知任务,那么BEV感知能够成为下一代自动驾驶感知算法风向吗?
2 BEV的发展历史
在BEV空间中,传统的BEV变换算法通常是在图像空间中进行特征提取,并产生分割结果,再利用逆透视变换(IPM)将其转化为BEV空间。
IPM的功能是消除视觉上的影响,比如,在自动/辅助驾驶中,因为在前视的照相机拍摄的图像中,原本平行的物体会因为透视的原因而发生交叉。
IPM是把影像与BEV空间连接起来的一种简便、直接的方式,要得到一幅影像的IPM,就必须了解摄像机的内参(焦距、光心)和外参(俯仰角、偏航角和地面高度)。在这个过程中,摄像机必须保持俯仰角,但这种约束太严格,难以在实际应用中得到满足。同时,由于参数的变化,会引起系统对物体的感知能力的变化,从而降低视觉质量,造成平行车道之间的夹角。
为减小俯仰角对视觉的影响,在改进后的算法中,采用了摄像机的实时位姿,并将俯仰校正添加到相邻的帧中,这样可以获得较好的逆变换效果,但由于实时位姿难以精确地获得,因而无法获得最理想的结果。
这两年BEV相关算法的发展让深度学习应用于BEV空间转换的方式逐渐成为主流。与以往的算法相比,利用神经网络进行二维BEV空间变换可以获得更好的视觉效果。
该方法主要流程是:首先利用主干网对各个摄像机进行特征提取,再利用Transformer等技术将多摄像机数据从图象空间转化为BEV空间。在BEV空间中,由于利用同一坐标系统,可以很方便地将Lidar、Radar等传感器数据与其他传感器数据进行融合,还可以进行时序融合形成4D空间,这也是当下BEV技术的大趋势。
3 BEV的优势
3.1 跨摄像头融合和多模态融合更易实现
传统跨摄像头融合或者多模态融合时,由于数据空间的差异,需要用很多后处理规则去关联不同传感器的感知结果,操作非常复杂。而在BEV空间内进行多摄像头或多模态融合后,再做目标检测、实例分割等任务,可以使算法的实现更加简单,也能更直观地显示出BEV空间中的物体大小和方向。
3.2 时序融合更易实现
在BEV空间中,可以很容易地实现时序信息的融合,从而构建一个4D空间。在4D空间内,感知算法能够更好地完成诸如速度测量等感知任务,并能将运动预测的结果传递到下游的决策和控制模块。
3.3 可“脑补”出被遮挡的目标
由于视觉的透视效应,现实世界的物体在2D图像中很容易受到其他物体的遮挡,因此,传统的基于2D的感知方式只能感知可见的目标,对于被遮挡的部分算法将无能为力。而在BEV空间内,算法可以基于先验知识,对被遮挡的区域进行预测,“脑补”出被遮挡的区域是否有物体。虽然“脑补”出来的物体固然有“想象”的成分,但对后续的控制模块来说,还是有不少益处。
3.4 端到端的优化更加容易
在传统感知任务中,识别、跟踪和预测更像是个“串行系统”,系统上游的误差会传递到下游从而造成误差累积,但在BEV空间内,感知和预测都是在一个统一的空间中进行的,因此,可以通过神经网络直接做端到端优化,“并行”出结果,这样既可以避免误差累积,又可以极大地降低算法逻辑的影响,让感知网络能够以数据驱动的方式来自学习,进行更好的功能迭代。
4 BEV感知,是下一代自动驾驶感知风向吗?
回到本文开头的问题,BEV感知能够成为下一代自动驾驶感知算法风向吗?通俗的讲,BEV感知相当于给自动驾驶开启了“上帝视角”,能够让车辆无遮挡的“看清”道路上的实况信息,在BEV视角下统一完成感知和预测任务。
在传统的image-view方案中,3D目标检测、障碍物实例分割、车道线分割、轨迹预测等各项感知任务互相分离,使得该方案下的自动驾驶算法需要串联多个子模块,极大增加了算法的开发、维护成本。而BEV感知能够让这些感知任务在一个算法框架上实现,大大减少人力需求。
综合前文所述的BEV优势,当下不少的研究机构和各大车企都在推动BEV方案的落地,基于来自传感器输入层、基本任务和产品场景的不同组合,可以给出相应的BEV算法,例如,M2BEV和BEVFormer属于纯摄像机路线的算法,从多个摄像机获取图像信息来执行多种任务,包括3D目标检测和BEV地图分割等。BEVFusion设计了一个BEV空间的多模态融合策略,同时使用摄像机和LiDAR作为输入完成3D检测和跟踪任务。特斯拉发布了其系统化的pipeline,在矢量空间(BEV)中检测物体和车道线,用于二级公路导航和智能召唤。
可以肯定的是,BEV感知算法能够更好地融合多传感器的特征,提高感知和预测的准确率,在一定程度上可以提升自动驾驶技术。
BEV感知是否能够成为自动驾驶的“答案”还有待时间验证。而在刚过去不久的特斯拉AI Day2022中,特斯拉提出的Occupancy Network在BEV的基础上加上了Z轴的信息,引入的occupancy grid可以用于表示任意形状的物体和任意形式的物体运动。Occupancy Network是否又能将自动驾驶带到一个新的高度?我们将在后续系列的推文中介绍并一起探讨关于特斯拉的自动驾驶解决方案。
BEV感知,是下一代自动驾驶感知算法风向吗?相关推荐
- 代季峰对话张祥雨 | 自动驾驶感知新时代!新一代环视感知算法BEVFormer有哪些优势...
导读:Elon Musk说过,"人类不是超人,也不是蝙蝠侠,不能够眼放激光,也不装有雷达,但是通过眼睛捕捉到的图像,人类依旧可以构建出对周围世界的3D空间理解能力,从而很好地掌握驾驶这项能力 ...
- 《自动驾驶感知算法实战专栏(源代码)》专栏概述
导言 自动驾驶太火?高薪?跃跃欲试,又仅存于想的阶段.动起来,只是看理论,却总也学不会?看不懂,又总没有进度?如果你也有这类问题,那你来看看这个专栏.以实际项目为导向,亲自动手实践,从简单的图像分类. ...
- 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)
自动驾驶感知系统实现(车道线检测和拟合.目标检测与跟踪.道路可行驶区域分割.深度估计.图像视野到BEV空间映射.像平面到地平面映射) 项目下载地址:项目下载地址 推理引擎下载地址:推理引擎下载地址 支 ...
- 新加坡内推 | Motional新加坡分部招聘自动驾驶感知算法实习生
合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! Motional 美国自动驾驶独角兽 Motional 新加坡分部.团队代 ...
- 自动驾驶感知算法实战11——多传感器融合感知方案详解
自动驾驶感知算法实战专栏:https://blog.csdn.net/charmve/category_12097938.html 目录 1 何为多传感器融合? 2 多传感器融合的优势 3. 多传感器 ...
- 自动驾驶感知算法实战3——自动驾驶2D和3D视觉感知算法概述
自动驾驶感知算法实战专栏:https://blog.csdn.net/charmve/category_12097938.html 目录 导读 一.2D视觉感知 1. 目标检测 1.1 两阶段检测 1 ...
- 地平线:上帝视角与想象力——自动驾驶感知的新范式
导读 3月28日,在「地平线自动驾驶技术专场」上,地平线自动驾驶系统架构师刘景初博士围绕<上帝视角与想象力--自动驾驶感知的新范式 >这一主题进行了直播讲解. 本次课程主要分为以下4个部分 ...
- Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)
文章目录 1. 感知的作用 2. 常见传感器 2.1 相机 2.1.1 相机的种类 2.1.2 相机的特点 2.2 激光雷达 2.2.1 激光雷达系统构成与方案 2.2.2 激光雷达光源 2.2.3 ...
- 自动驾驶感知——环境感知的基本概念
文章目录 1. 智能汽车概述 1.1 汽车新四化 1.2 智能网联汽车 1.3 SAE J3016自动驾驶分级标准 2. 环境感知定义 2.1 智能网联汽车系统架构 2.2 环境感知定义及对象 3. ...
最新文章
- java点到直线的投影点到经纬度_12分高考答题必刷题型,“空间向量分析点到线的距离问题”...
- import导入工程时出现error:Description	Resource	Path	Location	Type Target runtime com.genuitec.runtime.gener
- java可变长字符串_具有可变长度的scala字符串插值
- 王道408数据结构——第二章 线性表
- 如何设计一个安全对外的接口
- 浅谈Oracle绑定变量
- ping下主服务器mysql_mysql主从同步配置
- tcpdump抓两个网卡的包_Linux下网络抓包命令tcpdump详解(在wireshark中看包)
- dubbo 分布式服务框架 介绍
- Android实现圆角和圆形
- 射频芯片,最全介绍!
- 腾讯云联手腾讯安全玄武实验室,提供「应用克隆」漏洞免费检测服务
- Redis淘汰机制(Eviction policies)
- discuz X3.2最新20141225安装包uc_server不能登陆问题(包括升级后)
- 数学文化/数据结构知识题
- 在线 Beosin EOS-IDE 免费版本同时支持智能合约在线编辑、编译、运行调试、部署
- 安卓培训机构排名!这篇文章可以满足你80%日常工作!跳槽薪资翻倍
- 海康威视NVR获取网络摄像头报警信息 C++ 实现
- Java多线程编程(四)——死锁问题
- 全球区块链第9周看点 | 以太坊君士坦丁堡/圣彼得堡硬分叉正式完成;纳斯达克正式上线BTC和ETH指数...