首页 > 其他分享 ># 基于BEV的自动驾驶会颠覆现有的自动驾驶架构吗

# 基于BEV的自动驾驶会颠覆现有的自动驾驶架构吗

时间:2024-03-25 10:45:43浏览次数:32  
标签:融合 驾驶 自动 模块 感知 BEV

基于BEV的自动驾驶会颠覆现有的自动驾驶架构吗

image

引言

很多人都有这样的疑问--基于BEV(Birds Eye View)的自动驾驶方案是什么?这个问题,目前学术界还没有统一的定义,但从我的开发经验上,尝试做一个解释:以鸟瞰视角为基础形成的端到端的自动驾驶算法和系统

感知模块是最为重要的自动驾驶模块之一,也是最为复杂的模块。一般的感知模块包含障碍物目标检测,车道线语义分割,可行驶区域分割等等。在BEV出现之后,整个自动驾驶感知模块趋向形成统一,简洁,高效的端到端结构。不光是感知模块,基于BEV进行的规划决策也是学术界研究的方向。下面将结合几篇顶会论文来看BEV给自动驾驶技术带来的改变。

BEV统一了多模态数据融合的尺度

典型论文:HDMapNet: A Local Semantic Map Learning and EvaluationFramework

自动驾驶感知模块中对是否要使用激光雷达的问题分成了两派。一种是坚定的纯视觉技术路线,比如特拉斯等。还有一种是国内的多传感器数据融合路线。在没有接触到BEV之前,我是坚定的纯视觉路线的拥护者,但是在研究了一些论文后,我的观点逐步改变。传感器融合路线的机会在前融合或者中融合层面,而目前市面上的多模态数据融合方案多为后融合或者结果层面的融合(补充链接:多模态数据融合的几种方式)。就是在生硬的融合方式下,各个传感器的缺点形成了木桶效应。

image

BEV的出现给多模态数据提供了一个统一尺度的可能,比如在HDMapNet论文中,主要目的是基于多模态数据采集制作低廉高效的高精地图。作者设计了多传感器的动态可插拔结构。把所有传感器的数据或特征统一到BEV视角下,这样的统一尺度理论上来说天然成立。减少传感器会影响检测的效果,但是不会影响感知系统的可使用性,是1+1>2的正向结果。

image

BEV带来了简洁高效的感知模块

典型论文:FIERY: Future Instance Prediction in Bird’s-Eye View from Surround Monocular Cameras

现有的自动驾驶感知模块中,包含了2d/3d目标检测,语义分割,全景分割,多目标跟踪,轨迹预测等。整个感知模块是又臭又长,需要的算法开发/算法维护/模型迭代等人员数量众多。而BEV的出现,让更加简洁高效的感知模块成为可能。

image

fiery的论文和代码有幸研究了一段时间,结构设计的巧妙和统一任务的架构一下子打开我新世界的大门。这篇文章使用的传感器只有摄像头,也就是纯视觉方案。fiery是在lift论文的基础上进行的改进,这篇论文将多个相机数据通过神经网络进行了基于BEV的投影。在一个算法框架下实现了3d目标检测(无高度h),障碍物实例分割,车道线分割,可行驶区域分割,多目标跟踪,障碍物轨迹预测的功能。维护上述模块可能要大几十的团队,但是现在维护fiery可能十多人就够了(我离失业越来越近了,哈哈)。这篇文章的缺点是耗时太长(8fps),主要是用于未来轨迹预测的GRU网络部分,要3帧一起输入网络。

image

BEV促进端到端的自动驾驶框架发展

典型论文1:MP3: A Unified Model to Map, Perceive, Predict and Plan

典型论文2:SelfD: Self-Learning Large-Scale Driving Policies From the Web

从apollo等开源的自动驾驶框架上看,自动驾驶技术常被分为感知模块,预测模块,规划决策模块,控制模块等。各个模块通过消息机制或者共享内存的方式进行交互,保持相对的独立。此外这样的架构虽顺应了当下的自动驾驶技术发展,但不一定就是合理的,比如强解耦造成的鲁棒性变差等问题。无论是工业界和学术界都在期盼一个端到端的自动驾驶框架的出现。

image

BEV下的自动驾驶技术发展很可能就是端到端的自动驾驶框架的契机。

SelfD里作者利用BEV视角统一了大量行车视频的数据尺度,并进行了规划和决策模块的模型学习。

image

MP3中,将地图,感知,预测和规划设计成一个统一模块,形成了一个接近端到端的自动驾驶框架。

image

BEV的药引子--ViT(vision transform)

典型论文:Cross-view Transformers for real-time Map-view Semantic Segmentation

2022年ViT(vision transform)如何应用在自动驾驶任务上?

