端到端自动驾驶综述

End-to-end Autonomous Driving: Challenges and Frontiers

文章脉路
在这里插入图片描述

Introduction

  1. 从经典的模块化的方法到端到端方法的一个对比, 讲了各自的优缺点, 模块化的好处是各个模块都有自己明确的优化的目标, 可解释性较强, 且容易debug, 缺点是各个模块优化的目标并不是最终的驾驶任务, 并且每个模块的误差容易往下游累积; 而端到端的优点就是可以global的优化, 以最终的驾驶为目的, 通过全局可微分的方式, 通过送入大量数据学到驾驶能力; 把整个问题归化成了, 数据和网络本身,而不再是corner-case的解决方式;
  2. 但是有一点需要注意, 端到端并不意味着,输入传感器数据,用一个黑盒子仅仅输出驾驶行为; 可以是模块化的方式, 如上图中的(b), 可以通过feature来贯穿始终; 而且可以做成multi-task learning的方式.

Roadmap

在这里插入图片描述

● 1988. ALVINN 输入camera和laser range finder, 经过一个简单的NN得到 steering output.

Methods

Imitation Learning
任务描述, 是学习到一个policy 逼近 expert的policy.
在这里插入图片描述

Imitation learning 又分成了两大类, 分别是
BC: behavior cloing
‒ 简单,有效, 不需要手工设计,
‒ 在训练的时候, BC 会把每一个状态看成是独立同分布的, 这会导致一个问题, 叫 “covariate shift”;
‒ 我理解这里的独立同分布指的就是训练的时候, 数据集中的{(s, a)} 是以相同的概率被采样的.即一个状态对应着一个action; 那如果训练的时候没有见过某个state时, 模型就不知道该怎么做了, 独立同分布可以理解为没有任何规律可严; 比如训练的时候见到的都是路口停车等待的情况, 那如果测试的时候, 路口一辆车都没有, 哪怕是绿灯, 模型可能都不知道是要往前走的;
IOC: inverse Optimal Control 或者是 invese RL.

他们和强化学习的区别可以用一个图来看出来
在这里插入图片描述

  1. BC是输入原始数据, 学习专家的policy,即看专家基于这些数据是如何做的;
  2. IOC是输入原始数据, 构建一个cost, 在实际用的时候, 会有不同cost的输出选择, 可以基于某种方式选择一个最好的, 比如说选择cost最低的; 代表作可以看NMP[32]
  3. RL即强化学习, 根据环境不断地回馈与迭代;

Challenges
多模态问题
不同的模态如何融合
在这里插入图片描述

这里面很重要的一个是
Language as input

Visual Abstraction

作者把端到端的AD任务分成了两个阶段:

  1. 编码阶段, 即把state space 编码成为一个latent feature representation.
  2. 解码阶段, 用中间feature, 解码得到driving policy, 或者其他的输出;

这里面相关的工作有, PPGeo, 它是为了学到一个好的和自驾相关的visual encoder;

World Model
什么是world model, world model 就是理解世界, 理解过去发生的事情, 并能预测将来;
这里面提到, 在图像空间里面做world model不太容易(即预测接下来的图片), 比如一些很重要的细节, 像交通信号灯的变化等就很容易在预测的图片中丢失;
MILE就是把这个难度降低成为了, bev-semantic-segmentation. 这也从某种程度上代表了世界的演化, 所以mile确实是一个world model; 或者说是把world model融合进了policy learning里面了; 或者说把 Dreamer-style world model learning 当成了一个辅助的任务; 想想也自然, 即要想开好车, 首先得理解周围的世界; 这样才会对世界有一个判断和预测;

Multi-task learning with Policy prediction
为什么要做multi-task learning?

除了polcy prediction之外, 加一些其它的任务进来, 还是希望模型确实能够学到对于当前环境的理解;
比如对于图像的输入, 可以加入的有语义分割, 或深度估计,
语义分割是为了让模型学习到场景信息, 添加深度估计是为了让模型学习到几何空间信息;
而且这些辅助任务的增加,对于增加可解释性,也起到了至关重要的作用;

Policy Distillation
在这里插入图片描述

● Expert
专家会根据自身的观测, 比如图片和bev结果(不是真值), 来去采取具体的行动(专家自己的行动, 不一定是标准的GT);
● 特权的agent, 直接能够拿到bev的真值, 也能够拿到 ground truth的行动;
● sensorimotor agent 就是一个普通的agent, 只有传感器的输入,

