UniAD:以规划为导向的端到端自动驾驶

2024-04-27 14:04

本文主要是介绍UniAD:以规划为导向的端到端自动驾驶,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章链接

这个文章是CVPR2023 Best Paper

https://arxiv.org/pdf/2212.10156

提出背景

以往的自动驾驶多数是为不同的任务场景设计部署单独的模型,这样子组成的系统会很复杂如图a。

图b这是多任务共享一个主干,但还是要分离训练,而且不是端到端的。有没有什么方式你可以把所有的环节都串联起来,实现完整的端到端呢?

c.1就是一个直接预测轨迹的方式,但是它的没有明确监督学习中间的过程,所以就如同一个黑箱,基本没有可解释性。c.2做了一些改造加入了一个一个模块,但是串联似乎并不是一个好的设计。最理想的端到端是以最终的规划为导向,并且把前面的任务合理组织促进最终的规划决策的,于是作者提出c.3的端到端自动驾驶规划模型

模型解读

UniAD模型设计:以规划为导向,可以理解为,最终车的轨迹规划是结合了车身轨迹,运动特征,地图语义特征,空间占用特征等做出的综合决策

具体流程

  1. 先对多视角的图片进行特征提取获得BEV特征

  2. 然后用作两个方向:一个通过前后帧结合的自注意力查询,获得根据轨迹检测的特征(Track),实现车辆轨迹跟踪,只有清晰车辆的状态才能进行下一步的规划;另外一个通过查询地图相关元素,得到地图的查询特征(Map),这里也是多层的注意力,最终结果输出到下一个目标

  3. 接下来做轨迹特征预测,这里把前面的车辆跟踪结合地图特征又结合上BEV特征,所有都联合起来进行自注意机制的学习,获得行车运动的轨迹预测(Motion)

  4. 通过Motion轨迹预测再次结合BEV来构建占用网络,获得空间中的占用情况,并且预测占用的变化,占用也是一个关键的特征,只有车辆能够明确占用情况才可以进一步做出安全明智的规划。这里也是多层的Transformer,结合Motion轨迹预测和前后帧的token来实现占用的预测

  5. 通过占用Occ预测,Motion预测还有BEV特征,做出最后的决策规划,这里的规划可以说是集大成的结果,开启可解释性比较强,可以专门针对每个单独模块做优化

总结

这么完整的一套端到端规划流程最大的基石就是Transformer架构,通过自注意力机制,把各种具有不同语义表示的特征结合起来,做下游的规划。不仅如此,模型还基Transformer架构从特征当中获取特征,如Track,Map,Occ。在最后的两步中还是加入了BEV的,我们可以认为BEV就是一个贯穿全程且不断被强化的特征。因为BEV特征是最前且核心的特征,通过传感器直接获取,其他的特征其实都依赖于BEV去查询得到的。UniAD也不是简单把所有的任务模块堆叠,每个特征他们之间的关系以及学习构建的方式都做了清晰的明确,实现了最终的联合决策规划。

这篇关于UniAD:以规划为导向的端到端自动驾驶的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

python利用backoff实现异常自动重试详解

《python利用backoff实现异常自动重试详解》backoff是一个用于实现重试机制的Python库,通过指数退避或其他策略自动重试失败的操作,下面小编就来和大家详细讲讲如何利用backoff实... 目录1. backoff 库简介2. on_exception 装饰器的原理2.1 核心逻辑2.2

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你