当前位置: 首页 > news >正文

端到端自动驾驶综述

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任务上有用;

相关文章:

端到端自动驾驶综述

End-to-end Autonomous Driving: Challenges and Frontiers 文章脉路 Introduction 从经典的模块化的方法到端到端方法的一个对比, 讲了各自的优缺点, 模块化的好处是各个模块都有自己明确的优化的目标, 可解释性较强, 且容易debug, 缺点是各个模块优化的目标并不是最终的驾…...

mysql索引、事务、存储引擎

一、索引 索引的概念: 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是…...

【CMU15445】Fall 2019, Project 2: Hash Table 实验记录

目录 实验准备实验测试 实验准备 官方说明:https://15445.courses.cs.cmu.edu/fall2019/project2/ 实验测试 Task 1: mkdir build cd build make hash_table_page_test ./test/hash_table_page_testTask 2: make hash_table_test ./test…...

PMP证书是不是烂大街了?

大家都知道,PMP证书是项目管理领域的金字招牌。近年来,随着项目管理的重要性日益凸显,越来越多的人开始关注和学习PMP证书。无论是企业招聘还是个人职业发展,PMP证书都成为了一张炙手可热的敲门砖。 那么,PMP证书到底…...

Mac下Docker Desktop安装命令行工具、开启本地远程访问

Mac系统下,为了方便在terminal和idea里使用docker,需要安装docker命令行工具,和开启Docker Desktop本地远程访问。 具体方法是在设置-高级下, 1.将勾选的User调整为System,这样不用手动配置PATH即可使用docker命令 …...

Java实现根据商品ID获取京东商品详情数据,1688商品详情接口,1688API接口封装方法

要通过京东的API获取商品详情数据,您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例,展示如何通过京东开放平台API获取商品详情: 首先,确保您已注册成为京东开放平台的开发者,并创建一…...

element-plus指定el-date-picker的弹出框位置

此处记录一下,通过popper-options指定popper出现的位置...

游戏陪玩语音聊天系统3.0商业升级独立版本源码

首发价值29800元的最新商业版游戏陪玩语音聊天系统3.0商业升级独立版本源码 1、增加人气店员轮播 2、优化ui界面丨优化游戏图标展示丨优化分类展示 3、增加动态礼物打赏功能 4、增加礼物墙功能 增加店员满足业绩,才能升级功能 5、增加店员等级不同,…...

TCP/IP网络江湖武艺传承:物理层与通信江湖的幕后(物理层中篇:物理层与现代通信技术)

目录 〇、引言:进入现代通信技术的江湖 一、数字信号与模拟信号:传承与差异...

Nuxt 菜鸟入门学习笔记三:视图

文章目录 入口文件组件 Components页面 Pages布局 Layouts Nuxt 官网地址: https://nuxt.com/ Nuxt 提供多个组件层来实现应用程序的用户界面。 入口文件 App.vue组件 Components页面 Pages布局 Layouts 下面逐一进行介绍。 入口文件 默认情况下,Nu…...

Python Opencv实践 - 霍夫线检测(Hough Lines)

import cv2 as cv import numpy as np import matplotlib.pyplot as plt import randomimg cv.imread("../SampleImages/GreenBoard.jpg") print(img.shape) plt.imshow(img[:,:,::-1])#将图像转为二值图 gray cv.cvtColor(img, cv.COLOR_BGR2GRAY) plt.imshow(gra…...

Weblogic漏洞(四)之 CVE-2018-2894 任意文件上传漏洞

CVE-2018-2894 任意文件上传漏洞 漏洞影响 Weblogic受影响的版本: 10.3.6.012.1.3.012.2.1.212.2.1.3 漏洞环境 此次我们使用的是vnlhub靶场搭建的环境,是vnlhub中的Weblogic漏洞中的CVE-2018-2894靶场,我们 cd 到 CVE-2018-2894&#x…...

C++:string的[ ],at,push_back

1.[ ]运算符和at函数 返回的是string的当前字符串的合法的索引位置的引用,所谓的合法是指小于size的索引 #include <string> #include <iostream>using namespace std;int main() {string str = "hello";cout<<"str:"<<str<…...

C语言(第三十六天)

4. 位操作符&#xff1a;&、|、^ 位操作符有&#xff1a; & //按位与 | //按位或 ^ //按位异或 注&#xff1a;他们的操作数必须是整数。 直接上代码&#xff1a; #include <stdio.h> int main() { int num1 -3; int num2 5; num1 & num2; num1 | num2; nu…...

005_C++数学库常用函数

数学库常用函数 函数 我们其实已经掌握了一些函数,比如主函数main()。还有其他的函数比如一些库中的函数,例:<stdio.h>头文件对应标准输入输出库中的printf()和scanf()、<stdlib.h>标准库头文件对应的标准库中的srand()和rand(),除此之外在C++中常用的还有数…...

Briefings in Bioinformatics投稿经验分享

期刊名: BRIEFINGS IN BIOINFORMATICS期刊名缩写:BRIEF BIOINFORM期刊ISSN:1467-5463E-ISSN:1477-40542023年影响因子/JCR分区:9.5/Q1latex模板:http://static.primary.prod.gcms.the-infra.com/static/site/journals/document/oup-authoring-template.zip?node=7987de4…...

【原创】jmeter并发测试计划

bankQPS 创建线程组 设置并发参数 HTTP请求GET 添加HTTP请求 GET请求 查看结果树 HTTP请求 POST 添加HTTP请求 参数必须设置头信息格式&#xff1a; 添加HTTP头信息 查看结果树 可以选择&#xff0c;仅查看错误日志 汇总报告...

飞腾PSPA可信启动--1 非对称加密

最近计划在梳理下飞腾安全平台架构PSPA&#xff0c;就先从可信启动开始吧。有一些基础的密码学知识&#xff0c;各位在研究可信固件的时候可能会有一些不解&#xff0c;为了便于大家理解&#xff0c;编了几个小故事&#xff0c;希望能够帮助大家理清其中的各种关系。目前可信启…...

基于RabbitMQ的模拟消息队列需求文档

文章目录 一、项目背景二、需求分析1.核心概念2.BrokerServer核心组件3.核心API4.交换机类型5.持久化6.网络通信7.消息应答 三、消息队列模块划分 一、项目背景 什么是消息队列&#xff1f; 消息队列就是&#xff0c;基于阻塞队列&#xff0c;封装成一个独立的服务器程序&#…...

“北科Java面试宝典(211最详细讲解)“

Version : V1.0 北科Java面试宝典一、Java基础面试题【24道】二、JVM虚拟机面试题【14道】三、集合相关面试题【17道】四、多线程 【25道】五、IO【5道】六、网络编程 【9道】七、MySQL以及SQL面试题【20道】八、常用框架【19道】九、中间件和分布式 【54道】十、设计模式面试 …...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...

leetcode_69.x的平方根

题目如下 &#xff1a; 看到题 &#xff0c;我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历&#xff0c;我们是整数的平方根&#xff0c;所以我们分两…...