举一个例子, 拿侧方停车为例, 教练就是专家, 教练会根据观测(看后视镜),产生他自己对于环境的理解(BEV), 通过他自己的经验, 做出具体的判断; 可能和标准的行驶轨迹不完全一样, 但是却是合理的; 这里教练对于环境的理解不一定全对, 比如有盲区没有看到;
而Privileged agent 可以理解为全程拿着360的bev结果, 无死角,无盲区, 全程不需要看后视镜, 好像有人告诉他该怎么开一样, 而且采取的行动就是标准答案;
而sensorimotor agent 就可以理解为一个考生了, 完全要靠看后视镜, 才能采取行动;

Interpretability

  1. 可视化中间的feature, 这种太抽象, 不好理解, 无法评测
  2. 通过可解释的任务, 比如 semnatic segmentation, depth estimation, object detection, 等任务,
  3. Cost-learning. 提供一个有意义的cost 函数, 也可以具有可解释性;
  4. 通过语言进行解释,
  5. 不确定性建模, 没太理解

Future trends

Modular end to end planning
模块化的端到端, 像Tesla和Wayve 都是这么做的; 但是模块化设计的时候, 不知道什么样的任务是好的,
比如对于感知模块而言, 不知道是目标检测, occupancy,
再比如 bev分割和车道拓扑map, 哪个任务更好;

Foundation Model
在这里插入图片描述

自驾的模型的输出得是稳定且精确的, 但是LLM这种生成式的输出只是表现的像一个人, 但是其实并不精确; 所以对于自动驾驶来说, 如何设计一个模型,让其能够稳定地预测 长时间的 2d 或者是3d是非常重要的; 只有这点做到了, 才算自驾中的一个foundation model; 这样的模型才能够再下游的planning任务上有用;

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

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

相关文章

开始MySQL之路——MySQL的DataGrip图形化界面

下载DataGrip 下载地址:Download DataGrip: Cross-Platform IDE for Databases & SQL 安装DataGrip 准备好一个文件夹,不要中文和空格 C:\Develop\DataGrip 激活DataGrip 激活码: VPQ9LWBJ0Z-eyJsaWNlbnNlSWQiOiJWUFE5TFdCSjBaIiwibGl…

DockerCompose介绍与使用

DockerCompose介绍与使用 1、DockerCompose介绍 DockerCompose用于定义和运行多容器 Docker 应用程序的工具。 通过 Compose可以使用 YAML 文件来配置应用程序需要的所有服务。一个使用Docker容器的应用,通常由多个容器组成,使用Docker Compose不再需要…

vue naive ui 按钮绑定按键

使用vue (naive ui) 绑定Enter 按键 知识点: 按键绑定Button全局挂载使得message,notification, dialog, loadingBar 等NaiveUI 生效UMD方式使用vue 与 naive ui将vue默认的 分隔符大括号 替换 为 [[ ]] <!DOCTYPE html> <html lang"en"> <head>…

LeetCode-452-用最少数量的箭引爆气球

题目描述&#xff1a; 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出…

Myabtis学习记录

mapper.xml常用标签 foreach标签 MyBatis中mapper.xml中foreach的使用_mapper.xml foreach_Willing卡卡的博客-CSDN博客 if标签 Mybatis的mapper.xml中if标签test判断的用法_if标签的test_大唐冠军侯的博客-CSDN博客

一文讲通物联网嵌入式

最近有很多同学问我&#xff0c;物联网近几年一直是科技的热点&#xff0c;嵌入式和物联网有什么关系呢&#xff1f;我在这里统一给大家讲解一下。 嵌入式是应用于物联网产品方向的一种嵌入式操作系统。类似于Android系统是谷歌开发的移动操作系统&#xff0c;嵌入式实际上也是…

docker 学习-- 04 实践搭建 1(宝塔)

docker 学习-- 04 实践 1&#xff08;宝塔&#xff09; docker 学习-- 01 基础知识 docker 学习-- 02 常用命令 docker 学习-- 03 环境安装 docker 学习-- 04 实践 1&#xff08;宝塔&#xff09; docker 学习-- 04 实践 2 &#xff08;lnpmr环境&#xff09; 通过上面的学…

opencv-答题卡识别判卷

#导入工具包 import numpy as np import argparse import imutils import cv2# 设置参数 ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required=True,help="path to the input image") args = vars(ap.parse_args())# 正确…

RabbitMQ工作模式-路由模式

