当前位置: 首页 > 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道】十、设计模式面试 …...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录

#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...

Python异步编程:深入理解协程的原理与实践指南

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 持续学习&#xff0c;不断…...