经过上面几个层次的分析之后,你是否看到了BEV自动驾驶方案的未来了呢?在我看来BEV技术是形成端到端自动驾驶框架的契机,但是还需要一个药引子——ViT(vision transform)。传统的卷积神经网络在不同尺度/类型的特征的融合上,处理困难(序列特征需要rnn系列,空间特征需要cnn)。但是端到端的自动驾驶框架恰恰就需要融合不同种类的,比如将序列特征和空间特征的融合。来自NLP领域的attention机制提供多类型特征编码融合的统一方法。

cross-view transformers的方法是针对纯视觉多视角下的地图生成和障碍物感知任务,设计一个有效的注意力机制网络。直白点就是用于BEV地图生成和障碍物感知的注意力机制网络。目前代码已经开源,从论文公布的结果看,无论在精度还是速度上都达到SOTA。

image

总结

据我的了解,目前已经有很多公司启动了基于BEV的自动驾驶框架研发。这两年的顶会论文上看,这个方案下的相关技术会越来越成熟,廉价的自动驾驶技术方案离我们越来越近了。最后,如果真的如预期这样发展,现在的自动驾驶求职热潮可能会带来以后的自动驾驶裁员热潮。

附赠自动驾驶学习资料和量产经验:链接

标签:融合,驾驶,自动,模块,感知,BEV
From: https://www.cnblogs.com/autodriver/p/18093734

相关文章

  • 无人驾驶中的坐标转换
    无人驾驶中的坐标转换无人车上拥有各种各样的传感器,每个传感器的安装位置和角度又不尽相同。对于传感器的提供商,开始并不知道传感器会以什么角度,安装在什么位置,因此只能根据传感器自身建立坐标系。无人驾驶系统是一个多传感器整合的系统,需要将不同位置的传感器数据统一到一个固......
  • 基于R语言的GD库实现地理探测器并自动将连续变量转为类别变量
      本文介绍基于R语言中的GD包,依据栅格影像数据,实现自变量最优离散化方法选取与执行,并进行地理探测器(Geodetector)操作的方法。  首先,在R语言中进行地理探测器操作,可通过geodetector包、GD包等2个包实现。其中,geodetector包是地理探测器模型的原作者团队开发的,其需要保证输入的......
  • Android项目自动生成uml图(以小米便签为例)
    摘要最近在学习软件工程,需要完成小米便签的精读,任务中需要详细类图,由于项目巨大,手动画图打咩,试了一下午的androidstudio,试了诸如codeiris,SequenceDigram(只能画时序图),simpleUML,sketchit....版本兼容折磨得头疼,索性直接使用IDEA画类图使用方法打开settingtools->Diagrams->......
  • python自动化——web自动化框架常用封装代码复习——当你会开发之后,发现一切都是如此
    PS:  PO模式知识点如下: 1、知识点:函数的书写、类、继承,模块导入; 2、思路:分层,抽离;     =====================================================================          编写用例基础版本:   pytest参数化,以及原始selenium用例编......
  • 基于 HttpRunner + Django + Vue + Element UI 的接口自动化测试平台,生产可用
    LunarLink平台简介基于HttpRunner+Django+Vue+ElementUI的接口自动化测试平台,生产可用。此外,非常感谢花菜。没有AnotherFasterRunner就不会有LunarLink......
  • 从零开始的 dbt 入门教程 (dbt cloud 自动化篇)
    一、引在前面的几篇文章中,我们从dbtcore聊到了dbt项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门dbt开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化,毕竟作为开发我们肯定没有经历每天定点去手动运行dbt命令,那么今天我们将带领大家快速上手......
  • 实现一个自动生成小学四则运算题目的命令行程序
    一.项目作者姓名:陈炜烽麦润泽学号:31220047763122004785Github项目地址:https://github.com/iFortheFuture/teamwork二.PSP表格##PersonalSoftwareProcessStagesPersonalSoftwareProcessStages预估时间(分钟)实际时间(分钟)Planning3030Estimate45......
  • 系统学习Python——装饰器:“私有“和“公有“属性案例-[为Python3.X重定义运算符重载
    分类目录:《系统学习Python》总目录自然地,之前的文章中的两个混合器父类变体都可以通过代码的一些额外变化来改进。除了两个值得简要关注的变体外,这里我们将略过大部分。首先,下面比较第一个混合方案的变种一一其使用了更加简单的编程结构,但是这也导致每次内置操作都增加一......
  • AC自动机学习笔记
    AC自动机有两个前置知识点,KMP算法和字典树KMP算法:KMP(Knuth-Morris-Pratt)算法是一种高效的字符串匹配算法,由DonaldKnuth、VaughanPratt和JamesH.Morris于1977年共同发明。KMP算法的核心思想是当字符串不匹配时,能够利用已经部分匹配的信息,避免从头开始匹配,从而提高匹配效率......
  • 解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法
    解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法理想汽车的工作,原文,BEV-CLIP:Multi-modalBEVRetrievalMethodologyforComplexSceneinAutonomousDriving链接:https://arxiv.org/pdf/2401.01065.pdf自动驾驶中对复杂场景数据的检索需求正在增加,尤其是随着......