官方文档参考&#xff1a;https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用direct类型的Exchange,发N条消息并使用不同的routingKey,消费者定义队列并将队列routingKey、Exchange绑定。此时使用direct模式Exchange必须要routingKey完成匹配的情况下消息才…

妈妈的爱依然深沉

村里的孩子为了买化肥&#xff0c;跟城里官老爷们借了好多钱。 那几年庄稼转手很快&#xff0c;不是用来吃的&#xff0c;因此借钱成本很高&#xff0c;大概LPR加100bp。 后来村里孩子终于发现庄稼终究只能用来吃&#xff0c;不再热衷买卖化肥。可是官老爷们的金融生意还要继续…

模块化与组件化:开发中的双剑合璧

引言&#xff1a;模块化与组件化的重要性 在现代软件开发中&#xff0c;随着项目规模的增长和技术的复杂性增加&#xff0c;如何有效地组织和管理代码变得越来越重要。模块化与组件化作为两种主要的代码组织方法&#xff0c;为开发者提供了有效的工具&#xff0c;帮助他们创建…

C语言练习7(巩固提升)

C语言练习7 编程题 前言 “芳林新叶催陈叶&#xff0c;流水前波让后波。”改革开放40年来&#xff0c;我们以敢闯敢干的勇气和自我革新的担当&#xff0c;闯出了一条新路、好路&#xff0c;实现了从“赶上时代”到“引领时代”的伟大跨越。今天&#xff0c;我们要不忘初心、牢记…

MyBatisPlus实现多租户功能

前言&#xff1a;多租户是一种软件架构技术&#xff0c;在多用户的环境下&#xff0c;共有同一套系统&#xff0c;并且要注意数据之间的隔离性。 一、SaaS多租户简介 1.1、SaaS多租户 SaaS&#xff0c;是Software-as-a-Service的缩写名称&#xff0c;意思为软件即服务&#x…

手工测试与自动化测试各自的优势和局限性是什么?如何合理地配合使用?

对测试从业者而言&#xff0c;手工测试和自动化测试是伴随测试职业一生的两个名词。今天&#xff0c;我们就来聊聊两者各自的优势和局限性&#xff0c;以及如何合理地配合使用。 手工测试和自动化测试的定义 手工测试&#xff08;Manual Testing&#xff09;是一种软件测试方法…

【电子学会真题】青少年软件编程(C语言)等级考试试卷(一级) 2021年9月

试卷下载 pdf 格式下载&#xff1a;https://download.csdn.net/download/SHUTIAN2010/88255543 word 格式下载&#xff1a;https://download.csdn.net/download/SHUTIAN2010/88255558 1&#xff0e;计算乘积 一行两个整数a、b&#xff0c;以空格分隔。&#xff08;0&#xff1…

CotEditor for mac 4.0.1 中文版(开源文本编辑器)

coteditorformac是一款简单实用的基于Cocoa的macOS纯文本编辑器&#xff0c;coteditormac版本可以用来编辑网页、结构化文本、程序源代码等文本文件&#xff0c;使用起来非常方便。 CotEditor for Mac具有正则表达式搜索和替换、语法高亮、编码等实用功能&#xff0c;而CotEdi…

qt信号与槽

输入账户密码成功则跳转界面 widget.cpp #include "widget.h" //自己的头文件Widget::Widget(QWidget *parent) //构造函数的定义: QWidget(parent) …

WordPress 网站使用 CDN 后获取访客真实 IP

WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR&#xff0c;这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP。 在 wp-config.php 文件中增加下面代码就可以获取 CDN 后访客的真实 IP。这个函数的核心是用解析后的 HTTP_X_FORWARDED_FOR 替换 REMOTE_ADD…

django自动创建model数据

目前使用的环境&#xff1a;django4.2.3&#xff0c;python3.10 django通过一些第三方库&#xff0c;可以轻易的自动生成一系列的后台数据。 首先先创建一个数据库&#xff1a; 然后&#xff0c;在setting.py中就可以指定我们新创建的数据库了。 DATABASES {default: {ENGI…

ChatGPT 与前端技术实现制作大屏可视化

像这样的综合案例实分析,我们可以提供案例,维度与指标数据,让ChatGPT与AIGC 帮写出完整代码,并进行一个2行2列的布局设置。 数据与指令如下: 商品名称 销量 目标 完成率 可乐 479 600 79.83% 雪碧 324 600 54.00% 红茶 379 600 63.…