w~自动驾驶~合集1

我自己的原文哦~     https://blog.51cto.com/whaosoft/12371169

#世界模型和DriveGPT这类大模型到底能给自动驾驶带来什么ne

以下分享大模型与自动驾驶结合的相关工作9篇论

1、ADAPT

ADAPT: Action-aware Driving Caption Transformer(ICRA2023)

ADAPT提出了一种基于端到端transformer的架构ADAPT(动作感知Driving cAPtion transformer),它为自动驾驶车辆的控制和动作提供了用户友好的自然语言叙述和推理。ADAPT通过共享视频表示联合训练驾驶字幕任务和车辆控制预测任务。

整体架构:

ADAPT框架概述,(a) 输入是车辆的前视图视频,输出是预测车辆的控制信号以及当前动作的叙述和推理。首先对视频中的T帧进行密集和均匀的采样,将其发送到可学习的视频swin transformer,并标记为视频标记。不同的预测头生成最终的运动结果和文本结果。(b) (c)分别显示预测头~

2、BEVGPT

Generative Pre-trained Large Model for Autonomous Driving Prediction, Decision-Making, and Planning.(AAAI2024)

BEVGPT 是第一个生成式, 集预测、决策、运动规划于一体的自监督 pre-trained的大模型。输入BEV images, 输出自车轨迹, 并且能够输出对驾驶场景的预测, 该方案训练时需要高精地图。之所以叫GPT,一方面是因为利用了GPT式的自回归训练方法, 这里自回归的输入是历史的轨迹及BEV, target 是下一个BEV和轨迹。另一方面,能够做到生成, 即给定初始桢的BEV, 算法能够自己生成接下来的多帧BEV场景。该方法并不是一个从传感器输入的端到端方法, 可以看成是基于感知的结果,将后面的模块用一个模型给模型化了, 在实际中也有重要的应用价值. 比如能够基于很多驾驶回传数据的感知结果和轨迹真值来训练驾驶专家模型。

整体结构:

3、DriveGPT4

DriveGPT4 Interpretable End-to-end Autonomous Driving via Large Language Model

在过去的十年里,自动驾驶在学术界和工业界都得到了快速发展。然而其有限的可解释性仍然是一个悬而未决的重大问题,严重阻碍了自动驾驶的发展进程。以前使用小语言模型的方法由于缺乏灵活性、泛化能力和鲁棒性而未能解决这个问题。近两年随着ChatGPT的出现,多模态大型语言模型(LLM)因其通过文本处理和推理非文本数据(如图像和视频)的能力而受到研究界的极大关注。因此一些工作开始尝试将自动驾驶和大语言模型结合起来,今天汽车人为大家分享的DriveGPT4就是利用LLM的可解释实现的端到端自动驾驶系统。DriveGPT4能够解释车辆动作并提供相应的推理,以及回答用户提出的各种问题以增强交互。此外,DriveGPT4以端到端的方式预测车辆的运动控制。这些功能源于专门为无人驾驶设计的定制视觉指令调整数据集。DriveGPT4也是世界首个专注于可解释的端到端自动驾驶的工作。当与传统方法和视频理解LLM一起在多个任务上进行评估时,DriveGPT4表现出SOTA的定性和定量性能。

4、Drive Like a Human

Drive Like a Human: Rethinking Autonomous Driving with Large Language Models.

code:https://github.com/PJLab-ADG/DriveLikeAHuman

作者提出了理想的AD系统应该像人类一样驾驶,通过持续驾驶积累经验,并利用常识解决问题。为了实现这一目标,确定了AD系统所需的三种关键能力:推理、解释和记忆。通过构建闭环系统来展示LLM的理解能力和环境交互能力,证明了在驾驶场景中使用LLM的可行性。大量实验表明,LLM表现出了令人印象深刻的推理和解决长尾案例的能力,为类人自动驾驶的发展提供了宝贵的见解!

5、Driving with LLMs

Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving.

大型语言模型(LLM)在自动驾驶领域显示出了前景,尤其是在泛化和可解释性方面。本文引入了一种独特的目标级多模式LLM架构,该架构将矢量化的数字模态与预先训练的LLM相结合,以提高对驾驶情况下上下文的理解。本文还提出了一个新的数据集,其中包括来自10k驾驶场景的160k个QA对,与RL代理收集的高质量控制命令和教师LLM(GPT-3.5)生成的问答对配对。设计了一种独特的预训练策略,使用矢量字幕语言数据将数字矢量模态与静态LLM表示对齐。论文还介绍了驾驶QA的评估指标,并展示了LLM驾驶员在解释驾驶场景、回答问题和决策方面的熟练程度。与传统的行为克隆相比,突出了基于LLM的驱动动作生成的潜力。我们也提供了基准、数据集和模型以供进一步探索。

模型结构:

LLM驾驶体系结构概述,演示如何使用来自驾驶模拟器的对象级矢量输入来通过LLM预测动作!

6、HiLM-D

HiLM-D: Towards High-Resolution Understanding in Multimodal Large Language Models for Autonomous Driving.

自动驾驶系统通常针对不同的任务使用单独的模型,从而产生复杂的设计。这是首次利用奇异多模态大语言模型(MLLMs)来整合视频中的多个自动驾驶任务,即风险目标定位和意图与建议预测(ROLISP)任务。ROLISP使用自然语言同时识别和解释风险目标,理解自我-车辆意图,并提供动作建议,从而消除了特定任务架构的必要性。然而,由于缺乏高分辨率(HR)信息,现有的MLLM在应用于ROLISP时往往会错过小目标(如交通锥),并过度关注突出目标(如大型卡车)。本文提出了HiLM-D(在用于自动驾驶的MLLMs中实现高分辨率理解),这是一种将人力资源信息整合到用于ROLISP任务的MLLMs中的有效方法。

HiLM-D集成了两个分支:

(i) 低分辨率推理分支可以是任何MLLMs,处理低分辨率视频以说明风险目标并辨别自我车辆意图/建议;

(ii)HiLM-D突出的高分辨率感知分支(HR-PB)摄取HR图像,通过捕捉视觉特异性HR特征图并将所有潜在风险优先于仅突出的目标来增强检测;HR-PB作为一个即插即用模块,无缝地适应当前的MLLM。在ROLISP基准上的实验表明,与领先的MLLMs相比,HiLM-D具有显著的优势,在BLEU-4中用于字幕的改进为4.8%,在mIoU中用于检测的改进为17.2%。

7、LanguageMPC

LanguageMPC: Large Language Models as Decision Makers for Autonomous Driving.

这项工作将大型语言模型(LLM)作为需要人类常识理解的复杂AD场景的决策组件。设计了认知途径,以实现LLM的全面推理,并开发了将LLM决策转化为可操作驾驶命令的算法。通过这种方法,LLM决策通过引导参数矩阵自适应与低级控制器无缝集成。大量实验表明,由于LLM的常识性推理能力,提出的方法不仅在单车任务中始终优于基线方法,而且有助于处理复杂的驾驶行为,甚至多车协调。本文在安全性、效率、可推广性和互操作性方面,为利用LLM作为复杂AD场景的有效决策者迈出了第一步,希望它能成为该领域未来研究的灵感来源。

网络结构:

8、Planning-oriented Autonomous Driving

今年CVPR2023的best paper!UniAD将各任务通过token的形式在特征层面,按照感知-预测-决策的流程进行深度融合,使得各项任务彼此支持,实现性能提升。在nuScenes数据集的所有任务上,UniAD都达到SOTA性能,比所有其它端到端的方法都要优越,尤其是预测和规划效果远超其它模型。作为业内首个实现感知决策一体化自动驾驶通用大模型,UniAD能更好地协助进行行车规划,实现「多任务」和「高性能」,确保车辆行驶的可靠和安全。基于此,UniAD具有极大的应用落地潜力和价值。

9、WEDGE

WEDGE:A multi-weather autonomous driving dataset built from generative vision-language models.

开放的道路给自主感知带来了许多挑战,包括极端天气。在好天气数据集上训练的模型经常无法在这些分布外数据(OOD)设置中进行检测。为了增强感知中的对抗性鲁棒性,本文引入WEDGE(WEather Images by DALL-E GEneration):一个通过提示用视觉语言生成模型生成的合成数据集。WEDGE 由 16 种极端天气条件下的 3360 张图像组成,并用 16513 个边框手动注释,支持天气分类和 2D 目标检测任务的研究。作者从研究的角度分析了WEDGE,验证了其对于极端天气自主感知的有效性。作者还建立了分类和检测的基线性能,测试准确度为 53.87%,mAP 为 45.41。WEDGE 可用于微调检测器,将真实世界天气基准(例如 DAWN)的 SOTA 性能提高 4.48 AP,适用于卡车等类别。

#自动驾驶端到端规划方法汇总

一、Woven Planet(丰田子公司)的方案:Urban Driver 2021

这篇文章是21年的,但一大堆新文章都拿它来做对比基线,因此应该也有必要来看看方法。

大概看了下,主要就是用Policy Gradients学习State->近期action的映射函数,有了这个映射函数,可以一步步推演出整个执行轨迹,最后loss就是让这个推演给出的轨迹尽可能的接近专家轨迹。

效果应该当时还不错,因此能成为各家新算法的基线。

二、南洋理工大学方案一 Conditional Predictive Behavior Planning with Inverse Reinforcement Learning 2023.04

先使用规则枚举了多种行为,生成了10~30条轨迹。(未使用预测结果)
使用Condtional Prediction算出每条主车待选轨迹情况下的预测结果,然后使用IRL对待选轨迹打分。

其中Conditional Joint Prediction模型长这样:

这个方法基本上很赞的点就是利用了Conditional Joint Prediction可以很好的完成交互性的预测,使得算法有一定的博弈能力。
但我个人认为算法缺点是前边只生成了10~30条轨迹,而且轨迹生成时没考虑预测,而且最后会直接在IRL打分后,直接选用这些轨迹中的一条作为最终结果,比较容易出现10~30条在考虑预测后发现都不大理想的情况。相当于要在瘸子里边挑将军,挑出来的也还是瘸子。基于这个方案,再解决前边待选样本生成质量会是很不错的路子

三、英伟达方案:2023.02 Tree-structured Policy Planning with Learned Behavior Models

用规则树状采样,一层一层的往后考虑,对每一层的每个子结点都生成一个conditional prediction,然后用规则对prediction结果和主车轨迹打分,并用一些规则把不合法的干掉,然后,利用DP往后生成最优轨迹,DP思路有点类似于apollo里dp_path_optimizer,不过加了一个时间维度。

不过因为多了一个维度,这个后边扩展次数多了之后,还是会出现解空间很大计算量过大的情况,当前论文里写的方法是到节点过多之后,随机丢弃了一些节点来确保计算量可控(感觉意思是节点过多之后可能也是n层之后了,可能影响比较小了)

本文主要贡献就是把一个连续解空间通过这种树形采样规则转变一个马尔可夫决策过程,然后再利用dp求解。

四、南洋理工大学&英伟达联合 2023年10月最新方案:DTPP: Differentiable Joint Conditional Prediction and Cost Evaluation for Tree Policy Planning in Autonomous Driving

看标题就感觉很Exciting:

一、Conditional Prediction确保了一定博弈效果
二、可导,能够整个梯度回传,让预测与IRL一起训练。也是能拼出一个端到端自动驾驶的必备条件
三、Tree Policy Planning,可能有一定的交互推演能力

仔细看完,发现这篇文章信息含量很高,方法很巧妙。

主要基于英伟达的TPP和南洋理工的Conditional Predictive Behavior Planning with Inverse Reinforcement Learning进行糅合改进,很好的解决了之前南洋理工论文中待选轨迹不好的问题。

论文方案主要模块有:

一、Conditional Prediction模块,输入一条主车历史轨迹+提示轨迹 + 障碍车历史轨迹,给出主车接近提示轨迹的预测轨迹和与主车行为自洽的障碍车的预测轨迹。
二、打分模块,能够给一个主车+障碍车轨迹打分看这个轨迹是否像专家的行为,学习方法是IRL。
三、Tree Policy Search模块,用来生成一堆待选轨迹

使用Tree Search的方案来探索主车的可行解,探索过程中每一步都会把已经探索出来的轨迹作为输入,使用Conditional Prediction来给出主车和障碍车的预测轨迹,然后再调用打分模块评估轨迹的好坏,从而影响到下一步搜索扩展结点的方向。通过这种办法可以得到一些差异比较大的主车轨迹,并且轨迹生成时已经随时考虑了与障碍车的交互。

传统的IRL都是人工搞了一大堆的feature,如前后一堆障碍物在轨迹时间维度上的各种feature(如相对s, l和ttc之类的),本文里为了让模型可导,则是直接使用prediction的ego context MLP生成一个Weight数组(size = 1 * C),隐式表征了主车周围的环境信息,然后又用MLP直接接把主车轨迹+对应多模态预测结果转成Feature数组(size = C * N, N指的待选轨迹数),然后两个矩阵相乘得到最终轨迹打分。然后IRL让专家得分最高。个人感觉这里可能是为了计算效率,让decoder尽可能简单,还是有一定的主车信息丢失,如果不关注计算效率,可以用一些更复杂一些的网络连接Ego Context和Predicted Trajectories,应该效果层面会更好?或者如果放弃可导性,这里还是可以考虑再把人工设置的feature加进去,也应该可以提升模型效果。

在耗时方面,该方案采用一次重Encode + 多次轻量化Decode的方法,有效降低了计算时延,文中提到时延可以压到98ms。

在learning based planner中属于SOTA行列,闭环效果接近前一篇文章中提到的nuplan 排第一的Rule Based方案PDM。

总结

看下来,感觉这么个范式是挺不错的思路,中间具体过程可以自己想办法调整:

  1. 用预测模型指导一些规则来生成一些待选ego轨迹
  2. 对每条轨迹,用Conditional Joint Prediction做交互式预测,生成agent预测。可以提升博弈性能。
  3. IRL等方法做利用Conditional Joint Prediction结果对前边的主车轨迹打分,选出最优轨迹

#交互感知自动驾驶 (IAAD)

交互感知自动驾驶(IAAD)是一个迅速发展的研究领域,专注于开发能够与人类道路使用者安全、高效交互的自动驾驶车辆。这是一项具有挑战性的任务,因为它要求自动驾驶车辆能够理解和预测人类道路使用者的行为。在这份文献综述中,作者对IAAD研究的当前状态进行了调研。从对术语的调研开始,关注点集中在仿真驾驶员和行人行为的挑战和现有模型上。接下来,对用于交互建模的各种技术进行了全面的回顾,涵盖了认知方法、机器学习方法和博弈论方法。通过讨论与IAAD相关的潜在优势和风险,以及对未来研究探索至关重要的关键问题,最终得出结论。

交互感知介绍

近年来,随着机器人技术和机器学习的最新进展,对自动驾驶汽车技术的开发越来越引起人们的兴趣。这使得自动驾驶工程师能够开发能够解决自动驾驶任务复杂性的算法。自动驾驶汽车有潜力提高交通质量,减少交通事故,提高出行时间的质量。如今,越来越多的自动驾驶汽车被部署到现实世界中,与其他人类道路使用者共享环境。这引发了一些担忧,即自动驾驶汽车可能无法理解并与其他人类道路使用者顺利交互,可能导致交通困境和安全问题。为了以高效且安全的方式运行,自动驾驶汽车需要以类似于人类的方式行为,并生成考虑与其他人类道路使用者的交互的最优行为。这对于减少潜在的交通冲突至关重要。例如,在十字路口谨慎但不必要的停车可能导致追尾事故。为了开发全自动驾驶汽车,需要在自动驾驶汽车技术的许多方面取得进展,包括感知、决策、规划和控制。在预测周围人类道路使用者的行为并相应地为自动驾驶汽车做出决策方面,与周围人类道路使用者的交互变得越来越重要,因为自动驾驶汽车的行为会影响他们的行为,反之亦然。

本文的目的是在自动驾驶背景下,对交互感知运动规划和决策的最新技术进行详尽调研。具体而言,文本首先涵盖人类道路使用者行为模型,以突显影响人类道路使用者在道路上做出决策的因素。驾驶员和行人行为模型对自动驾驶汽车来说有多重要是有原因的。首先,它们可用于评估和预测围绕自动驾驶汽车的道路使用者的行为。其次,它们可以帮助开发类似于人类的自动驾驶汽车行为。因此,它们既具有预测价值,又为模型/系统设计添加了相关的见解。

本综述分为5个主要部分,涵盖了交互感知自动驾驶中的不同领域。第2节介绍了交互感知自动驾驶中使用的术语。请参考下图1,了解论文结构的概览。第3节将涵盖影响人类驾驶决策的人因研究,以及行人行为研究。第4节广泛概述和分类了用于交互建模的现有技术。最后,第5和第6节涵盖了在交互场景中用于运动规划和决策制定的最新技术。

虽然自动驾驶近年来一直是一个活跃的研究领域,但大部分研究集中在仅涉及车辆的情景中。相对较少的工作涉及异构场景,其中既包括车辆又包括行人。在本文中,焦点是异构场景,但第5和第6节还将涵盖处理没有行人的场景的相关工作。这是因为这些论文中使用的技术可以轻松地适应混合交通场景,或者它们可以为处理混合交通场景的一般问题提供重要的见解。

交互感知自动驾驶术语

在讨论交互感知运动规划和决策制定的最新进展之前,本文首先定义了该领域中使用的一些术语。在自动驾驶领域,术语"ego-vehicle"指的是要进行控制和研究的特定车辆。所有其他占据环绕自车区域的车辆、骑行者、行人等,都被视为交互障碍物,并被称为周围交通参与者,参见下图2a。由于道路交通不太可能在不久的将来变得完全自动化,自动驾驶汽车将不可避免地在与人类道路使用者(HRUs)混合的环境中运行,例如人类驾驶员和行人。因此,交互感知自动驾驶是一项研究领域,重点是开发能够安全有效地与周围HRUs交互的自动驾驶汽车。传统的自动驾驶方法通常将周围HRUs视为动态障碍物。然而,这并不是一种现实的方法,因为它们会不断地改变它们的行为以适应当前情况。

通常,多个周围HRUs可能在它们自己之间或与自车之间产生共享空间的冲突:这种情况可以合理地推断两个或两个以上的道路使用者打算在不久的将来的相同空间区域内占据相同的位置,见图2b。参与冲突的道路使用者被认为表现出交互行为,这意味着如果没有空间共享冲突,他们的行为将会不同。此外,交互不一定涉及冲突。它可以是明确或隐含的沟通,表明道路使用者的意图并影响HRUs。例如,驾驶员可以根据前方车辆的转向灯信号制定驾驶策略,使自车和前方车辆不在同一车道,且在不久的将来不会发生冲突。因此,交互行为是指道路使用者的不同行为方式,以适应他人的行为或请求对反应进行请求并采取行动以实现他们期望的目标。由于交互在驾驶时随时发生,因此开发的自动驾驶汽车算法必须了解道路使用者之间的交互动态。这样的算法被称为交互感知,通常是近期自动驾驶研究的焦点。目前,安全且社会接受的交互感知自动驾驶系统受到一些挑战的制约。其中一个挑战是缺乏关于HRUs如何交互的创新理论。这是一项困难的任务,因为要开发的理论不仅限于预测和建模HRUs的行为,还包括探索行为模式及其基础机制。将自动驾驶汽车无缝整合到交通中,就如同人类一样,需要更先进的行为理论和模型。另一个挑战是需要开发能够与其他HRUs安全有效地交互并产生符合人类标准的自动驾驶汽车行为的算法。下图3显示了构成自动驾驶汽车系统的主要部分。传感器的原始数据由感知模块处理,该模块检测周围环境并执行定位,允许为自车生成达到目标目的地的全局路线规划。场景还可以进行进一步的解释,并可以对周围交通参与者的预测进行操作。交互感知模型在预测任务中起着重要作用,因为道路使用者会影响彼此的轨迹和决策。

决策和路径规划是自动驾驶中最重要的两项任务之一。它们负责确定车辆如何在环境中移动。决策是从一组可能的选项中选择行动的过程。例如,车辆可能需要决定是否变道、减速或停车。路径规划是生成车辆可跟随的安全和可行轨迹的过程。决策和路径规划密切相关。决策过程通常输出高层次的计划,例如“向左变道”。然后,路径规划过程接受此计划并生成车辆可以跟随的详细轨迹。这两项任务都必须考虑车辆的当前位置、车辆的能力和周围的交通情况,这就是为什么交互感知模型对这两项任务非常相关的原因。从控制系统的角度来看,车辆的动态由其状态表示,即位置和方向,以及它们的时间导数。环境的状态由所有动态和静态实体的状态决定。物理状态空间还可以通过捕捉附加的潜在空间变量而得到扩充,这些变量捕捉周围用户的意图或行为偏好,这是场景理解系统的一部分。

人类行为研究与交互

本节综合了关于HRUs(人类道路用户)行为的实证和建模研究结果,包括与自动驾驶汽车或传统车辆交互的人类驾驶员和行人,尤其是从沟通角度来看。焦点是研究涉及道路交互的内容,旨在发现可能促进交互感知自动驾驶汽车开发的见解。此处超出本文范围的研究还包括宏观交通条件的影响,如路径选择、天气或法规等。

驾驶员行为研究

驾驶员行为模型用于预测和了解驾驶员在不同驾驶场景中的行为方式。这些模型可用于改善交通系统的安全性和效率,并有助于自动驾驶汽车的设计过程。许多因素可能影响驾驶行为,包括个体特征(年龄、性别、个性、经验)、环境因素,即道路和天气条件,以及社会因素,包括驾驶员与HRUs的交互。这里将重点放在与车辆-行人交互相关的DBM上。

最常见的驾驶员行为模型包括:

  • 驾驶员风险场模型:(下图4a)该模型预测驾驶员在不同驾驶情况下如何感知风险。DRF模型的基础理念是驾驶员基于对风险的感知做出决策。[16] 的研究结果表明,驾驶行为受到成本函数的控制,该函数考虑到噪声对人类感知和行为的影响。自动驾驶汽车上的风险感知也在 [19]中进行了分析,该研究采用了驾驶仿真场景。
  • 基于理论的:(下图4b)感知和认知模型。基于感知信息的模型根据感知线索(如距离、车速、加速度、扩展角、反应时间等)描述驾驶员行为。认知模型概述了驾驶员作为心理人类的内部状态流和调节其行为的动机。
  • 数据驱动模型:(下图4c)这组方法依赖于使用机器学习分析自然驾驶数据来分析驾驶员行为。数据驱动模型可以学习人类行为的生成或判别模型,以对驾驶员未来的决策或首选驾驶风格进行预测。模型验证可以通过将预测与实际数据进行比较以及通过人在环仿真来完成。

现有研究通过自然驾驶数据分析突显了驾驶员在行人存在的情况下的行为。[24]的作者发现在超越沿车道行走的行人、超越相反方向行走的行人或当对向交通存在时,驾驶员倾向于保持较小的最小横向间隙和较低的超车速度。最小横向间隙和时间-碰撞的关系与超车速度仅有弱相关。[25]中的结果显示,车辆减速行为与初始时间到碰撞(TTC)、对行人过马路意图的主观判断、车速、行人位置和过马路方向相关。

较少关注多道路使用者设置,其中多辆车和行人相互作用。在[26]中,作者基于在路口收集的数据开发了一个多道路使用者对抗逆强化学习(IRL)框架,以仿真路口的驾驶员和行人行为。总体而言,DBM是一个有前途的研究领域,有望显著改进交通系统的安全性和效率。然而,仍然需要在开发和验证这些模型方面进行大量工作。未来的研究应着重于开发更全面的模型,考虑到更广泛的因素,如驾驶员的内部状态、环境和与其他HRU的交互。

行人行为研究

由于行人被认为是最脆弱的道路使用者,缺乏保护装备且移动速度较慢,因此调研行人行为与自动驾驶汽车与行人交互对安全性和可接受性具有明显的相关性。几十年来,行人行为一直是广泛研究的对象。自动驾驶汽车的出现最近引发了许多关于行人行为的新研究问题。鉴于这个领域的大量工作以及作者的目标,本节调研了主要的研究而不是提供详尽的调研。综述涵盖了与车辆交互的行人行为研究,从三个角度进行:沟通、横穿行为的理论和模型,以及涉及自动驾驶汽车的应用。旨在确定和总结它们对开发具有交互感知能力的自动驾驶汽车的价值。

通信

在动态交通环境中,道路用户通过其运动和空间暗示向彼此故意或无意地传递信号信息,产生了明确和隐含的交流。研究结果一致认为,由于缺乏驾驶员角色,自动驾驶汽车的运动学和信号信息对行人道路行为产生了显著影响。因此,识别影响行人道路行为的关键动作提示和信号的研究具有重要意义(见下图5a)。

隐含的沟通信号,如车辆的运动线索,涉及到影响其自身运动的道路用户行为,但可以被解释为另一道路用户的意图或运动的线索。接近的车辆与行人之间的距离或TTC是影响行人行为的最关键的隐含信息。证据表明,行人更倾向于更多地依赖距离而不是TTC。也就是说,对于相同的TTC,当车辆以较高的速度接近时,更多情况下,行人会过马路。最近的研究表明,行人利用了来自车辆运动的多个信息源,而不是依赖于一个。速度、距离和TTC对行人行为的影响是相互耦合的。

刹车动作,是影响行人行为的另一个关键的隐含信息。车辆的运动与行人对车辆的信任、情感和对行人决策的影响相关。当接近的车辆早早减速并轻刹车时,行人感到舒适,开始迅速过马路。急刹车导致行人回避行为。另一方面,早期的刹车动作和强烈的俯仰减少了行人理解车辆意图所需的时间。以较慢的速度接近行人且礼让的车辆可能阻碍理解。

交通特征 ,如交通量和间隙大小,为行人提供了隐含信息。高交通量迫使行人接受较小的交通间隙,因为时间成本的增加,增加了他们冒险的倾向。然而,大量证据表明,倾向等待的行人更为谨慎,不太可能接受冒险的间隙。交通量和行人过马路行为之间的关系依赖于上下文,可能受到交通中间隙的大小和顺序的影响。

此外,行人朝着道路的移动、站在路边和行人头部方向可能向接近的车辆传递关键的隐含信息。行人通常通过踏上道路或看向接近的车辆来主张他们的通行权。

明确的沟通信号 涉及道路用户的行为,向其他道路用户传递信号信息,而不影响自己的运动或感知。一个常见情况是车辆通过外部人机界面(eHMI)向行人传递信息。在自动驾驶汽车的背景下,没有人类驾驶员,eHMI变得很重要。大量证据支持了eHMI在行人与自动驾驶汽车的交互中的益处。已经提出了各种类型的eHMI原型,如车头灯、灯带、拟人符号,但对于最佳eHMI形式和要传达的信息的共识仍然难以确定。

许多研究表明,eHMI的性能取决于各种因素。行人对eHMI的熟悉程度、信任和解释可能会显著影响eHMI向行人传达信息的有效性。例如,行人更好地理解传统的eHMI(闪烁的大灯)作为车辆让行的信号,而不是新颖的eHMI(灯带)。如果eHMI失效,行人过度信任eHMI可能导致他们对车辆运动线索过于依赖,这是危险的。eHMI传递的以自我为中心的信息,如“OK TO CROSS”,比分配给他人的信息如“STOPPING”更具有说服力。此外,eHMI的可靠性受到天气、光照条件和车辆行为的影响。例如,在恶劣天气下,行人可能无法读取车辆标志。当车辆不让行或急剧减速时,行人愿意过马路的意愿不受eHMI的影响。其他概念,如将eHMI安装在道路基础设施上而不是车辆上,以及将eHMI与车辆运动线索结合使用,可能胜过纯粹的eHMI。

此外,从车辆的角度来看,虽然较少见,行人也使用明确的信号与自动驾驶汽车进行交流。这些信号包括眼神接触和手势,行人用这些信号确保自动驾驶汽车能看到他们并请求通行权。为了弥补没有人类驾驶员的缺陷,自动驾驶汽车可以利用驾驶座位上的类人视觉化身和无线通信技术,以增强车辆与行人的沟通。

横穿行为的理论和模型

行人横穿行为涉及各种认知过程。先前的研究表明,在交互中构建行人横穿行为涉及三个层次的过程,即感知、决策、开始和运动。基于这一假设,以下各节将综合有关这三个认知过程的行人横穿行为的理论和模型(见图5b)。

视觉感知理论,由吉布森(Gibson)奠定,解释了当物体接近观察者时,其在视网膜上的图像会扩展,形成人类碰撞感知的基础。在横越场景中,当车辆在视网膜上的图像扩展速率达到一定阈值时,行人会感知到车辆正在靠近,这被称为视觉逼近现象。一个心理物理模型将这种扩展速率简化为逼近行人瞳孔处的车辆形成的视觉角度变化,表示为 ̇θ(图6a)。最近的研究表明,行人使用 ̇θ 作为观察逼近车辆的关键视觉线索。然而,虽然 ̇θ 提供了空间信息,但它并不传达车辆何时到达行人的位置。在横越场景中,当车辆礼让时,行人需要时间信息来估计车辆是否能及时停下。Lee的数学演示表明,表示为 θ 与 ̇θ 比值的视觉线索 τ 可能指示接近车辆的TTC。此外,τ 的第一时间导数,表示为 ̇τ,用于检测当前减速率是否足以避免碰撞。此外,研究发现,在给定角度下,即方位角,行人可能会视觉感知即将发生的碰撞事件,方位角是车辆与行人注视线之间的角度(图6b)。

除了视觉线索外,行人的感知可能取决于感知策略。田等人的研究表明,对车辆行为的行人估计可能是一个单独的过程或横穿决策的一个子过程。当有较大的交通间隙时,行人倾向于不依赖车辆驾驶行为,而更依赖间隙大小。同样,Delucia 指出,当碰撞事件距离较远时,人类倾向于使用'启发式'视觉线索,如θ和 ̇θ。然而,随着碰撞变得迫在眉睫,光学不变量如τ支配感知,提供更丰富的时空信息。

除了感知机制,各种因素可能影响行人的感知。研究表明,由于与年龄相关的感知限制,老年人或儿童行人面临较高的碰撞风险。老年行人更倾向于更多地依赖距离而不是TTC来判断靠近的车辆,而儿童难以检测以较高速度靠近的车辆。分心,特别是涉及视觉和手动部位(如使用智能手机)的分心,会分散大量的注意资源,并影响行人观察交通状况。相比之下,认知分心,比如听音乐,可能不会显著影响行人的感知。

决策 在没有信号灯的无控制交叉口,行人通常会与让行或不让行的车辆进行交互。在不让行的情况下,行人通常通过评估靠近车辆之间的间隔来做出横穿决策,这被称为间隙接受行为(GA)。这一概念导致了关键间隙模型的发展,包括Raff的模型、HCM2010的模型和Rasouli的模型。另外,二元logit模型将横穿决策视为二元变量,利用人工神经网络(ANN)、支持向量机(SVM)和逻辑回归(LR)等机器学习算法。例如,Kadali等人使用ANN根据各种独立变量(图6c)预测横穿决策,而Sun等人使用LR与诸如行人年龄、性别、组大小和车辆类型的变量。

在涉及让行车辆的场景中,横穿决策往往遵循一个称为双峰横穿行为(BC)的双峰模式。当交通间隙足够大或车辆即将停车时,行人更倾向于横穿。然而,在这种情况下做出决策可能是具有挑战性的,因为决策线索与碰撞风险之间存在对立关系,碰撞风险与交通间隙呈负相关,与车辆速度呈正相关。Zhu等人根据车辆速度和距离将横穿决策分为三组:横穿、困境条件和等待(图6d)。此外,田等人假设行人根据BC行为采用不同的决策策略,并将横穿决策建模为对不同视觉线索的响应。

虽然上述方法是基于观察到的行为模式来仿真横穿决策,其他模型则深入研究了支撑这些决策的心理机制。具体而言,田等人基于行人的视觉线索仿真了行人的GA行为,并在具有更复杂的视觉感知机制的让行场景中进行了扩展。王等人利用强化学习(RL)模型捕捉了基于有限感知机制的行人横穿行为。此外,一类模型,即证据积累(EA)模型,如漂移扩散模型,提出横穿决策是由视觉证据和噪声的积累决定的,一旦达到一定阈值,决策就确定了。整合了大规模的心理理论,详细解释了行人横穿决策(图6e)。此外,博弈论也被应用于在行人与车辆协商通行权时仿真横穿决策。传统的博弈论、序列鸡(SC)博弈和双累积器(DA)博弈被用来表征动态横穿决策。

环境的多样性和行人的异质性进一步复杂化了横穿决策建模。例如,横穿多条车道通常涉及行人在车道线等待并逐个接受交通间隙,被称为滚动间隙行为。在车道线等待的行人可能更有可能接受较小的交通间隙,而在路缘等待的行人可能不太可能接受。另一个复杂的场景是横穿双向道路,这在物理上和认知上都是具有挑战性的。行人需要考虑两边的车辆。同样,在交叉口处穿越拥挤的连续交通也是具有挑战性的,因为行人需要预测交通上游的交叉间隙,并在安全性和时间效率之间做出权衡。通常认为,随着等待时间的增加,行人倾向于接受更冒险的横穿机会。然而,最新的证据表明,倾向等待的行人更为谨慎,不太可能接受冒险的间隙。关于行人的异质性,应用ANN和LR模型来表征年龄对横穿决策的影响。分心,如手机使用,也可能影响行人的横穿决策。应用ANN来仿真手机使用对横穿决策的影响。此外,行人通常成群过马路,展示出群体行为。该行为被描述为群体成员保持与群体中心一定距离的趋势。使用EA模型来表征群体决策中信息级联,考虑了先前道路使用者的决策的影响。

开始和运动 横穿启动时间(CIT)代表行人开始过马路所需的时间,反映了他们决策的动态特性。一般来说,CIT是横穿机会可用时和行人开始移动之间的持续时间。漂移扩散理论认为CIT受认知系统中噪声证据的积累影响,反映了行人认知和运动系统的效率。各种因素可能影响CIT,包括车辆运动、年龄、性别和分心。面对更高的车速,行人倾向于更慢地开始横穿。此外,女性行人倾向于比男性更快地开始横穿,老年人倾向于比年轻行人更早开始。分心的影响取决于其组成部分。

在行人面对不让行车辆的情况下,随着车辆与行人之间距离的减小,碰撞的风险增加。因此,行人通常通过评估靠近车辆的“snapshots”来迅速做出决策。在这些情况下,CIT的分布通常是集中且右偏的。响应时间模型,如指数高斯模型和偏移瓦尔德(SW)分布,被用来仿真这些情况下的CIT。例如,将CIT建模为遵循SW分布的变量(下面图7a)。

在车辆让行场景中,如前节所述,CIT表现为双峰分布。对于早期的CIT组,分布类似于不让行场景中的分布,因为行人采用相似的决策策略。然而,对于晚期组,分布是复杂的,不能用标准的响应时间分布来描述。已经提出了具有时变证据的EA模型来解决这种复杂性,允许生成具有复杂形状的CIT分布(下面图7b)。此外,使用响应时间模型的联合分布对车辆让行场景中的CIT进行建模。此外,应用RL模型来学习行人的横穿启动模式。

在行人启动横穿后,他们需要穿过道路。步行是横穿行为的关键部分,受到许多因素的影响,如靠近车辆的存在、基础设施、行人年龄和分心。行人调整其行走轨迹以避让车辆。在多车道横穿中,他们倾向于移动到并等待在车道线上,依次接受每个车道的交通间隙。横穿时,行人的行走速度通常比其他场景中的正常行走速度要快。虽然性别对行走速度没有显著影响,但青少年和老年人的步行速度较慢。分心,如使用手机,可能会降低行人的步行速度。

行为可以使用微观行人运动模型来仿真,包括元胞自动机(CA)模型、社会力(SF)模型和基于学习的方法。CA模型在空间、时间和状态上是离散的,使其成为仿真复杂动态系统(如行人-车辆相互作用)的理想选择。基于牛顿第二定律的SF模型被用于仿真行人-车辆相互作用和大规模行人流(下面图7c)。使用SF模型仿真了在涉及低速车辆的复杂交互场景中的行人群体的横穿行为。

与上述白盒模型相对,还有基于学习方法的黑盒模型,它们从自然数据集或预定义环境中学习行人行走行为。例如,采用人工神经网络(ANN)通过将视频中提取的行人与其他物体之间的相对空间和运动关系纳入考虑来学习行人的行走行为。将SF模型的输出作为输入输入到ANN中,以仿真多种行人行走行为。提出了一种长短时记忆网络(LSTM)行人轨迹预测模型(下面图7d)。此外,RL和IRL模型也被用于仿真行人的行走行为。应用RL模型学习在SF环境中多个行人的行走行为。开发了一种IRL模型,从视频数据集中学习行人的行走行为。

自动驾驶汽车涉及的应用

近年来,研究自动驾驶汽车与行人之间的交互关系的兴趣逐渐增长。这种兴趣导致了大量研究,将行人横穿行为的理论和模型应用于增强或评估自动驾驶汽车在这些交互中的性能(下表2)。

一种普遍的方法是使用基于学习的方法,该方法从现实世界的数据集中学习行人的意图和轨迹,以帮助自动驾驶汽车的决策制定。例如,提出了一种基于图卷积神经网络的行人轨迹预测模型,该模型考虑了过去的行人轨迹,以预测自动驾驶汽车使用案例的确定性和概率性未来轨迹。其他类似的模型旨在通过考虑交互的社会背景来提高预测准确性。例如,提出了一种LSTM行人轨迹预测模型,该模型考虑了过去的轨迹、行人头部方向和与靠近车辆的距离作为输入。此外,还有研究旨在预测行人横穿意图。分别应用SVM、LSTM和ANN来预测行人的横穿意图。

学习方法在预测行人轨迹和意图方面已经证明是有效的。然而,这些模型需要大量的数据才能获得强大的性能,在处理缺乏足够数据的交互案例时受到限制。此外,这些模型的黑盒性质可能使得难以解释生成的轨迹和意图,这对自动驾驶汽车的决策建模构成了挑战。为了解决这些问题,专家模型已经被开发出来。例如,SF模型已经被修改以通过纳入更多的交互细节(如TTC和车辆与行人之间的交互角度)来预测自动驾驶汽车的行人轨迹。此外,SF和CA模型还嵌入到自动驾驶汽车决策模块中,以表示行人横穿行为并指导自动驾驶汽车在与行人的交互中的决策。

此外,横穿决策模型也已应用于自动驾驶汽车研究。例如,采用了横穿关键间隙模型来表征其自动驾驶汽车决策模块中的行人横穿决策。将其速度-距离模型应用于为自动驾驶汽车设计防御性和竞争性的交互行为。在其提出的自动驾驶汽车决策模块中使用LR模型作为行人横穿决策模型。为了增强横穿决策的动态和交互性质,还使用博弈论模型来仿真在与自动驾驶汽车协商让行权利时的横穿决策。研究人员还尝试使用行人感知理论或模型来设计自动驾驶汽车的决策策略。例如,使用控制理论基于视觉线索、τ和方位角仿真了自动驾驶汽车-行人耦合行为。用方位角对自动驾驶汽车和行人的让行行为进行建模。

交互建模

交互建模技术对各种自动驾驶任务都至关重要,从交通预测到自动驾驶规划和决策。在自动驾驶中理解和建模社交交互对于预测场景动态并确保安全的自动驾驶行为至关重要。准确的预测提高安全性,而误解的自动驾驶行为可能导致事故。此外,理解自动驾驶行为的社会影响还可以影响周围的交通,比如通过提前停车来鼓励行人过马路。由于交互建模技术可以应用于不同的任务领域,因此作者将重点放在无论它们被设计用于哪种具体驾驶任务,都将其划分为不同的交互建模技术。

首先,可以在学习方法和基于模型的方法之间进行区分。在自动驾驶领域进行了广泛的研究,利用了机器学习和深度学习技术。在学习方法中,从大量数据集中学习模型。这一系列方法不需要对系统有任何先验知识。数据驱动方法是在示例数据集上训练的,然后用于进行预测或决策。相反,基于模型的方法从对系统的理论理解开始。这种先验知识用于创建系统的数学模型。然后使用经验数据来验证模型或调整其参数,以最小化模型预测与数据之间的差异。

基于另一个区分是方法是否明确利用人类思维的认知特征来解释人类行为,或者只是隐含地仿真交互,试图将环境输入映射到决策/行为。第三节介绍的人类行为研究可以作为发展明确方法的指南。例如,博弈论方法采用更明确的方法,将交通参与者视为理性的道路使用者商,他们积极考虑彼此的行动。另一方面,作为非认知方法的示例,社交力方法提供了更经验主义的观点,捕捉参与者对彼此行为的影响,而不明确详细说明解释道路使用者商在交互期间的推理的过程。作者建议根据它们是否明确地或隐含地仿真交互来区分现有的建模方法。

根据这两个标准,作者确定了四大交互建模类别,它们如下图8所示。

基于学习的隐式方法

这些方法依赖于机器学习或深度学习技术。交互是隐式建模的,这意味着道路使用者的行为无法通过模型解释。模型只从数据中学习输入-输出映射。模型学习可以通过利用交互式模型架构来实现。一般来说,使用专门用于交互的神经网络架构的深度学习方法属于这个类别。

在这种类型的方法中,目标是学习一个概率生成模型,该模型预测道路使用者的未来行为a。该模型是在环境状态x的条件下的概率分布,其中包括周围道路使用者的状态,以及一组可学习的参数θ。

基于学习的带认知特征的方法

这些方法依赖于明确手工制作的交互特征,这些特征被用作学习系统的输入。这种类型的交互特征可以包括时间间隔(TTC),相对距离等,反映了人类推理背后的某些认知过程。例如,在中,开发了一种利用车辆间交互的LSTM,用于分类周围车辆的变道意图。交互特征由风险矩阵组成,该矩阵考虑了周围车道中车辆的最坏情况TTC和相对距离。图卷积网络也属于这一类别,因为交互特征可以在图的邻接矩阵中明确建模。

在这种类型的方法中,目标是学习一个概率生成模型,该模型类似于1中预测道路使用者的未来行为。在这种情况下,概率分布可以在环境状态x和明确手工制作的交互特征I(x)的条件下。

基于模型的非认知方法

这些方法中的建模是非认知的,因为交互不会主动推理出道路使用者行为背后的认知过程。该组方法包括社交力和势场。交互通过潜在函数(或SF)来描述,其中包含一组可学习的参数,这些参数可以根据经验数据进行调整。另一组方法包括基于驾驶风险场的方法,这些方法基于这样一个假设,即驾驶员行为是由基于风险的场域引起的。基于模型的隐式方法的优势在于它们可以很容易解释,并且可以嵌入领域知识,比如交通规则和场景背景。一些模型定义了一个潜在场,并将道路使用者的动作定义为与该场的梯度成正比。

否则,可以直接对力进行建模,从而不需要梯度运算aF*(*x)。

基于模型的认知方法

基于模型的认知方法描述了人类决策背后的推理过程。可以区分为两类主要方法:效用最大化模型和认知模型。

在效用最大化方法中,人类被建模为优化器,选择其行动以最大化其未来效用。

这些方法包括博弈论和马尔可夫决策过程(MDP)。在博弈论方法中,道路使用者被建模为相互竞争或合作的玩家,从而考虑到他们如何对彼此的反应。博弈论框架为建模人类驾驶员之间的动态交互提供了透明且明确的解决方案,允许对决策过程进行清晰的解释。然而,由于这种方法在道路使用者数量增加时计算复杂性不好处理,因此很难满足计算可处理性的要求。另一个可能的解决方案是将人类行为建模为MDP的道路使用者,这为在结果受到机会和决策者决策影响的情况下建模决策提供了出色的框架。MDPs的解决方案可以通过学习方法找到,例如DRL算法或蒙特卡洛树搜索,或者使用动态规划技术。

第二组方法旨在使用心理认知过程捕获道路使用者行为背后的行为动机。这组方法可以包括:

  • 刺激-响应模型,其中驾驶员或行人的行为取决于视网膜上的视觉刺激;
  • 证据积累,其中决策被描述为累积证据的结果;
  • 心灵理论,它表明人类使用对他人思想和行为的理解来做出决策。通过预测他人的行动并推断他们的知识,人类可以有效而安全地驾驶。

在接下来的部分,将更详细地分析每个类别的交互建模。特别是,认知和非认知学习方法将在下一节中讨论。基于模型的认知方法已在第前面章节中进行了详细讨论,其中包括社交力和势场、驾驶风险场模型、心灵理论、刺激-响应模型和证据积累模型。后面章节将包括效用模型方法,其中包括MDP和博弈论。

基于学习的方法

机器学习(ML)方法广泛应用于自动驾驶的各种任务,包括目标检测、场景理解、路径规划和控制。通过从大量数据中学习,ML方法可以学会做出比人类更准确和高效的决策。本节将包括在前一节中确定的隐式和显式基于学习的方法,并更详细地介绍相关论文。下图9展示了一些基于学习的方法的概述。

由于神经网络学习表示方面的最新进展,现在可以使用端到端的驾驶方法,将原始传感器数据作为输入,输出控制命令,如转向和油门,以解决路径规划和控制问题。然而,从高维原始感知数据(例如LiDAR点云、相机图像)中学习整个驾驶任务是具有挑战性的,因为这涉及同时学习感知和决策制定。在大多数工作中,学习如何行动的过程假设场景表示对运动规划和决策制定模块可用。实际上,这需要将端到端驾驶分为两个主要模块,一个模块中自动驾驶汽车学习如何看,另一个模块中学习如何行动。

有两种主要的端到端自动驾驶规划和控制任务的方法(学习如何行动):

  • 模仿学习:道路使用者学习模仿专家的行为。
  • 深度强化学习(DRL):道路使用者试图在仿真环境中进行的一种试错过程中学习如何行动。DRL方法将在后面章节中更详细地分析。

模仿学习是一种机器学习范例,道路使用者通过模仿专家演示者的行为来执行任务,这使其成为训练自主系统和机器人的有价值的方法。在[151]中,通过图注意力网络(GAT)学习交互特征。该网络的输入包括周围道路使用者的运动学信息以及编码来自鸟瞰图的场景表示的特征向量。该模型在CARLA仿真器中由专业驾驶员生成的合成数据上进行训练。模仿学习方法在与训练场景相似的情景中通常表现出色,但在场景偏离训练分布时通常会失败。像数据集聚合(DAgger)这样的算法可以通过为看不见的情况增加人标注的数据来改善模仿学习策略的性能。然而,要求专家标注新的训练样本可能既昂贵又不可行。

在场景理解和运动预测的背景下,深度神经网络已广泛使用。[127]等人在其神经网络架构中提出了一种社交池操作,以考虑人群运动预测中的周围邻居。类似地,使用具有最大池化操作的星形拓扑网络来考虑多智能体预测中的交互特征。CIDNN 使用LSTM跟踪人群中每个行人的移动,并根据他们与目标行人的接近程度为每个行人的运动特征分配权重,以进行位置预测。[129]的研究创建了一个数据集,并提出了一个名为VP-LSTM的框架,通过利用异质道路使用者的不同LSTM架构,预测拥挤混合场景中车辆和行人的轨迹。[130]中应用了生成对抗网络(GAN)来为场景中的任何道路使用者生成合理的预测。这些方法的共同特点是使用循环神经网络,结合池化操作,捕捉时空交互特征。在社交池操作期间,周围道路使用者的隐藏状态成为用于预测当前道路使用者运动的特征。扩散模型是另一组在建模时空轨迹方面越来越受欢迎的深度学习技术,可用于预测行人和车辆轨迹。

图卷积网络(GCNs)已广泛用于具有相互作用道路使用者的轨迹预测任务。在这些方法中,道路结构被表示为一个图,其中每个节点表示交通参与者。每个节点可以携带信息,如交通参与者的类别(汽车、卡车、行人等)、其位置或速度。显式交互可以在图的邻接矩阵中建模,而隐式部分包括图卷积层。GCNs广泛用于交通预测,并且最近还在运动规划中与DRL结合使用。

可以用于建模交互的其他机器学习技术包括高斯过程和概率图模型,包括隐马尔可夫模型。

基于效用的方法

基于效用的道路使用者使用效用函数来指导决策制定,为可能的世界状态分配值并选择导致最高效用的行动。与基于目标的道路使用者不同,后者根据目标满足程度评估状态,效用基的道路使用者可以处理多个目标并考虑概率和行动成本。效用基的方法包括马尔可夫决策过程(MDP)和博弈论模型。

马尔可夫决策过程

MDP是一种数学框架,用于建模决策问题,其中结果部分是随机的,部分是由决策者控制的。MDP的建模框架如下图10所示。有两种主要方法可以解决MDP问题:动态规划和强化学习。通常,后者更适用于自动驾驶,因为它们更适合高维状态空间。

强化学习

强化学习(RL)利用马尔可夫决策过程(MDP)来建模复杂的环境,并包括一组算法来学习最大化期望奖励的策略。传统上,动态规划是实现这一目标的可靠方法,通过迭代计算每个状态的值,从终端状态开始,逆向工作到初始状态。该方法在状态空间较小的情况下表现出色。然而,在面对具有庞大状态空间的RL挑战时,例如自动驾驶的领域时,这可能会导致计算负担。更常见的是,使用深度神经网络(DRL)增强的RL。DRL算法在样本效率和可扩展性方面可能优于动态规划算法,但它们也可能更复杂,训练难度较大。有关DRL应用于自动驾驶的更详细调研,请参阅。

自动驾驶中的DRL解决方案将根据使用的场景、状态空间表示、动作空间和使用的算法进行分类。DRL中常用的状态表示见下图11:

  • 基于向量的表示:在这种表示类型中,有关周围车辆的信息,如位置和速度,包含在长度固定的向量中;
  • 鸟瞰图(BEV):从顶部视角呈现自车周围环境的2D图像表示;
  • 占用栅格表示:类似于BEV图像,它是围绕自车的环境的2D离散表示。它是一个2D或3D的单元格网格,每个单元格被分配被障碍物占用的概率,以及关于占用单元格的实体类型的分割信息。
  • 图表示:这是将自动驾驶汽车周围环境的状态表示为图的一种方式。图中的节点表示环境中的对象,如车辆、行人和红绿灯。图中的边表示对象之间的关系,如距离或潜在碰撞的可能性。图表示紧凑而高效,是表示环境状态的有前途的方法。

基于向量的表示通过以紧凑而高效的方式表示对象,但以牺牲交通信息的方式,将其限制为周围车辆的固定维度子集。BEV图像和占用栅格提供了一种用固定方式表示环境的简单方法,可以轻松更新。然而,在高混杂度或不确定性的环境中,它们可能不准确。图表示可以以紧凑的方式轻松表示道路使用者之间的关系。另一方面,随着周围道路使用者数量的增加,更新图可能会变得复杂和计算昂贵。

动作空间可以是连续的或离散的。连续动作通常包括自车的纵向加速度和转向角。离散动作通常取决于正在解决的特定任务。例如,在变道场景中,离散动作包括左变道、保持当前道路或右变道。较低层控制器调节车辆的转向和加速度以执行该动作。

尽管大多数DRL论文关注仅有车辆的交通场景,但处理混合交通场景或车辆-行人交互的论文数量较有限。一些研究涉及移动机器人的人群导航。在[174]中,使用DRL在多智能体环境中导航机器人。在[175]中,通过使用基于注意力的神经网络和社交池提高了[174]中的模型。在[176]中,使用DQN道路使用者开发了一种自动制动系统。作者实现了一种创伤记忆,类似于优先经验重播(PER),用于从碰撞场景中采样。在[178]中,训练了一个DQN道路使用者来避免与横穿行人的碰撞,并进一步用于开发辅助驾驶员在行人避免碰撞情景中的ADAS系统。Deshpande等人使用了一个四层的网格状态表示。在类似的情景中,[180]的作者开发了一个使用连续动作的SAC道路使用者。通过在奖励函数中集成SVO组件,可以训练车辆具有不同的社交符合行为,从亲社会行为到更具攻击性的行为。

在实际场景中部署深度强化学习(DRL)面临着重大挑战,是一个开放的研究领域。一些研究,直接在实际应用中实施DRL策略,无需额外微调,展示了它们在无信号交叉口等场景中的有效性。迁移学习,深度学习的一个子领域,目前正在探索将知识从仿真环境转移到现实世界。两种主要技术包括域自适应和域随机化。在域随机化中,该方法旨在具有足够大的训练数据集,以涵盖真实世界作为特定情况。通过域自适应,目标是从源分布中学习一个在目标分布上表现良好的模型。

与DRL相关的另一个问题是,基于学习的策略具有较高的训练成本,并且很难实现语义解释。最近,一些研究人员专注于可解释的学习算法和终身学习算法来解决上述缺点。

多智能体强化学习

当多个RL道路使用者被部署到真实世界并相互交互时,问题变为多智能体强化学习(MARL)。为了处理多智能体系统,有多种方法可行。第一种方法是使用一个集中式控制器来管理整个车队。通过增加状态维度以包含所有车辆,并具有联合动作向量,问题可以再次变成单智能体问题。缺点是状态和动作空间的维度增加,这可能使学习变得更加复杂。最近,图形表示法已被用于克服问题的维度诅咒。另一种方法,受到Level-k博弈论的启发,是使用单个DRL学习器,但用其先前副本替换一些周围道路使用者。这种技术类似于在竞争性DRL场景中使用的自我对弈。最后一种方法是采用MARL方法来制定问题,其中多个学习器并行工作。在[187]中提出了一种多智能体深度确定性策略梯度(MADDPG)方法,该方法为每个道路使用者学习一个单独的集中式评论家,使每个道路使用者可以具有不同的奖励函数。详见,其中对MARL进行了广泛的调研。在自动驾驶中,MARL的其他应用可以在中找到。

部分可观察马尔可夫决策过程

部分可观察马尔可夫决策过程(POMDPs)是MDPs的一般化。如果过程状态s不能直接被决策者观察到,则MDP被认为是部分可观察的。POMDP在计算上很昂贵,但提供了一个通用的框架,可以对各种现实决策制定过程进行建模。由于硬件的改进,POMDP在自动驾驶的应用越来越受欢迎。在[190]中,POMDP已被用于在人群中导航移动机器人。机器人对行人的可能未来目标保持信念。POMDP还在存在行人时用于汽车决策制定。在POMDP中,将自车周围的道路使用者建模为环境的一部分,并使用信念向量来建模它们的意图。在[189]中,作者开发了一种多智能体相互作用感知的决策制定策略,该问题被建模为POMDP,并且使用基于注意力的神经网络机制来建模交互。POMDP还被用于解决交叉口处环境遮挡下的决策制定问题。有关POMDP在交互决策中的其他应用,请参见[193] [194]。传统的控制方法通常按顺序处理传感器不确定性和规划,在其中状态估计器处理传感器噪声和不确定性,然后使用确定性策略根据估计的状态确定动作。另一方面,POMDP不做这样的分离,策略是基于信念状态确定的。周围道路使用者可以被明确地建模为决策者(MARL),也可以被视为单个道路使用者在其中操作的环境(RL或DRL)。

博弈论模型

博弈论是研究理性道路使用者之间战略交互的数学模型。博弈论主要应用于经济学,但也在自动驾驶中出现。特别是,对于自动驾驶来说,动态的非合作博弈论非常重要。如果博弈涉及多个决策且决策顺序重要,那么它是动态的;如果每个参与者都追求自己的兴趣,与其他人的兴趣部分冲突,那么它是非合作的。动态非合作博弈论包括离散时间和连续时间的博弈,并且它提供了对多智能体环境的最优控制的自然扩展。

博弈论研究在最优玩家假设下的平衡解,其中多个概念适用于轨迹博弈。动态博弈分为开环和反馈博弈,基于可用信息,开环假设每个玩家只能获得博弈的初始状态的信息。对于反馈博弈,每个道路使用者可获得博弈的当前状态的信息。尽管第二种类型的博弈更准确地描述了自动驾驶设置,但通常出于其简单性而更喜欢使用开环解决方案。自动驾驶中的常见平衡包括开环纳什、开环斯塔克尔伯格、闭环纳什和闭环斯塔克尔伯格平衡。有关该主题的更多详细信息,请参见[197]。

当道路使用者的动态必须符合一组约束,例如避免碰撞的约束时,平衡被称为广义平衡。[220]中研究了广义平衡问题的数值解。开环纳什均衡配方的缺点是玩家无法直接推断他们的行为如何影响周围道路使用者的行为。这方面的第一个简化是开环斯塔克尔伯格均衡,例如在[203]中应用于无人机自主比赛的背景下。在斯塔克尔伯格竞赛中,领导者首先行动,然后依次跟随后续玩家,允许那些具有较高优先级的人考虑那些具有较低优先级的人将如何计划他们的行动。在[207]中,作者提出了一种基于开环斯塔克尔伯格博弈的自主赛车的顺序双矩阵博弈方法。也可以找到斯塔克尔伯格配方的其他应用。可以在[223]中找到解决广义反馈纳什均衡问题的配方。Sadigh等人将自动驾驶汽车-人交互建模为Stackelberg竞赛中的部分可观察随机游戏。人类估计自动驾驶汽车的计划并相应行动,而自动驾驶汽车优化其自己的行动,假设对人类的行动具有间接控制权。

通常,博弈论方法面临以下问题:(1)计算复杂性随着道路使用者数量的增加和时间视角的增加而呈指数增长,(2)它们假设解释其他道路使用者行为的效用函数对自车辆是已知的,并且道路使用者根据这些奖励函数理性行事-然而在博弈论金融问题中已知,人类往往不是理性行事;(3)道路使用者的行为可能是随机的,并且解决混合或行为策略的计算变得更加棘手。自然地,博弈论还具有捕捉行为相互依赖性和一些问题的确切解决方案的巨大优势。博弈论自动驾驶领域的许多论文尝试通过进一步简化问题或找到近似解决方案来缓解这些问题。现在,将看一下该领域的一些论文,分析它们的简化假设。

Level-k理论打破了纳什均衡理性期望逻辑,假设人们认为其他人比自己不那么复杂。这就是Level-k推理,其中迭代过程在k步之后停止。其他道路使用者被建模为Level-k-1的参与者。Level-k道路使用者假设所有其他道路使用者都是Level-(k-1),并基于这一假设进行预测,并相应地做出反应。在[219]中,Level-k推理被应用于环状交叉口场景。这种方法还在[206]中被纳入了一个RL框架中:作者将问题限制为两个交互道路使用者,并使用基于DQN的RL方法解决了具有两辆车的马尔可夫博弈。在[218]中,Level-k推理被采用来解决交叉口的冲突。作者们表明,在自车辆是Level-k道路使用者且所有周围车辆都是Level-k-1或更低级别的情况下,冲突可以很容易地解决。然而,当两个道路使用者都是相同级别时,碰撞的数量增加,这表明需要进一步改进以处理具有相同类型道路使用者的场景,这在多个自动驾驶汽车的情况下是至关重要的。

为了保持计算复杂性可控,可以通过确定与自车辆进行交互的所有道路使用者的子集来减少道路使用者的数量。时间视角也可以通过考虑远程视角控制器或暗示分层博弈规划而进行限制。后者包括具有短视角战术规划者和具有长视角战略规划者的组合。第一个负责准确仿真问题的动力学,第二个负责使用近似动力学决定战略。

迭代线性二次(LQ)方法在机器人学和控制领域日益普遍。[201]的作者将问题表述为具有非线性系统动力学的一般和差分博弈。在[202]中,他们将他们的方法扩展到具有反馈线性化动力学的系统。解决博弈理论问题的另一种方法是使用迭代最佳响应来计算纯纳什均衡,即纯策略中的纳什均衡。[216]的作者提出了一种“敏感性增强”的迭代最佳响应求解器。在[204]中,提出了一种基于IBR的在线博弈论轨迹规划器。该规划器适用于在线规划,并在竞争性赛车场景中展示出复杂的行为。Williams等人提出了一个IBR算法,以及一个信息论规划器,用于控制两个地面车辆在紧密接触中。

在[13]中,Schwarting等人提出了解决纳什均衡问题的迭代最佳响应的替代方法,该方法基于将优化问题重新制定为使用Karush–Kuhn–Tucker条件的本地单层优化。在[137]中,博弈论被用来建模其他车辆的决策制定。他们提出了一个并行游戏交互模型(PGIM),用于提供积极和社会合规的驾驶交互。为了解决环境不确定性,将博弈论的纳什均衡概念扩展到POMDPs。在[215]中,作者通过构建关于其他道路使用者目标和约束的多个假设,对其他道路使用者的意图存在不确定性进行了考虑。

讨论与未来挑战

在这次全面的调研中,介绍了对自动驾驶进展至关重要的两个关键部分:人类行为研究和交互建模。这些部分构成了理解和优化自动驾驶场景中复杂交交互态的基础。在本部分,将强调未来自动驾驶研究中交互场景的挑战和研究方向。

人类行为研究

在社会对自动驾驶的强烈愿望驱动下,人类行为研究在近年来再次成为一个热门话题,尤其是在自动驾驶汽车背景下的研究。为了更好地理解自动驾驶汽车交互过程中的行人行为,仍然需要克服许多挑战。

总体而言,驾驶员行为模型的探索是一个具有潜力的研究领域,有望在交通系统的安全性和效率方面取得实质性的改进。然而,在这些模型的开发和验证方面仍有大量工作需要进行。未来研究应优先考虑创建更全面的模型,涵盖更广泛的因素,包括驾驶员的心理状态、周围环境以及与道路上其他人的交互。

对于行人行为研究,一个重要的挑战是沟通。首先,尽管大多数研究者都同意eHMI的有效性,但在其内容、形式和视角方面仍然缺乏共识。一个悬而未决的问题是,eHMI是否应该是拟人化的还是非拟人化的。对于文本和非文本的eHMI,也出现了类似的问题。此外,由于道路上存在多个行人,当前的eHMI主要设计为一对一的相遇,这可能会误导其他行人。还存在许多类似的问题,阻碍了eHMI的标准化。另一方面,由于诸如车辆运动学之类的隐含信号被广泛接受、普遍、常见且可靠,因此它们的关键作用不能被忽视。虽然研究人员已经尝试通过操纵隐含信号(如车辆减速率、横向距离和俯仰)来影响行人,但这些努力不足以确保安全有效的沟通。这些沟通方法缺乏相关理论支持,以证明沟通信息的准确有效传递。此外,在研究方法方面,包括车辆驾驶行为设计、主观和客观实验设计等方面,可靠的研究范式的缺乏也是一个问题。另外,如何有效而流畅地将eHMI和隐含信号结合起来,以利用双方的优势,也是一个有趣的研究方向。

另一个挑战是行人行为研究。行人的决策制定和行为模式受到交互情境、交通环境和参与者多样性的影响。然而,这些方面目前缺乏足够的研究关注。现有研究通常侧重于特定和简单的交互情境,以控制变量或简化研究复杂性。然而,现实生活中涉及大量复杂情景,包括多车道、双向或非结构化道路的过路口、面对密集连续交通流的过路口、多行人过马路的情景等。此外,行人的异质性,如性别、年龄、分心和群体效应,也在交互中发挥着重要作用。值得注意的是,许多影响因素,如等待时间和分心,仍然缺乏共识。因此,由于缺乏充足且可靠的结果,研究结论主要依赖于假设,突显了对行人道路行为基本机制理解的不足

关于行人行为建模,近年来基于学习的方法变得越来越吸引人。端到端的深度神经网络可以有效捕捉复杂的行为机制,在行人意图预测和轨迹预测领域取得了显著进展。然而,其黑盒性质不能忽视。这些方法需要大量的数据来实现稳健的性能,这限制了它们对数据不足的零星案例的可扩展性。此外,黑盒模型在解释其决策和行为逻辑方面存在困难,这给建模带来了新问题。相反,专家模型,如社会力模型、证据积累模型或博弈论模型,具有坚实的心理和行为基础,其行为决策逻辑清晰且可解释。然而,大多数这些模型只在有限的数据集上进行了验证,或者仍处于实验室验证阶段,缺乏大量的工程实践。因此,未来需要进一步完善专家模型的理论,并在大量真实数据集上进行广泛验证。此外,专家模型和数据驱动模型在不同方面具有优势。可能的未来趋势是找到两种模型共同使用的平衡点。

最后,考虑到关于自动驾驶的整体文献中只有很小一部分明确考虑了行人行为,有必要增加行人行为模型的应用,可能包括但不限于行人行为预测、自动驾驶汽车行为设计和虚拟自动驾驶汽车验证。

交互建模

随着自动驾驶技术的不断发展,对交互建模的研究将在解决挑战和推动更安全、可靠的自动驾驶车辆发展中发挥关键作用。

自动驾驶研究中引起关注的一种突出方法是使用基于学习的方法。这些方法具有端到端解决方案的吸引力,直接将感知输入和目的地知识映射到自动驾驶车辆的行为中。然而,这样的系统可能表现为黑盒,导致在出现故障时解释性问题以及对模型进行验证的困难。此外,完成整个驾驶过程的任务庞大,即学习整个驾驶过程,这也带来了重大挑战。因此,当前的研究努力将这一任务分解为子任务,包括路线规划、感知、运动规划和控制,并利用基于学习的方法来解决这些部分挑战。

通过模仿学习或在深度强化学习(DRL)方法中进行仿真来学习交互行为的优势也在不断增强。然而,挑战依然存在。大多数基于深度学习的决策假设理想的道路场景和对周围环境的完美感知。然而,现实世界的条件往往涉及遮挡、传感器噪声和环境异常。在这些偶发事件中保持系统性能并处理部分或嘈杂信息是一个持续存在的研究挑战。不确定性来自周围交通参与者的不可预测行为,以及传感器噪声和车辆模型。此外,在仿真环境中训练的模型(如DRL模型)引发了一个问题,即如何弥合仿真和现实之间的差距。已经提出了几种策略,包括使仿真更加现实、领域随机化和领域自适应。这些方法旨在使模型能够应对现实世界的不可预测性和复杂性,确保其在道路上有效应用所学到的知识。

学习为基础的方法的另一种替代方法是基于模型的方法。这组方法包括博弈论模型、行为模型(在前一部分中已讨论)、社会力和势场。

博弈论提供了灵活性和适应性,可以有效处理各种情况,而无需依赖特定的数据分布。其关键优势之一是能够在给定情境中处理道路使用者的规划和预测。然而,计算方面存在一种权衡。随着道路使用者数量和时间范围的增加,计算负担也增加。研究人员提出了一些增强博弈论解决方案的策略,包括分层博弈论公式、将周围道路使用者的优化问题限制为近似解决方案、级别k博弈论,或提高非线性优化求解器的性能。

另一方面,社会力或势场方法提供了一种快速计算的解决方案。它们可以用于预测周围道路使用者的行为,也可以用于自动驾驶车辆的控制。社会力模型依赖于对人类行为的简化假设。它们通常将行人视为具有固定特征的粒子或道路使用者,忽视了人类决策制定的认知方面,这可能导致对复杂且动态的人类行为的不切实际的表示。这些方法的未来研究方向包括整合认知元素或上下文信息,如道路规则和交通信号。探索整合机器学习技术以提高社会力模型的适应性和预测能力也是可能的未来研究方向。

现有研究主要集中在车辆之间的交互中,这在自动驾驶中无疑起着关键作用。然而,有迫切需要开发能够处理与人类道路用户的交互,尤其是行人交互的方法。随着自动驾驶领域的不断发展,揭示治理与各种道路用户之间的沟通和交互的理论和模型,将在技术上变得更加重要,有望推动自动驾驶场景中的安全性和效率。

#自动驾驶~BEV感知

这有可能是更的最长的文章系列了,先说为什么,一方面是看到分割大模型对小模型的提升效果需要时间,另一方面是之前对自动驾驶的BEV算法做了很长时间的预研,自己也应该好好梳理一下了。

(很多事情都是环环相扣,都需要去决断。比如分割大模型对小模型性能有没有提升,效果提升的投入和输出是否合适,提升不大还有有没有必要继续做,是换个方向还是继续探索,继续探索还有多少资源支撑,太多太多了。bev预研到什么时候才有可能落地,看过的paper有没有转化为产出的机会,产出能不能给自己带来收益,这些也都是问题。虽然看起来问题很复杂,但不过也就是个隐马尔可夫或者CRF,一切都还在变化之中,静待靴子落地吧)

其实自动驾驶bev算法是个很宽泛的说法,bev也就是bird's-eye-view,是指从鸟瞰视角来做task的范式;从数据来说有纯视觉的bev,纯雷达的bev,也有视觉雷达or其他多传感器融合的bev。

这也是有很多说法的,对于一个公司项目来说,走什么样的技术路线,用什么样的传感器,运行在什么平台上,都对相应的算法有着要求,在现实的种种妥协之下最sota的算法也不一定就是最好的,指标高的算法也不见得就一定是能用的。

就先简单说一下,也给大家share一下自己的一些paper list:

camera bev :

1. Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D

  • 点评:纯视觉bev的开山鼻祖,在后续的文章里面但凡有用到将二维图像feature提升到三维空间然后拍扁到bev空间都有用到其提出的lift-splat的操作,代码也很干脆易读。(shoot部分是做规划的,代码没开出来)核心是将每个图像单独提升为一个特征的视锥,然后将所有视锥拍平到栅格化的BEV网格上,如下图所示。

当然由于是初代版本也就不可避免的存在一些问题,最主要的两个点,一是splat的过程中运算耗时,二是在深度估计部分由于给予每个点可能的深度时并没有用深度真值监督,导致不够准确,越远效果越差性能和现在的新一些算法比起来差很多。但这仍旧不妨碍其在bev算法中的份量。

题外话:我也有过对lss进行优化,说来话长,可以给大家推一些我之前相关的博文。简单说就是之前有想着打一打nuscenes的榜单,对公司对自己也都有好处,于是就打算从Lss入手来搞,当时主要考虑他是plug and play 的,基于lss的bev算法很多,如果能在这样基础算法上做出改进那就可以对所有使用了lss模块的算法都带来提升,这是一件有意义的事情。至于后面就不说了,都是汗与累啊!

一个是对代码的解读

一个是对LSS做改进的nuscenes sota

一个是我之前搞得nuscenes 深度图

2. M2BEV: Multi-Camera Joint 3D Detection and Segmentation with Unified Bird's-Eye View Representation

  • 点评:这是一篇没有开源的文章,和lss一样也是nvidia的工作,也是从2d到3d再投影到bev空间但由于假设沿射线的深度分布是均匀的,这意味着沿相机射线的所有体素都填充与2D空间中单个像素对应的相同特征,所以内存高效速度更快,单从文章看效果比lss要好,号称是第一个用统一框架同时做检测和分割任务的,但没开源。
  • 这里有一个点是,这篇文章假设沿着射线的深度分布是均匀的,这意味着沿着相机射线的所有体素都填充有与2D空间中的P中的单个像素相对应的相同特征。好处是这种统一的假设通过减少学习参数的数量来提高计算和存储效率。但lss却不是这样,他是a non-uniform depth distribution。

3. BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View

  • 点评:lss算法后来者,或者说包了一层皮(有点直白),改进了前处理和后处理核心没变,之前lss是做分割任务,这篇是拿来做检测任务。这篇工作是鉴智机器人做的,后续还有一系列文章与改进版本。虽然但是从这里开始后面的很多文章就会对lss中的所谓“棱台求和”部分进行优化和加速了。

题外话(+1):鉴智机器人还是可以的创始人都是清华背景,当初大概21年后半年的时候有面过,那时候他们刚开始创业也就几十个人,说过去做感知后处理,非常可惜当时自己也还年轻,互相也都没看上。后面再来看他们确实做了不少有意义的工作,点赞!不过现在自动驾驶环境也一般,大家也都过的不容易。

这里给大家放一下bevdet系列的发展历程:

bevdet做出来以后,后面还有bevdet4d (BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection)主要就是增加了时序,将过去帧与当前帧特征融合来提高精度,比较有趣的。主要原因有:在做特征融合的时候,BEVDet4D在BEVDet的基础上,通过保留过去帧的中间BEV特征,并通过与当前帧对齐和拼接来融合特征。这样,BEVDet4D可以通过查询两个候选特征来获取时间线索,而仅需要可忽略的计算增加。对任务进行了简化,BEVDet4D通过移除自我运动和时间因素来简化速度预测任务。这使得BEVDet4D能够减少速度误差,使得基于视觉的方法在这方面首次与依赖LiDAR或雷达的方法相媲美。BEVDet4D的性能提升主要来源于速度估计更准确1。此外,小模型上的mAP有一定的增长,主要是小分辨率无法覆盖50米的范围,历史帧提供了一定的线索。

在往后就是bevpoolv2主要做对于lift-splat的提速,用预处理来优化计算流程做到了4.6 - 15.1倍速度的提升,同时也降低了内存的占用。这个处理确实很高级,点赞!对于工程化落地来说真是太重要了。

截止到2023年12月22日,bevdet系列的最新发展是DAL(Detecting As Labeling:Rethinking LiDAR-camera Fusion in 3D Object Detection),是做视觉和lidar融合的,效果和速度都有提升。如果直接点说,和bevfusion(mit版本)的流程大同小异,只是在视觉雷达的分支上更加相信雷达,然后包了一个“模仿数据注释过程”的故事,比较粗浅的来说就是这样。当然这并不妨碍人家效果好,也还是做了很多细节上的工作的。也比较期待他们接下来的工作。

以下是DAL paper中的框架图:

4. BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers

  • 点评:使用transformer和temporal来做bev感知任务(检测和分割)提升性能,有一些设计比如bev queries,spatial cross-attention,temporal self-attention。主要注意的是这里的两个attention并不是经典的transformer,而是用的DeformAtt.这里我记得当时在看整个流程的时候废了一点功夫,代码也相对来说复杂一些。

不过大家也可以从这里开始,顺便看一看detr的发展脉络。这里的bev queries 是随机生成初始化的,然后我记得后面有一篇nvidia打榜cvpr 2023 挑战赛的时候的fb-bev or fb-occ来着,对于queries的初始化这部分有做改进,能学的快一点。

上面是论文出处,不是我乱说哦!这里没有把这篇文章放进来主要是最开始fb-occ是做占用网格用的,后面做bev放出来的fb-bev效果反倒没有很惊艳,再加上打榜的工作本来就不是为了产品化来设计的,前向投影查一遍反向投影(2d-3d,3d-2d)速度当然就很慢了,所以就没说。(不过也有懒得成分了)

后续还有一些改进的版本,比如BEVFormer++,bevformerv2当然这个工作不是原班人马,所以就简单说一下bevformerv2。这篇主要就是没开源,paper说要开但是还没,所以也就只能看看idea;bevformer++

则是一篇技术报告,原班人马拿了Waymo Open Dataset Challenge 2022的第一名,可以看一看吧。

5. BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection

  • 点评:bevdepth是我非常欣赏的一篇工作,在lss的基础上用雷达作为深度的真值,深度估计网络考虑到相机内参,深度细化模块专门对深度估计部分进行了优化,更重要的是使用gpu并行对原来lss的"cumsum trick"进行了优化,大大提升了lss环节的速度,在gpu下相较原版lss快了80x。真是把lss depth估计的效果提升了一个档次(其实这也是我当时想在lss深度上做文章的灵感来源,ps这句话不重要)

6. CVT:Cross-view Transformers for real-time Map-view Semantic Segmentation

  • 点评:前视图投影顶视图的原理,用transformer的注意力机制搞跨视图分割。

7. GKT:Efficient and Robust 2D-to-BEV Representation Learning via Geometry-guided Kernel Transformer

  • 点评:之前有注释过核心代码,不是什么很出名的paper,像其他的可能都是cvpr,eccv,iccv啥的,之所以会搞这个主要是当时有项目在地平线的芯片上,他们对这个算法有支持,然后一看原来是人在地平线实习的时候搞得,目前为止没看到有中稿,就他们自家东西支持一下我觉得也很正常。感兴趣大家可以自己看看,简单说是bev投到图像,然后在投影周边一定范围内做注意力,当然也有一些其他的比如对外参加一些噪声让网络更鲁棒,建查找表加速。

lidar det:

对于雷达来说,bev其实就没有那么必须,雷达bev和detection关系比较密切。一般用雷达做检测有几个范式?不知道咋说,要么就是基于点来做,像pointnet,pointnet++;基于视角来做的话就可以是顶视这就是bev,也可以是前视图,这两种视角变化做雷达图像融合也会看到的;也可以基于体素来做。当然这么说并不准确,不管什么范式总有互相借鉴的地方。

1. pointpillar

  • 点评:,很久之前浅浅有做过个ppt,当时主要是当科普来讲,所以没有很细,但确实是篇对工业界有用的paper,点赞!

2. centerpoint

  • 点评:CenterPoint使用标准的基于激光雷达的主干网络,VoxelNet或PointPillars。CenterPoint预测连续帧之间物体的相对偏移(速度),然后贪婪地连接这些帧。因此,在CenterPoint中,3D物体跟踪简化为贪婪的最近点匹配。这种检测和跟踪算法既高效又有效。在nuScenes基准测试中,CenterPoint实现了最先进的性能。在Waymo开放数据集上,CenterPoint的性能超过了所有以前的单一模型方法。
  • 青出于蓝胜于蓝,也是一篇很不错的paper,工业界目前还有在使用的,点赞!

fusion bev:

1.BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird's-Eye View Representation [code]

  • 点评:bevfusion是一篇图像激光雷达融合的bev算法,支持同时检测和分割任务。在nuScenes detection task

榜单上有许多该方法的变体,从总体架构上来看基本方法很清晰,camera分支和lidar分支分别提取特征,然后转移到共享的bev空间下,再提取bev特征来做多任务,真可谓是大道至简。值得一提的是,bevfusion对于camera to bev 部分的优化做了不少工作,预计算部分减少了13ms,gpu计算间隔优化减少了498ms,真是把优化做到了极致,很多公司都做不到这样。

此外,从paper实验对比部分我们也能看出bevfusion的强大,对于许多想学习bev的工程师来说bevfusion真是一个很优秀的框架了,正如团队所说希望BEVFusion可以作为一个简单但强大的基线,启发未来多任务多传感器融合的研究。但遗憾的是,尽管团队针对速度做了很多工作但仍不能达到实时。(8.4 FPS)   

在实际的工程项目中,如果想要使用bevfusion最大的问题其实还是优化问题,因为作者的优化都是基于cuda是做的,一旦离开nvidia的平台很多地方会受到影响,这部分就需要针对不同平台来编写定制化的算子。

2. Cross Modal Transformer: Towards Fast and Robust 3D Object Detection [code]

当然算法永远是在进步更新的,新算法往往会更快更强,就比如CMT也是在nuscenes 榜上有名的。既然都说到这里了,那就简单说一下cmt精髓,属实是把位置编码玩明白了。

对于图像,先把pixel左乘内参的逆然后乘外参转到雷达坐标系下,然后用mlp输出其位置编码

代码如下:这个参考点是可以学习的

最主要的操作就是这个了。在paper里面也写的很清楚,bevfusion是两个模态转到bev空间后拼接,transfusion先在lidar特征中生成Q取top-k再查图像特征。而CMT则是对象查询直接与多模态特征同时交互,使用位置编码来对齐两个模态。当然也取得了不错的效果。

3.TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers [code]

  • 点评:transfusion当然也是一篇不错的工作,而且除检测外还做了跟踪,当时在nuScenes跟踪排行榜上排名第一。一个主要的亮点是,使用了一种软关联机制,可以处理图像质量较差和传感器未配准的情况。这种机制使得模型能够自适应地确定从图像中获取何处和何种信息,从而实现了一种鲁棒且有效的融合策略。简单说就是利用cross-attention建立了激光雷达和图像之间的soft association。翻译一下论文就是:

(Spatially Modulated Cross Attention,SMCA)模块通过在每个查询的投影2D中心周围使用一个2D圆形高斯掩膜来加权交叉注意力。权重掩膜M的生成方式与CenterNet[66]类似,使用了以下公式:

当然他的问题在于如果图像质量极差,例如在照明条件较差的情况下,其性能可能会受到影响。由于使用了Transformer解码器,因此会增加计算复杂度和内存需求。(不过毕竟是fusion的bev跑实时确实不容易,更不用说之后的占用网格)

从上面对比的一系列表格也可以看出,bev相关的paper还是很多的,大家感兴趣可以随便找一篇相关文章,然后从对比表格中找到一连串同类型文章。此外,这篇博客也只是粗浅的写一些与我相关的见过的部分paper,也只是个开篇,等有空的时候会陆续再更新吧。

Interesting thing

写到这里了就再分享个自己觉得有趣的事情,那就是有一件看似很反直觉的事情,单从fusion bev的三个算法来看cmt明显性能不错,速度也可以,其次是bevfusion,最后是transfusion。但如果去看这三者的github就会发现,最好的cmt其实是受关注最少的,transfusion是fork最多的,bevfusion是star最多的。以下数据截止到2023年12月27日.

  • Transfusion 1.4k fork,539 star
  • CMT 30 fork,259 star
  • bevfusion 322 fork,1.8k star

#自动驾驶策略预训练~无标注网络驾驶视频

2023 年 1 月 21 日,人工智能顶级会议 ICLR 2023(International Conference on Learning Representations)投稿结果正式公布。上海人工智能实验室自动驾驶 OpenDriveLab 团队成果 —— 基于自监督几何建模的自动驾驶策略预训练方法(PPGeo)被正式录用。PPGeo 是一个基于几何建模的自监督预训练框架,利用大量无标注网络驾驶视频,以自监督的方式对驾驶策略进行预训练,将会显著提升下游端到端感知决策任务的性能

驾驶策略学习的特殊性

自动驾驶领域中的端到端驾驶策略学习将原始传感器数据(图片,车身信号,点云等)作为输入,直接预测控制信号或规划路线。由于驾驶环境的复杂性和不确定性以及传感器数据中的大量无关信息,对于端到端的驾驶策略模型,从头开始学习是很困难的,它通常需要大量的标注数据或环境交互反馈才能达到令人满意的性能。

如图 1 所示,自然环境中存在着许多不需要关注的信息如建筑物、天气变化以及光照变化等,于驾驶任务而言,下一步往哪里行驶,信号灯是否允许通行,这些信息才是真正需要关注的。

  • (a) 静态障碍物和背景建筑物(黄色矩形中的物体)与驾驶决策无关;
  • (b) 视觉输入中的交通信号(标有绿色框)仅占图片的很小一部分,但对于控制输出而言却是确定性的; 
  • (c) 端到端驾驶策略模型必须对不同的光照和天气条件具有鲁棒性。

 图 1:PPGeo 研究动机 

当前预训练方法在策略学习任务中的限制

为解决端到端的驾驶策略模型对于大规模标注数据的需求,采用无标注的驾驶视频 (如图 2)数据对驾驶策略模型的感知部分进行预训练是很自然的思路,因此获得了非常广泛有效的应用,主流的预训练方法包括分类,对比学习,掩码图像建模。然而,不同于常见的检测和分割任务,端到端驾驶策略学习对自车的位姿敏感,缺乏平移或视角不变性。这也使得常见视觉任务预训练的常胜将军们,在端到端驾驶策略学习任务上败下阵来。由于上文提到的端到端驾驶任务输入的特殊性,其他机器人领域的视觉控制任务使用的预训练方法在这里也表现相对有限。

图 2:YouTube 上驾驶视频数据示例

对此,OpenDriveLab 团队提出一个基于自监督几何建模的端到端自动驾驶策略预训练方法(PPGeo)

  • 论文地址:https://arxiv.org/abs/2301.01006
  • 项目地址:https://github.com/OpenDriveLab/PPGeo

基于自监督几何建模的策略预训练

PPGeo 分为两个阶段,在第一阶段,根据时序前后帧图像训练位姿和深度预测网络;在第二阶段,利用第一阶段训练的深度网络和位姿网络监督单图像输入的视觉编码器,完成视觉编码器的预训练。将使用 PPGeo 预训练后的视觉编码器进行微调,可以适配于下游不同的端到端自动驾驶任务。实验表明,基于 PPGeo 的预训练方法相比于其他预训练方法在下游任务上具有更好的驾驶性能。

图 3:PPGeo 的概述。(a) 在第一阶段 (a.1), 利用前后帧图像作为输入,训练一个位姿预测网络 PoseNet 和深度预测网络 DepthNet,位姿预测网络通过比较前后帧图片推测出自车运动,并结合深度和相机内参估计完成两帧之间的像素对应,从而形成监督。在第二阶段 (a.2),待预训练的视觉编码器仅以单帧图像作为输入,在当前帧图像中捕捉与驾驶策略真正相关的信息来预测自车运动,并利用第一阶段获得的内参和深度估计完成像素对应。在这个说明性的例子中,自车需要刹车。位姿预测网络(a.1)根据连续两帧几乎没有变化来推断出刹车行为;而视觉编码器(a.2)根据单一视觉输入中前方有他车来做出预测。(b) 视觉编码器可以被微调并应用于广泛的下游任务中。

第一阶段 - 自监督的几何建模

通过给定一个目标图像 I_t 和源图像 I_(t^' ),估计目标图像的深度、相机的内参,以及这两帧之间的六自由度自车运动。根据这些估计结果,我们可以对场景的三维几何形状进行建模,并通过在源图像中投影像素来重建目标图像,根据重建的光度误差计算损失进行自监督训练。

第二阶段 - 视觉运动策略预训练

经过第一阶段的训练后,估计深度的 DepthNet 和估计位姿变化的 PoseNet 经过良好的训练,已经拟合了驾驶视频数据。在第二阶段,我们将用于下游驾驶策略学习任务的视觉编码器 φ(X) 替换 PoseNet。现在,视觉编码器只接受单帧图像作为输入,并预测当前帧和后续帧之间的自车运动。当前到未来帧的自车运动直接与当前时刻下的驾驶决策或行动相关, 因此视觉编码器能够通过预测自车运动学习到实际的驾驶策略。

至此,视觉编码器 φ(X) 已经从大量的驾驶视频中获得了关于驾驶策略的知识。它可以作为初始权值应用于下游的端到端自动驾驶任务。此外,经过在大量无标注校准的视频数据上训练的 DepthNet 和 PoseNet 也可以用于深度和测程估计任务。

PPGeo 性能比较

PPGeo 的预训练实验是在大量无标注的 YouTube 驾驶视频上进行。我们在 1Hz 的频率下总共采样了 80 万帧样本来进行训练,训练样本涵盖了诸如地理位置和天气等不同的驾驶条件(如上图 2)。

下游自动驾驶任务实验

Navigation&Navigation  Dynamic - 基于 CARLA 的两个用于模拟学习的闭环驾驶任务

我们使用不同大小的训练数据(从 4K 到 40K)在标记数据有限的情况下评估预训练视觉编码器的泛化能力并进行闭环评估。评估指标是成功率,表示在 50 条预定义路线中完成驾驶路线没有发生任何碰撞的比率。相较于 Navigation 任务,Navigation Dynamic 中还包括其他动态车辆和行人(如图 4)。

 图 4:导航和导航动态任务的前视图图像示例  

表 1:闭环导航任务的成功率结果 

可以看到,模型在从 10%  (4K)  到 100%(40K)的不同数量的微调样本下进行测试。在训练样本量特别小的情况下,PPGeo 依然表现出有竞争力的表现,并且相对其他方法有超过 100% 的提升。这验证了预训练视觉编码器的泛化能力,这在适应标记数据非常有限的新环境时非常重要。

Leaderboard‑Town05‑long

Leaderboard‑Town05‑long 的 10 条长距离路线任务更接近现实世界的城市驾驶,在路线中添加了不同的挑战性场景。由于此任务中具有挑战性的场景,我们使用最先进的基于单帧图像的自动驾驶模型 TCP (NeurIPS 2022)来评估不同的预训练方法。该任务的主要指标是驾驶分数、路线完成和违规分数(均越高越好)。

如表 2 所示,在更具挑战性和真实世界风格的 Leaderboard Town05-Long 任务中,使用我们的方法预训练的模型获得了最高的驾驶分数和违规分数。PPGeo 可以很好地处理自车需要刹车的情况,从而大大减少车辆碰撞和闯红灯的情况。

表 2:闭环任务 Town05-long 任务结果。除三个主要指标外,其余违规详细信息(越低越好)上 PPGeo 也均表现优秀

强化学习在 CARLA 中的驾驶任务

我们进一步验证预训练方法对于强化学习任务的帮助。我们使用强化学习算法近端策略优化  (PPO)  在 CARLA Town01 环境中训练使用不同预训练权重初始化的 CILRS 模型(左)。我们进一步实验在训练期间冻结预训练的视觉编码器(右),以更好地研究预训练特征表示的有效性。

图 5:使用  PPGeo  和其他三个最佳预训练方法的强化学习学习曲线。左:预训练视觉编码器在 RL 训练期间联合微调;右:视觉编码器在 RL 训练期间被冻结

NuScenes 上的开环规划任务

我们使用真实世界的 NuScenes 数据集评价不同时间长度下的轨迹规划预测与实际真实轨迹之间的 L2 距离以及规划轨迹导致的碰撞率。相较其它预训练方法,PPGeo 在下游开环规划任务上也取得了最优的效果。 

表 3:NuScenes 开环轨迹规划结果

可视化结果

图 6 展示的是不同预训练方法学习的特征表示的热图。在许多情况下,我们的模型关注部分主要集中在与驾驶高度相关的自车前方的车道。PPGeo 还很好地捕捉到了导致刹车动作的特定线索,包括前方车辆(第 3 和 4 行)和交通信号灯(第 5 行)。我们还观察到,使用 ImageNet 分类预训练的模型倾向于捕获图像中的显著对象,当显著对象与驾驶决策直接相关时(第 4 行),该模型可以正常工作;但当输入包含其他不相关信息时(第 2 行和第 3 行),该模型可能会关注错误的对象。

图 6:驾驶视频数据上不同预训练方法学习表征的可视化热图  

消融研究

就表 4 中的导航任务对 PPGeo 的不同设计进行了消融研究。同时在单个阶段(第 1 行)训练视觉编码器和 DepthNet 导致性能变差,这表明同时从头开始进行对深度估计网络和预测自车运动的视觉编码器的训练过于困难。此外,在第二阶段(第 2 行)联合优化 DepthNet 会降低深度估计质量并损害性能。在第 3 行中,我们观察到利用第一阶段获得的 PoseNet 提供伪标签监督将会导致较差的结果,因为单个不准确的伪标签在很大程度上对学习过程造成影响,而通过像素重建的方式可以获得更加稠密丰富的监督。

 表 4:PPGeo 的关键设计消融研究

总结

  • 我们提出了一种针对视觉运动驾驶任务的预训练范式 PPGeo。这是第一个完全自监督的预训练框架,不需要任何标签和额外数据,可以充分利用大规模的无标注数据。
  • 经过预训练的视觉编码器,能够基于单一的视觉输入预测自车运动,并提取与驾驶策略密切相关的特征表征。这种视觉编码器的设计可以灵活地扩展到各种下游应用程序。
  • 我们在一系列端到端驾驶任务上展示了我们的方法的优越性,涵盖了不同的类型和难度级别。在数据非常有限的具有挑战性的情况下,各种指标方面的性能从 2% 提高到甚至超过 100%。
  • 使用第一阶段训练后的 DepthNet 和 PoseNet 作为初始权重,并在 KITTI 上进行实验。证明了通过大规模驾驶视频的预训练也可以提高深度和测程估计任务的性能,这是我们的预训练框架的额外收获。

#MapTracker

太强了,在线高精地图还能用跟踪的方式来做!!!本文提出了一种矢量HD建图算法,该算法将在线高精建图公式化为跟踪任务,并使用memory latents的历史来确保随着时间的推移重建的一致性。我们的方法MapTracker将传感器流累积到两种潜在表示的memory buffers中:1)鸟瞰图(BEV)空间中的Raster latents和 2)道路元素(即人行横道、车道线和道路边界)上的Vector latents。该方法借鉴了目标跟踪中的查询传播范式,该范式明确地将前一帧的跟踪道路元素与当前帧相关联,同时融合了与距离distance strides的memory latents子集,以进一步增强时间一致性。对Vector latents进行解码以重建道路元素的几何形状。该论文通过以下方面进一步做出了基准贡献:1)改进现有数据集的处理代码,以通过时间比对产生一致的基本事实;2)通过一致性检查增强现有的mAP性能。MapTracker在nuScenes和Agroverse2数据集上的传统和新的一致性感知指标上分别显著优于现有方法8%和19%以上!性能拉满了~

开源链接:https://map-tracker.github.io/

总结来说,本文的主要贡献如下:

  • 一种新的矢量HD建图算法,将HD建图公式化为跟踪任务,并利用两种表示中的memory latents历史来实现时间一致性;
  • 一种改进的矢量HD建图基准,具有时间一致的GT和一致性感知的mAP metric;
  • SOTA性能!在传统和新的度量上比当前的最佳方法有显著改进。

相关工作回顾

本文通过 1)借鉴视觉目标跟踪文献的思想和 2)设计一种新的记忆机制来解决一致向量HD建图问题。我们首先回顾了基于视觉的自动驾驶中使用Transformer和记忆设计的视觉目标跟踪的最新趋势。最后,我们讨论了竞争矢量HD建图方法。

使用transformers进行视觉目标跟踪。视觉目标跟踪有着悠久的历史,其中端到端transformer方法由于其简单性而成为最近的趋势。TrackFormer、TransTrack和MOTR利用注意力机制和跟踪查询来显式关联跨帧的实例。MeMOT和MeMOTR进一步扩展了具有记忆机制的跟踪transformer,以获得更好的长期一致性。本文通过将跟踪查询与更稳健的内存机制结合起来,将矢量HD建图公式化为跟踪任务。

自动驾驶中的Memory设计。单帧自动驾驶系统在处理遮挡、传感器故障或复杂环境方面存在困难。具有Memory的时间建模提供了有希望的补充。存在许多用于光栅BEV功能的Memory设计,这些功能构成了大多数自动驾驶任务的基础。BEVDet4D和BEVFormerv2将多个过去帧的特征叠加为Memory,但计算随着历史长度线性扩展,难以捕获长期信息。VideoBEV跨帧传播BEV光栅查询,以循环积累信息。在向量域中,Sparse4Dv2使用类似的RNN风格的内存进行目标查询,而Sparse4Dv3进一步使用时间去噪进行稳健的时间学习。这些思想已被矢量HD建图方法部分纳入。本文针对道路元素的光栅BEV潜伏时间和矢量潜伏时间提出了一种新的存储器设计。

矢量HD建图。传统上,高精地图是用基于SLAM的方法离线重建的,然后是人工管理,需要高昂的维护成本。随着精度和效率的提高,在线矢量高精地图算法比离线地图算法更受关注,这将简化生产流程并处理地图更改。HDMapNet通过后处理将光栅图分割转化为矢量图实例,并建立了第一个矢量HD建图基准。VectorMapNet和MapTR都利用基于DETR的transformer进行端到端预测。前者自回归地预测每个检测到的曲线的顶点,而后者使用分层查询和匹配损失来同时预测所有顶点。MapTRv2通过辅助任务和网络修改进一步补充了MapTR。曲线表示、网络设计和训练范式是其他工作的重点。StreamMapNet通过借鉴BEV感知中的流思想,朝着一致建图迈出了一步。该想法将过去的信息累积为memory latents,并作为条件(即条件检测框架)通过。SQD MapNet模仿DN-DETR,提出了时间曲线去噪以促进时间学习。

MapTracker

鲁棒记忆机制是MapTracker的核心,它将传感器流累积为两种表示的latent memories:1)自上而下的BEV坐标系中车辆周围区域的鸟瞰(BEV)记忆作为潜在图像;和2)道路元素(即,行人专用区交叉口、车道线和道路边界)的矢量(VEC)记忆作为一组潜在矢量。

两个简单的想法与memory机制实现了一致的建图。第一个想法是使用历史的memory buffer,而不是当前帧的单个memory。单个memory应该保存整个历史的信息,但很容易丢失memory,尤其是在有大量车辆遮挡道路结构的杂乱环境中。具体地说,为了效率和覆盖率,我们基于车辆运动在每一帧选择过去latent memories的子集进行融合。第二个想法是将在线高精地图制定为跟踪任务。VEC memory机制保持每个道路元素的memory latents期序列,并通过借用跟踪文献中的查询传播范式使该公式变得简单。本节的其余部分解释了我们的神经架构(见图2和图3),包括BEV和VEC memory buffers及其相应的网络模块,然后介绍了训练细节。

Memory Buffers

BEV memory是BEV坐标系中的2D latent,以车辆为中心并在第t帧处定向。空间维度(即50×100)覆盖矩形区域,左/右15m,前/后30m。每个存储器潜伏时间累积整个过去的信息,而buffer在最后20帧中保持这样的memory latents时间,使得memory机制冗余但稳健。

VECmemory是一组向量潜伏时间,每个向量latents时间累积直到帧t的活动道路元素的信息。活动元素的数量随帧而变化。buffer保存过去20帧的latent vectors及其在帧之间的对应关系(即,对应于相同道路元素的矢量潜伏序列)。

BEV Module

输入是 1)由图像主干处理的机载环视图像的CNN特征及其相机参数;2) BEV memory buffer和3)车辆运动。以下内容解释了BEV模块体系结构的四个组成部分及其输出。

  • BEV Query Propagation:BEV memory是车辆坐标系中的2D latent image。仿射变换和双线性插值将当前BEV memory初始化为先前的BEV memory。对于变换后位于latent image之外的像素,每像素可学习的嵌入向量是初始化,其操作在图3中表示为“MaskBlend”。
  • Deformable Self-Attention:可变形的自注意力层丰富了BEV memory。
  • Perspective-to-BEV Cross-Attention:与StreamMapNet类似,BEVFormer的空间可变形交叉注意力层将透视图信息注入MBEV(t)。
  • BEV Memory Fusion:buffer中的memory latents被融合以丰富MBEV(t)。使用所有的memories在计算上是昂贵且冗余的。

输出是1)保存到buffer并传递到VEC模块的最终memory MBEV(t);以及2)由分割头推理并用于损失计算的光栅化道路元素几何图形S(t)。分割头是一个线性投影模块,将memory latent中的每个像素投影到2×2的分割掩模,从而产生100×200的掩模。

VEC Module

输入是BEV memory MBEV(t)和vector memory buffer以及车辆运动;

  • Vector Query Propagation:vector memory是活动道路元素的一组潜在矢量。
  • Vector Instance Self Attention:标准的自注意力层;
  • BEV-to-Vector Cross Attention:Multi-Point Attention;
  • Vector Memory Fusion:对于当前存储器MVEC(t)中的每个潜在矢量,将缓冲器中与相同道路元素相关联的潜在矢量进行融合以丰富其表示。相同的跨步帧选择选择四个潜在向量,其中对于一些具有短跟踪历史的道路元素,所选择的帧π(t)将不同且更少。例如,跟踪了两帧的元素在buffer中只有两个latents。

输出是1)通过来自MVEC(t)的单个完全连接层的分类测试的“positive”道路元素的最终存储器MVEC(t);以及2)由来自MVEC(t)的3层MLP回归的正道路元素的矢量道路几何形状。

Training

BEV loss:

Consistent Vector HD Mapping Benchmarks

Consistent ground truth

MapTR从nuScenes和Agroverse2数据集创建了矢量HD建图基准,被许多后续研究采用。然而,人行横道是天真地合并在一起的,而且跨框架不一致。分割线也与其图形跟踪过程的失败不一致(对于Argoverse2)。

StreamMapNet继承了VectorMapNet的代码,并创建了一个具有更好真实性的基准,该基准已在研讨会挑战中使用。然而,仍然存在一些问题。对于Argoverse2,分隔线有时会拆分为较短的线段。对于nuScenes,大型人行横道有时会分割出小环路,其不一致性在每帧中随机出现,导致暂时不一致的表示。我们在附录中提供了现有基准问题的可视化。

我们改进了现有基准的处理代码,以(1)增强每帧的GT几何结构,然后(2)计算它们在帧之间的对应关系,形成GT“轨迹”。

(1) 增强每帧几何图形。我们继承和改进了在社区中流行的MapTR代码库,同时进行了两个更改:用StreamMapNet中的处理取代步行区处理,并通过更多的几何约束来提高质量;以及通过增强图跟踪算法来处理原始注释的噪声来增强除法器处理中的时间一致性(仅适用于Argoverse2)。

(2) Forming tracks。给定每帧道路元素的几何结构,我们求解每对相邻帧之间的最优二分匹配问题,以建立道路元素的对应关系。成对的对应关系被链接以形成道路元素的轨迹。一对道路元素之间的匹配分数定义如下。道路元素几何图形是多边形曲线或环形。我们根据车辆运动将旧帧中的元素几何体转换为新帧,然后将具有一定厚度的两条曲线/循环光栅化为实例遮罩。他们在并集上的交集是匹配的分数。

Consistency-aware mAP metric

mAP度量不会惩罚暂时不一致的重建。我们将重建的道路元素和每个帧中的地面实况与倒角距离独立匹配,如在标准mAP过程中一样,然后通过以下检查消除暂时不一致的匹配。首先,对于不预测跟踪信息的基线方法,我们使用与获得GT时间对应关系相同的算法来形成重建道路元素的轨迹(我们还扩展了算法,通过权衡速度来重新识别丢失的元素;详细信息请参阅附录)。接下来,让“祖先”是属于前一帧中相同轨迹的道路元素。从序列的一开始,如果它们的祖先中有任何一个不匹配,我们就会将每帧匹配(重建元素和地面实况元素)删除为暂时不一致。然后利用剩余的暂时一致的匹配来计算标准mAP。

实验

我们基于StreamMapNet代码库构建我们的系统,同时使用8个NVIDIA RTX A5000 GPU在nuScenes上为72个epoch和Argoverse2上为35个epoch训练我们的模型。三个训练阶段的批量大小分别为16、48和16。训练大约需要三天时间,而推理速度大约为10 FPS。在解释了数据集、指标和基线方法之后,本节提供了实验结果。

我们的贡献之一是在两个现有的对应物(即MapTR和StreamMapNet)上实现了暂时一致的地面实况(GT)。表1和表2显示了在三个GT中的一个上训练和测试系统的结果(如第一列所示)。由于我们的代码库是基于StreamMapNet的,我们在StreamMapNet GT和我们的临时一致GT上评估我们的系统。     

nuScenes结果。表1显示,MapTRv2和StreamMapNet都使用我们的GT实现了更好的mAP,这是我们在修复其原始GT中的不一致性时所期望的。StreamMapNet的改进略高,因为它具有时间建模(而MapTR没有),并利用了数据中的时间一致性。MapTracker显著优于竞争方法,尤其是在我们的一致性GT在原始和一致性意识mAP得分中分别提高了8%和22%以上的情况下。注意,MapTracker是唯一产生明确跟踪信息(即,重构元素在帧之间的对应关系)的系统,这是一致性区域mAP所需要的。一个简单的匹配算法为基线方法创建轨迹。

Argoverse2结果。表2显示,MapTRv2和StreamMapNet都通过我们一致的GT获得了更好的mAP分数,它除了暂时一致之外,还具有更高质量的GT(用于人行横道和分隔物),使所有方法都受益。MapTracker在所有设置中都以显著的优势(即分别为11%或8%)优于所有其他基线。一致性意识评分(C-mAP)进一步证明了我们卓越的一致性,比StreamMapNet提高了18%以上。

Results with geographically non-overlapping data

nuScenes和Agroverse2数据集的官方训练/测试划分具有地理重叠(即,训练/测试中出现相同的道路),这允许过度拟合。表3比较了StreamMapNet和MapTracker提出的基于地理上不重叠分割的最佳基线方法。MapTracker始终以显著的优势表现出色,表现出强大的跨场景泛化能力。请注意,对于这两种方法,nuScenes数据集的性能都会降低。经过仔细检查,道路要素的检测是成功的,但回归的坐标误差很大,导致性能低下。附录提供了更多分析。

Ablation studies

表4中的消融研究证明了MapTracker中关键设计元素的贡献。第一个“基线”条目是StreamMapNet,它没有时间推理能力(即没有BEV和矢量流存储器和模块)。第二个条目是StreamMapNet。两种方法都训练了110个时期,直到完全收敛。最后三个条目是MapTracker的变体,包含或不包含关键设计元素。第一种变体丢弃BEV/VEC模块中的存储器融合组件。该变体利用跟踪公式,但依赖于单个BEV/VEC存储器来保存过去的信息。第二种变体添加了内存缓冲区和内存融合组件,但没有跨步,即使用最新的4帧进行融合。这种变体提高了性能,证明了我们记忆机制的有效性。最后一种变体添加了内存跨步,从而更有效地利用了内存机制并提高了性能。

Qualitative evaluations

图4显示了MapTracker和基线方法在nuScenes和Argoverse2数据集上的定性比较。为了更好地可视化,我们使用一种简单的算法将每帧矢量HD地图合并为全局矢量HD地图。有关合并算法和每帧重建的可视化的详细信息,请参阅附录。MapTracker产生了更精确、更干净的结果,显示出卓越的整体质量和时间一致性。对于车辆正在转弯或没有轻微向前移动的场景(包括图1中的两个示例),StreamMapNet和MapTRv2可能会产生不稳定的结果,从而导致破碎和嘈杂的合并结果。这主要是因为基于检测的公式难以在复杂的车辆运动下维持时间相干重建。

结论

本文介绍了MapTracker,它将在线HD映射公式化为跟踪任务,并利用raster and vector latents的历史来保持时序一致性。我们使用查询传播机制来跨帧关联被跟踪的道路元素,并将所选择的memory entries的子集与距离步幅融合以增强一致性。我们还通过使用跟踪标签生成一致的GT,并通过时序一致性检查增强原始mAP指标,来改进现有的基准。当使用传统度量进行评估时,MapTracker在nuScenes和Agroverse2数据集上显著优于现有方法,并且当使用我们的一致性感知度量进行评估后,它表现出了卓越的时序一致性。

局限性:我们确定了MapTracker的两个局限性。首先,当前的跟踪公式不处理道路元素的合并和分割(例如,U形边界在未来的帧中分割成两条直线,反之亦然)。基本事实也不能恰当地代表他们。其次,我们的系统仍处于10 FPS,实时性能有点不足,尤其是在关键的崩溃事件中。优化效率和处理更复杂的现实世界道路结构是我们未来的工作。

#DifFUSER

扩散模型杀入自动驾驶多任务

目前,随着自动驾驶技术的越发成熟以及自动驾驶感知任务需求的日益增多,工业界和学术界非常希望一个理想的感知算法模型,可以同时完成如3D目标检测以及基于BEV空间的语义分割在内的多个感知任务。对于一辆能够实现自动驾驶功能的车辆而言,其通常会配备环视相机传感器、激光雷达传感器以及毫米波雷达传感器来采集不同模态的数据信息,从而充分利用不同模态数据之间的互补优势,比如三维的点云数据可以为3D目标检测任务提供算法模型必要的几何数据和深度信息;2D的图像数据可以为基于BEV空间的语义分割任务提供至关重要的色彩和语义纹理信息,通过将不同模态数据的有效结果,使得部署在车上的多模态感知算法模型输出更加鲁棒和准确的空间感知结果。

虽然最近在学术界和工业界提出了许多基于Transformer网络框架的多传感、多模态数据融合的3D感知算法,但均采用了Transformer中的交叉注意力机制来实现多模态数据之间的融合,以实现比较理想的3D目标检测结果。但是这类多模态的特征融合方法并不完全适用于基于BEV空间的语义分割任务。此外,除了采用交叉注意力机制来完成不同模态之间信息融合的方法外,很多算法采用基于LSS中前向的2D到3D的视角转换方式来构建融合后的特征,但也存在着如下的一些问题:

  • 由于目前提出的相关多模态融合的3D感知算法,对于不同模态数据特征的融合方式设计的还不够充分,造成感知算法模型无法准确捕获到传感器数据之间的复杂连接关系,进而影响模型的最终感知性能。
  • 不同传感器采集数据的过程中难免会引入无关的噪声信息,这种不同模态之间的内在噪声,也会导致不同模态特征融合的过程中会混入噪声,从而造成多模态特征融合的不准确,影响后续的感知任务。

针对上述提到的在多模态融合过程中存在的诸多可能会影响到最终模型感知性能的问题,同时考虑到生成模型最近展现出来的强大性能,我们对生成模型进行了探索,用于实现多传感器之间的多模态融合和去噪任务。基于此,我们提出了一种基于条件扩散的生成模型感知算法DifFUSER,用于实现多模态的感知任务。通过下图可以看出,我们提出的DifFUSER多模态数据融合算法可以实现更加有效的多模态融合过程。

提出的算法模型与其它算法模型的结果可视化对比图

论文链接:https://arxiv.org/pdf/2404.04629.pdf

网络模型的整体架构&细节梳理

在详细介绍本文提出的基于条件扩散模型的多任务感知算法的DifFUSER的模块细节之前,下图展示了我们提出的DifFUSER算法的整体网络结构。

提出的DifFUSER感知算法模型网络结构图

通过上图可以看出,我们提出的DifFUSER网络结构主要包括三个子网络,分别是主干网络部分、DifFUSER的多模态数据融合部分以及最终的BEV语义分割、3D目标检测感知任务头部分。

  • 主干网络部分:该部分主要对网络模型输入的2D图像数据以及3D的激光雷达点云数据进行特征提取用于输出相对应的BEV语义特征。对于提取图像特征的主干网络而言,主要包括2D的图像主干网络以及视角转换模块。对于提取3D的激光雷达点云特征的主干网络而言,主要包括3D的点云主干网络以及特征Flatten模块。
  • DifFUSER多模态数据融合部分:我们提出的DifFUSER模块以层级的双向特征金字塔网络的形式链接在一起,我们把这样的结构称为cMini-BiFPN。该结构为潜在的扩散提供了可以替代的结构,可以更好的处理来自不同传感器数据中的多尺度和宽高详细特征信息。
  • BEV语义分割、3D目标检测感知任务头部分:由于我们的算法模型可以同时输出3D目标检测结果以及BEV空间的语义分割结果,所以3D感知任务头包括3D检测头以及语义分割头。此外,我们提出的算法模型涉及到的损失则包括扩散损失、检测损失和语义分割损失,通过将所有损失进行求和,并通过反向传播的方式来更新网络模型的参数。

接下来,我们会仔细介绍模型中各个主要子部分的实现细节。

融合架构设计(Conditional-Mini-BiFPN,cMini-BiFPN)

对于自动驾驶系统中的感知任务而言,算法模型能够对当前的外部环境进行实时的感知是至关重要的,所以确保扩散模块的性能和效率是非常重要的。因此,我们从双向特征金字塔网络中得到启发,引入一种条件类似的BiFPN扩散架构,我们称之为Conditional-Mini-BiFPN,其具体的网络结构如上图所示。

渐进传感器Dropout训练(PSDT)

对于一辆自动驾驶汽车而言,配备的自动驾驶采集传感器的性能至关重要,在自动驾驶车辆日常行驶的过程中,极有可能会出现相机传感器或者激光雷达传感器出现遮挡或者故障的问题,从而影响最终自动驾驶系统的安全性以及运行效率。基于这一考虑出发,我们提出了渐进式的传感器Dropout训练范式,用于增强提出的算法模型在传感器可能被遮挡等情况下的鲁棒性和适应性。

门控自条件调制扩散模块(GSM Diffusion Module)

门控自条件调制扩散模块网络结构示意图

实验结果&评价指标

定量分析部分

为了验证我们提出的算法模型DifFUSER在多任务上的感知结果,我们主要在nuScenes数据集上进行了3D目标检测以及基于BEV空间的语义分割实验。

首先,我们比较了提出的算法模型DifFUSER与其它的多模态融合算法在语义分割任务上的性能对比情况,具体的实验结果如下表所示:

不同算法模型在nuScenes数据集上的基于BEV空间的语义分割任务的实验结果对比情况

通过实验结果可以看出,我们提出的算法模型相比于基线模型而言在性能上有着显著的提高。具体而言,BEVFusion模型的mIoU值只有62.7%,而我们提出的算法模型已经达到了69.1%,具有6.4%个点的提升,这表明我们提出的算法在不同类别上都更有优势。此外,下图也更加直观的说明了我们提出的算法模型更具有优势。具体而言,BEVFusion算法会输出较差的分割结果,尤其在远距离的场景下,传感器错位的情况更加明显。与之相比,我们的算法模型具有更加准确的分割结果,细节更加明显,噪声更少。

提出算法模型与基线模型的分割可视化结果对比

此外,我们也将提出的算法模型与其它的3D目标检测算法模型进行对比,具体的实验结果如下表所示

不同算法模型在nuScenes数据集上的3D目标检测任务的实验结果对比情况

通过表格当中列出的结果可以看出,我们提出的算法模型DifFUSER相比于基线模型在NDS和mAP指标上均有提高,相比于基线模型BEVFusion的72.9%NDS以及70.2%的mAP,我们的算法模型分别要高出1.8%以及1.0%。相关指标的提升表明,我们提出的多模态扩散融合模块对特征的减少和特征的细化过程是有效的。

此外,为了表明我们提出的算法模型在传感器故障或者遮挡情况下的感知鲁棒性,我们进行了相关分割任务的结果比较,如下图所示。

不同情况下的算法性能比较

通过上图可以看出,在采样充足的情况下,我们提出的算法模型可以有效的对缺失特征进行补偿,用于作为缺失传感器采集信息的替代内容。我们提出的DifFUSER算法模型生成和利用合成特征的能力,有效地减轻了对任何单一传感器模态的依赖,确保模型在多样化和具有挑战性的环境中能够平稳运行。

定性分析部分

下图展示了我们提出的DifFUSER算法模型在3D目标检测以及BEV空间的语义分割结果的可视化,通过可视化结果可以看出,我们提出的算法模型具有很好的检测和分割效果。

结论

本文提出了一个基于扩散模型的多模态感知算法模型DifFUSER,通过改进网络模型的融合架构以及利用扩散模型的去噪特性来提高网络模型的融合质量。通过在Nuscenes数据集上的实验结果表明,我们提出的算法模型在BEV空间的语义分割任务中实现了SOTA的分割性能,在3D目标检测任务中可以和当前SOTA的算法模型取得相近的检测性能。

#DriveWorld

一个预训练模型大幅提升检测+地图+跟踪+运动预测+Occ多个任务性能

以视觉为中心的自动驾驶技术近期因其较低的成本而引起了广泛关注,而预训练对于提取通用表示至关重要。然而,当前的以视觉为中心的预训练通常依赖于2D或3D预训练任务,忽视了自动驾驶作为4D场景理解任务的时序特征。这里通过引入一个基于世界模型的自动驾驶4D表示学习框架“DriveWorld”来解决这一挑战,该框架能够从多摄像头驾驶视频中以时空方式进行预训练。具体来说,提出了一个用于时空建模的记忆状态空间模型,它由一个动态记忆库模块组成,用于学习时间感知的潜在动态以预测未来变化,以及一个静态场景传播模块,用于学习空间感知的潜在静态以提供全面的场景上下文。此外,还引入了一个任务提示,以解耦用于各种下游任务的任务感知特征。实验表明,DriveWorld在各种自动驾驶任务上取得了令人鼓舞的结果。当使用OpenScene数据集进行预训练时,DriveWorld在3D检测中实现了7.5%的mAP提升,在线地图中的IoU提升了3.0%,多目标跟踪中的AMOTA提升了5.0%,运动预测中的minADE降低了0.1m,占用预测中的IoU提升了3.0%,规划中的平均L2误差减少了0.34m。

领域背景

自动驾驶是一项复杂的任务,它依赖于全面的4D场景理解。这要求获得一个稳健的时空表示,能够处理涉及感知、预测和规划的任务。由于自然场景的随机性、环境的部分可观察性以及下游任务的多样性,学习时空表示极具挑战性。预训练在从大量数据中获取通用表示方面起着关键作用,使得能够构建出包含共同知识的基础模型。然而,自动驾驶中时空表示学习的预训练研究仍然相对有限。

我们的目标是利用世界模型来处理以视觉为中心的自动驾驶预训练中的4D表示。世界模型在表示代理对其环境的时空知识方面表现出色。在强化学习中,DreamerV1、DreamerV2和DreamerV3利用世界模型将代理的经验封装在预测模型中,从而促进了广泛行为的习得。MILE利用3D几何作为归纳偏差,直接从专家演示的视频中学习紧凑的潜在空间,以在CARLA模拟器中构建世界模型。ContextWM和SWIM利用丰富的野外视频对世界模型进行预训练,以增强下游视觉任务的高效学习。最近,GAIA-1和DriveDreamer构建了生成性的世界模型,利用视频、文本和动作输入,使用扩散模型创建逼真的驾驶场景。与上述关于世界模型的先前工作不同,本文的方法主要侧重于利用世界模型学习自动驾驶预训练中的4D表示。

驾驶本质上涉及与不确定性的斗争。在模糊的自动驾驶场景中,存在两种类型的不确定性:偶然不确定性,源于世界的随机性;以及认知不确定性,源于不完美的知识或信息。如何利用过去的经验来预测可能的未来状态,并估计自动驾驶中缺失的世界状态信息仍然是一个未解决的问题。本文探索了通过世界模型进行4D预训练以处理偶然不确定性和认知不确定性。具体来说,设计了记忆状态空间模型,从两个方面减少自动驾驶中的不确定性。首先,为了处理偶然不确定性,我们提出了动态记忆库模块,用于学习时间感知的潜在动态以预测未来状态。其次,为了缓解认知不确定性,我们提出了静态场景传播模块,用于学习空间感知的潜在静态特征,以提供全面的场景上下文。此外,引入了任务提示(Task Prompt),它利用语义线索作为提示,以自适应地调整特征提取网络,以适应不同的下游驾驶任务。

为了验证提出的4D预训练方法的性能,在nuScenes训练集和最近发布的大规模3D占用率数据集OpenScene上进行了预训练,随后在nuScenes训练集上进行了微调。实验结果表明,与2D ImageNet预训练、3D占用率预训练和知识蒸馏算法相比,4D预训练方法具有显著优势。4D预训练算法在以视觉为中心的自动驾驶任务中表现出极大的改进,包括3D检测、多目标跟踪、在线建图、运动预测、占用率预测和规划。

网络结构

DriveWorld的总体框架如下所示,由于自动驾驶严重依赖于对4D场景的理解,方法首先涉及将多摄像头图像转换为4D空间。在所提出的时空建模的记忆状态空间模型中,有两个基本组件:动态记忆库,它学习时间感知的潜在动态以预测未来状态;以及静态场景传播,它学习空间感知的潜在静态特征以提供全面的场景上下文。这种配置有助于解码器为当前和未来时间步重建3D占用和动作的任务。此外,基于预训练的文本编码器设计了任务prompt,以自适应地为各种任务解耦任务感知特征。

提出的记忆状态空间模型(MSSM)的总体架构。MSSM将传输的信息分为两类:时间感知信息和空间感知信息。动态记忆库模块利用运动感知层归一化(MLN)来编码时间感知属性,并与动态更新的记忆库进行信息交互。同时,静态场景传播模块使用BEV特征来表示空间感知的潜在静态信息,这些信息直接被传送到解码器。

虽然通过世界模型设计的预训练任务使得时空表示的学习成为可能,但不同的下游任务侧重于不同的信息。例如,3D检测任务强调当前的空间感知信息,而未来预测任务则优先考虑时间感知信息。过分关注未来的信息,如车辆未来的位置,可能会对3D检测任务产生不利影响。为了缓解这个问题,受到少样本图像识别中语义提示和多任务学习中视觉示例驱动的提示的启发,引入了“任务提示”的概念,为不同的头提供特定的线索,以指导它们提取任务感知特征。认识到不同任务之间存在的语义联系,利用大型语言模型来构建这些任务提示。

损失函数

DriveWorld的预训练目标涉及最小化后验和先验状态分布之间的差异(即Kullback-Leibler(KL)散度),以及最小化与过去和未来3D占用,即CrossEntropy损失(CE)和L1损失。这里描述了模型在T个时间步上观察输入,然后预测未来L步的3D占用和动作。DriveWorld的总损失函数是:

实验对比分析

数据集。在自动驾驶数据集nuScenes 和最大规模的3D占用数据集OpenScene 上进行预训练,并在nuScenes上进行微调。评估设置与UniAD 相同。

预训练。与BEVFormer 和UniAD 一致,使用ResNet101-DCN 作为基础骨干网络。对于3D占用预测,设置了16 × 200 × 200的体素大小。学习率设置为2×10−4。默认情况下,预训练阶段包含24个epoch。 

微调。在微调阶段,保留用于生成BEV特征的预训练编码器,并对下游任务进行微调。对于3D检测任务,我们使用了BEVFormer 框架,微调其参数而不冻结编码器,并进行了24个epoch的训练。对于其他自动驾驶任务,我们使用了UniAD 框架,并将我们微调后的BEVFormer权重加载到UniAD中,对所有任务遵循标准的20个epoch的训练协议。对于UniAD,我们遵循其实验设置,这包括在第一阶段训练6个epoch,在第二阶段训练20个epoch。实验使用8个NVIDIA Tesla A100 GPU进行。

Occ任务和BEV-OD任务上的提升一览:

更多目标跟踪和规划任务性能提升一览:

#NeRF与自动驾驶

神经辐射场(Neural Radiance Fields)自2020年被提出以来,相关论文数量呈指数增长,不但成为了三维重建的重要分支方向,也逐渐作为自动驾驶重要工具活跃在研究前沿。

NeRF这两年异军突起,主要因为它跳过了传统CV重建pipeline的特征点提取和匹配、对极几何与三角化、PnP加Bundle Adjustment等步骤,甚至跳过mesh的重建、贴图和光追,直接从2D输入图像学习一个辐射场,然后从辐射场输出逼近真实照片的渲染图像。也就是说,让一个基于神经网络的隐式三维模型,去拟合指定视角下的2D图像,并使其兼具新视角合成和能力。NeRF的发展也和自动驾驶息息相关,具体体现在真实的场景重建和自动驾驶仿真器的应用中。NeRF擅长呈现照片级别的图像渲染,因此用NeRF建模的街景能够为自动驾驶提供高真实感的训练数据;NeRF的地图可以编辑,将建筑、车辆、行人组合成各种现实中难以捕捉的corner case,能够用于检验感知、规划、避障等算法的性能。因此,NeRF作为一个三维重建的分支方向和建模工具,掌握NeRF已经成为了研究者们做重建或者自动驾驶方向必不可少的技能。

梳理下Nerf与自动驾驶相关的内容,近11篇文章,带着大家探索Nerf与自动驾驶的前世今生;

1.Nerf开山之作

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV2020.

首篇,开山之作,提出了Nerf方法,该方法通过使用稀疏的输入视图集优化底层连续体积场景函数,实现了合成复杂场景的新视图的最新结果。算法使用全连接(非卷积)深度网络来表示场景,其输入是单个连续5D坐标(空间位置(x,y,z)和观看方向(θ,ξ)),其输出是该空间位置的体积密度和与视图相关的发射辐射。

NERF用 2D 的 posed images 作为监督,无需对图像进行卷积,而是通过不断学习位置编码,用图像颜色作为监督,来学习一组隐式参数,表示复杂的三维场景。通过隐式表示,可以完成任意视角的渲染。

2.Mip-NeRF 360

CVPR2020的工作,室外无边界场景相关。Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields

论文链接:https://arxiv.org/pdf/2111.12077.pdf

尽管神经辐射场(NeRF)已经在物体和空间的小边界区域上展示了不错的视图合成结果,但它们在“无边界”场景中很难实现,在这些场景中,相机可能指向任何方向,内容可能存在于任何距离。在这种情况下,现有的类NeRF模型通常会产生模糊或低分辨率的渲染(由于附近和远处物体的细节和比例不平衡),训练速度较慢,并且由于从一组小图像重建大场景的任务的固有模糊性,可能会出现伪影。本文提出了mip-NeRF(一种解决采样和混叠问题的NeRF变体)的扩展,它使用非线性场景参数化、在线蒸馏和一种新的基于失真的正则化子来克服无界场景带来的挑战。与mip-NeRF相比,均方误差减少了57%,并且能够为高度复杂、无边界的真实世界场景生成逼真的合成视图和详细的深度图。

3.Instant-NGP

显示体素加隐式特征的混合场景表达(SIGGRAPH 2022)

Instant Neural Graphics Primitives with a Multiresolution Hash Encoding

链接:https://nvlabs.github.io/instant-ngp

这里先直接给出Instant-NGP与NeRF的异同:

  1. 同样基于体渲染
  2. 不同于NeRF的MLP,NGP使用稀疏的参数化的voxel grid作为场景表达;
  3. 基于梯度,同时优化场景和MLP(其中一个MLP用作decoder)。

可以看出,大的框架还是一样的,最重要的不同,是NGP选取了参数化的voxel grid作为场景表达。通过学习,让voxel中保存的参数成为场景密度的形状。MLP最大的问题就是慢。为了能高质量重建场景,往往需要一个比较大的网络,每个采样点过一遍网络就会耗费大量时间。而在grid内插值就快的多。但是grid要表达高精度的场景,就需要高密度的voxel,会造成极高的内存占用。考虑到场景中有很多地方是空白的,所以NVIDIA就提出了一种稀疏的结构来表达场景。

4. F2-NeRF

F2-NeRF: Fast Neural Radiance Field Training with Free Camera Trajectories

论文链接:https://totoro97.github.io/projects/f2-nerf/

提出了一种新的基于网格的NeRF,称为F2-NeRF(Fast Free NeRF),用于新的视图合成,它可以实现任意输入的相机轨迹,并且只需要几分钟的训练时间。现有的基于快速网格的NeRF训练框架,如Instant NGP、Plenoxels、DVGO或TensoRF,主要针对有界场景设计,并依靠空间warpping来处理无界场景。现有的两种广泛使用的空间warpping方法仅针对面向前方的轨迹或360◦ 以物体为中心的轨迹,但不能处理任意的轨迹。本文深入研究了空间warpping处理无界场景的机制。进一步提出了一种新的空间warpping方法,称为透视warpping,它允许我们在基于网格的NeRF框架中处理任意轨迹。大量实验表明,F2-NeRF能够在收集的两个标准数据集和一个新的自由轨迹数据集上使用相同的视角warpping来渲染高质量图像。

5.MobileNeRF

移动端实时渲染,Nerf导出Mesh,被CVPR2023收录!

MobileNeRF: Exploiting the Polygon Rasterization Pipeline for Efficient Neural Field Rendering on Mobile Architectures.

​​https://arxiv.org/pdf/2208.00277.pdf​​

神经辐射场(NeRF)已经证明了从新颖的视图合成3D场景图像的惊人能力。然而,它们依赖于基于光线行进的专用volumetric 渲染算法,这些算法与广泛部署的图形硬件的功能不匹配。本文介绍了一种新的基于纹理多边形的NeRF表示,该表示可以通过标准渲染pipeline有效地合成新图像。NeRF表示为一组多边形,其纹理表示二元不透明性和特征向量。使用z缓冲区对多边形进行传统渲染会生成每个像素都具有特征的图像,这些特征由片段着色器中运行的小型视图相关MLP进行解释,以生成最终的像素颜色。这种方法使NeRF能够使用传统的多边形光栅化pipeline进行渲染,该pipeline提供了巨大的像素级并行性,在包括手机在内的各种计算平台上实现交互式帧率。

6.Co-SLAM

实时视觉定位和NeRF建图工作,被CVPR2023收录;

Co-SLAM: Joint Coordinate and Sparse Parametric Encodings for Neural Real-Time SLAM

论文链接:https://arxiv.org/pdf/2304.14377.pdf

Co-SLAM是一个基于神经隐式表示的实时RGB-D SLAM系统,能够进行相机跟踪和高保真度的表面重建。Co-SLAM将场景表示为多分辨率哈希网格,以利用其极高的收敛速度和表示高频局部特征的能力。此外,为了融合表面一致性先验,Co-SLAM添加了一种块状编码方法,证明它使得在未观测区域能够进行强大的场景补全。我们的联合编码将两种优点结合到了Co-SLAM中:速度、高保真度重建以及表面一致性先验,射线采样策略使得Co-SLAM能够对所有关键帧进行全局捆绑调整!

7.Neuralangelo

当前最好的NeRF表面重建方法(CVPR2023)

神经表面重建已被证明可以通过基于图像的神经渲染来恢复密集的3D表面。然而,目前的方法很难恢复真实世界场景的详细结构。为了解决这个问题,本文提出了Neuralangelo,它将多分辨率3D哈希网格的表示能力与神经表面渲染相结合。两个关键因素:

(1) 用于计算作为平滑操作的高阶导数的数值梯度,以及(2)控制不同细节级别的哈希网格上的从粗到细优化。

即使没有深度等辅助输入,Neuralangelo也可以有效地从多视图图像中恢复密集的3D表面结构,其保真度大大超过了以前的方法,从而能够从RGB视频捕获中进行详细的大规模场景重建!

8.MARS

首个开源自动驾驶NeRF仿真工具。

​​https://arxiv.org/pdf/2307.15058.pdf​​

自动驾驶汽车在普通情况下可以平稳行驶,人们普遍认为,逼真的传感器模拟将在解决剩余拐角情况方面发挥关键作用。为此,MARS提出了一种基于神经辐射场的自动驾驶模拟器。与现有作品相比,MARS有三个显著特点:(1)实例意识。模拟器使用独立的网络分别对前景实例和背景环境进行建模,以便可以分别控制实例的静态(例如大小和外观)和动态(例如轨迹)特性。(2) 模块化。模拟器允许在不同的现代NeRF相关主干、采样策略、输入模式等之间灵活切换。希望这种模块化设计能够推动基于NeRF的自动驾驶模拟的学术进步和工业部署。(3) 真实。模拟器在最佳模块选择的情况下,设置了最先进的真实感结果。

最重要的一点是:开源!

9.UniOcc

NeRF和3D占用网络, AD2023 Challenge

UniOcc: Unifying Vision-Centric 3D Occupancy Prediction with Geometric and Semantic Rendering.

论文链接:https://arxiv.org/abs/2306.09117

UniOCC是以视觉为中心的3D占用预测,用于占用预测的现有方法主要集中于使用3D占用标签来优化3D volume 空间上的投影特征。然而,这些标签的生成过程复杂且昂贵(依赖于3D语义注释),并且受体素分辨率的限制,它们无法提供细粒度的空间语义。为了解决这一限制,本文提出了一种新的统一占用(UniOcc)预测方法,明确施加空间几何约束,并通过体射线渲染补充细粒度语义监督。方法显著提高了模型性能,并证明了在降低人工标注成本方面的潜力。考虑到标注3D占用的费力性质,进一步引入了深度感知师生(DTS)框架,以使用未标记数据提高预测精度。解决方案在单机型的官方排行榜上获得了51.27%mIoU的成绩,在本次挑战中排名第三。

10.Unisim

waabi出品,必是精品啊!

UniSim: A Neural Closed-Loop Sensor Simulator

论文链接:https://arxiv.org/pdf/2308.01898.pdf

阻碍自动驾驶普及的一个重要原因是安全性仍然不够。真实世界过于复杂,尤其是存在长尾效应(long tail)。边界场景对安全驾驶至关重要,很多样,但又很难遇到。测试自动驾驶系统在这些场景的表现非常困难,因为这些场景很难遇到,而且在真实世界中测试非常昂贵和危险。

为了解决这个挑战,工业界和学术界都开始重视仿真系统的开发。一开始,仿真系统主要专注于模拟其他车辆/行人的运动行为,测试自动驾驶规划模块的准确性。而最近几年,研究重心逐渐转向传感器层面的仿真,即仿真生成激光雷达、相机图片等原始数据,实现端到端测试自动驾驶系统从感知、预测一直到规划。

不同于以往工作, UniSim首次同时做到了:

  1. 高度逼真(high realism): 可以准确地模拟真实世界(图片和LiDAR), 减小鸿沟(domain gap )
  2. 闭环测试(closed-loop simulation): 可以生成罕见的危险场景测试无人车, 并允许无人车和环境自由交互
  3. 可扩展 (scalable): 可以很容易的扩展到更多的场景, 只需要采集一次数据, 就能重建并仿真测

仿真系统的搭建

UniSim 首先从采集的数据中,在数字世界中重建自动驾驶场景,包括汽车、行人、道路、建筑和交通标志。然后,控制重建的场景进行仿真,生成一些罕见的关键场景。

闭环仿真(closed-loop simulation)

UniSim可以进行闭环的仿真测试,首先, 通过控制汽车的行为, UniSim可以创建一个危险的罕见场景, 比如有一辆汽车在当前车道突然迎面驶来;然后, UniSim仿真生成对应的数据;接着, 运行自动驾驶系统, 输出路径规划的结果;根据路径规划的结果, 无人车移动到下一个指定位置, 并更新场景(无人车和其他车辆的位置);然后我们继续进行仿真, 运行自动驾驶系统, 更新虚拟世界状态 ……通过这种闭环测试, 自动驾驶系统和仿真环境可以进行交互, 创造出与原始数据完全不一样的场景

#自动驾驶中的MPC控制

目前的车辆控制中,最火的控制器就是MPC了。在学校,如果你不做MPC控制,不懂MPC控制,是绝对不好意思说是做车辆控制的。MPC坐稳了学界中车辆控制器中的第一把交椅,但是在业界中呢?   

不咋地。

业界中最火的还是LQR+PID。。。

这就要聊聊MPC到底哪里比LQR强了,我认为,MPC最大的优势就是可以有不等式约束。

举一个栗子。

你要上一个两米高的屋顶,直接蹦肯定上不去,容易腿摔折,咋办呢?首先你要知道自己的弹跳能力,比如小于半米,超过了就蹦不上去了,所以你要弄来三个相差半米的台阶,蹦四次就能上房揭瓦了。

MPC控制器就能够直接按照一定的约束计算出台阶以及你该咋蹦。

那为什么在业界中MPC还不咋地呢?

我们先不谈MPC控制器的参数调节难度和稳定性的问题(这问题忒大了)。就看必要性。

来,看图, apollo 的L3的模块图。

可以看到control的上游模块是planning,其中planning就包括motion planning(MP)。

MP的作用就是规划一条安全舒适可行驶轨迹

注意四个加粗词。

安全的意思就是避免撞上马路牙子和其他车。

舒适的意思就是要尽量满足人的舒适性要求。

可行驶的意思就是给出的这条轨迹是控制能够跟随的。

轨迹就是带时间信息的,把控制的输入定死了,不许耍花样。

那还MPC啥了?MP模块把台阶给你铺好了,把梯子给你搭好了,如果你说这个台阶不合适,那就反应给MP,最终MP就会给你一个最合适的台阶,这就是MP模块的职责。

所以,这时候control模块的任务就是伺服了,就是要尽快减少误差,执行10Hz的MP指令。

一个伺服控制是不需要在控制中再做一遍规划求最优的,台阶是不需要重复的铺两遍的。因此,MPC就显得非常鸡肋了。

你可能会说,那一套是L3的,L2中很多是没有MP模块的,这时候MPC就有用了吧?

答案是依然没有用,因为L2的主控芯片要跑很多东西,并且算力都不强,跑一个MPC的求解器是非常大的负担,团队会同意你加一个这个东西吗?

你可能又会说,百度Apollo不也做MPC算法了吗?没用他们能做吗?

答案是做了也不用,Apollo的横向默认控制器是LQR,纵向默认控制器是双环PID。

既然都不用,那他们为什么还做呢?因为那时候他们没有量产车。要知道,车辆控制的工作量不是在设计控制器,而是调节最优的参数,是和底层的EPS ESP互相磨合打交道,是要处理上万辆车出现的各种异常情况,这些看起来很low很琐碎的事情是非常关键的,占据了工程师大量的时间。

他们没有量产,在MKZ上做这些是没有意义的。那总要干一点创新的吧,那就干MPC吧,好不好用做一做就知道了。做完发现不好用,默认控制器还是PID+LQR吧

因此在以量产为目的车辆控制,很少有用MPC的,反正孤陋寡闻的我是没听过。

另外一个原因是,现在的传统PID+LQR的控制器已经足够用了,PID等传统算法有各种优化的方法,可以加各种小trick,足够满足性能需求了。因此,没听说哪一家被控制卡住脖子了。

#这是自动驾驶の从入门到放弃

UniAD[1]获得CVPR Best Paper Award后毫无疑问给自动驾驶领域带来了又一个热点: 端到端自动驾驶。同时马老师也在极力的宣传自己的端到端FSD。不过本篇文章只把讨论限定在一个很小的学术方向,基于nuScenes的开环端到端自动驾驶,会给出一些细节的东西,不讨论其它假大空的东西。(叠个甲,本文章仅是学术讨论,不包含任何对于文章中引用的paper,相关作者的任何负面态度)

因为不能闭环所以被迫选择了开环

以能否得到反馈为标准,端到端自动驾驶的学术研究主要分为两类,一类是在模拟器比如CARLA中进行,规划的下一步指令可以被真实的执行。第二类主要是在已经采集的现实数据上进行端到端研究,主要是模仿学习,参考UniAD。开环的缺点就是无法闭环(好像是废话),不能真正看到自己的预测指令执行后的效果。由于不能得到反馈,开环自动驾驶的测评极其受限制,现在文献中常用的两种指标分别是

  • L2 距离:通过计算预测轨迹和真实轨迹之间的L2距离来判断预测轨迹的质量
  • Collision Rate: 通过计算预测轨迹和其他物体发生碰撞的概率,来评价预测轨迹的安全性

事实上我们发现这两个指标完全不足以评判预测的轨迹的质量,一些技术看似提高了模型在这些指标上的表现,实则带来了其他没有被发现的问题,后续会介绍到。

nuScenes不是为planning设计的

关于开环端到端自动驾驶的测评问题最早在这篇文章[2] 中提到。在这篇文章中他们仅使用Ego Status就能够获得和现有Sota相比较的结果。但是第一次文章放出来的时候他们的数据好像用错了[3] 。同时他们错误的认为VAD也用了history trajectory, 但其实VAD[4]并没有使用历史轨迹。在AD-MLP中历史轨迹是一个默认使用的选项,当时本人理所应当的认为AD-MLP可能是受益于历史轨迹的使用,并没有特别在意这篇文章的结论。

表1: AD-MLP的实验结果

不过后来实验受挫之后,心态发生了:”从相信端到端到怀疑端到端“的转变后,开始觉得AD-MLP的结论应该是对的。通过可视化很多nuScenes的整体场景,会发现相当比例的场景都是直行,而且速度变化不大,交互很少,如图1所示。考虑到我们对于AD-MLP使用历史轨迹的顾虑,我们复现了一版仅使用当前速度,加速度,转向角和转向指令的MLP网络。如图2所示,为了区分,将我们复现的这个网络记为Ego-MLP。Ego-MLP不使用任何传感器感知信息,监督loss仅为一个L2 Loss。同时我们还有一个更基础的驾驶策略Go Stright: 保持当前速度继续前进。

图1: nuScenes的场景相对简单,直行占比过大

表2 实验结果由我们使用统一的Eval代码和策略获得,与之前文献中会有不一样的地方. ID-1,3,4为我们根据开源代码简单修改复现的结果, UniAD和VAD使用BEVFormer生成BEV特征,BEVFormer默认在BEV初始阶段引入can_bus (可以理解为ego status)信息

如表2所示,我们会有如下发现

  • 简单的直行策略(ID-7)在2s内的指标都挺高的。
  • Ego-MLP 不使用感知也能取得和现有sota差不多的结果。

第二条其实还可以换个角度这样理解,现有方法比如VAD, UniAD只有在Planner上引入Ego Status才能取得和Ego-MLP相似的效果。所以自然而然有了下面的问题:

Ego Status 引入会降低对感知的依赖

为了探究Perception 和Ego Status的效果,我们向这两个输入分别加扰动。如表3所示,在Planner中已经使用了Ego Status的情况下,就算把所有相机输入全部去掉,感知模块全部崩溃(结果变成0),模型的planning效果依然会在一个非常好的水平。我们相信这并不是一个正常的现象。与之对比的是模型会过渡依赖Ego Status的信息,假如我们改变输入模型的速度,会发现模型预测的轨迹基本会按照我们输入的假的速度去走,哪怕输入图像中事实上隐式地包含了ego的真实速度。如果输入速度全部设置成0的话,模型预测的轨迹基本处于原地不动的状态。

表3

结合上面我们所讨论的仅使用Ego-Status的MLP网络就能获得sota效果,说明对于nuScenes来说,Ego Status就是预测轨迹的一条shortcut, 当模型引入Ego status的时候,自然会降低对于感知信息的利用。这样的表现很难让人相信端到端模型在复杂场景下的表现。

设计一个高效的Baseline 来验证Ego Status的效果

首先,我们实在负担不起在VAD或者UniAD上来做验证实验,举例来说UniAD的第二阶段训练在我们的8* V100上就需要10天。同时,ST-P3[5],一个经常被拿来比较的方法使用了部分不正确的训练和测试数据,产生的结果数值上是不准确的。

因此我们认为我们需要设计一个相对简洁高效的baseline方法能够快速验证我们的想法,并且能够跟现有方法进行有效对比。不同于UniAD的模块化设计,我们使用了一个非常非常简单的设计,如下图所示,我们提出的baseline网络直接使用生成的BEV特征与一个Ego query发生交互,然后通过MLP预测最终的轨迹。与UniAD等方法不同,我们的baseline方法不使用其他任何中间监督,包括但不限于Depth, Detection, Map, Motion 等。最终模型仅使用一个L2 loss来进行轨迹的监督。Ego Status可以在BEV阶段或者最终的MLP阶段选择性加入。我们的模型训练12ep需要大概6个小。

图3

最终的结果如下表,在BEV和Planner中都使用Ego staus时,我们的方法(ID-12)和VAD-Base(ID-6)基本一致,这能说明我们的方法简单却有效吗?显然不能,这也正是Ego status主导planning性能所带来的影响,使用Ego status后,根本无需复杂设计就能取得和现有sota差不多的结果。在Ego status占据主导地位后,不同方法之间的差异根本体现不出来。事实上我们已经看到了类似的论文把使用ego status所带来的性能提升包装进自己方法里,用来展现自己方法的有效性。这是极其误导人的行为。

表4

看似我们的方法在使用Ego Status时取得了不错的结果,但是从下图中可以看到,在Planner中使用Ego status的方法(Baseline++)似乎只用3k个iter就能收敛了,这显然是模型学到了Ego status到planning的short cut而非从视觉信息中获得有效线索。可视化BEV特征也发现,模型几乎没有从视觉分支中学习到什么有意义的表征。

图4

我们暂时先不讨论为什么我们的方法在不使用ego status的情况下(ID-10)效果也不错的这个现象。

不用Ego Status不就完事了?

既然引入Ego Status会主导planning的学习,假如我们不想让这样的现象发生,那我们不用Ego Status不就完事了吗?第一时间这么想肯定没问题,但是

真的没有使用Ego Status吗?

为什么会有这个问题呢?因为我们发现很多方法会无意识的引入Ego Status。例如,BEVFormer默认使用了can_bus信息,这里面包含了跟自车速度,加速度,转向角相关的信息。这个东西对BEVFormer做感知其实是没啥用的,但是VAD和UniAD拿过来直接做planning话,can_bus就会发挥作用了。类似的Ego信息在感知方法中也经常被使用用来做时序对齐之类的事情。我们重新训练了去掉了can_bus的UniAD 和VAD模型,会发现明显的性能下降。考虑到ego status信息在最新的BEV方法中都被广泛使用,去掉这些信息的使用或者保证不同方法之间的公平比较都是非常困难的事情。一点点Ego status的泄漏都会对最终的planning性能产生巨大的影响。

图5: BEVFormer默认使用的can_bus_info包含ego status

去掉Ego Stutus仍存在的问题

讨论到现在,可能只是简单的认为责任全在ego status,很可惜并不是这样。当我们观察上面的表4,会看到我们的方法Baseline(ID-10)在不使用任何ego status的信息的情况下,可以取得和UniAD(ID-2), VAD(ID-5)这些在BEV上用了ego status的,使用了额外感知,预测任务的模型差不多的效果。 我们再回顾一下我们的Baseline (ID-4)的设置,输入图像256x704, 仅使用GT轨迹,不使用其他中间标注,仅使用L2 loss训练12ep。 为什么这样一个朴素到极致的方法会取得这样的效果?在这里我只给出我的一个猜想,不一定正确。 既然我们能够用ego status几个数值就拟合nuScenes大多数简单场景,说明学习nuScenes 大多数简单场景的planning本身就不是一件具有挑战性的事情,学习这些简单场景下的planning根本就不需要perception map等信息。其他方法使用了更多其他模块,带来更复杂的多任务学习,事实上反而影响了planning 本身的学习,我们也做了一个简单的实验来验证我们的猜想。

表5

如上表所示,Baseline 是原来的(ID-10)的结果,我们在Baseline上添加了一个MapFormer,具体实现做法和UniAD/VAD差不多,这个Baseline+Map模型的初始化是经过Map预训练的。我们可以看到Baseline+Map的结果远远逊色于Baseline。 原因是啥呢?为了消除Map预训练的影响,我们也使用Map预训练的权重作为(ID-10)这个setting的初始化得到了Baseline(init*)这个结果,通过对比Baseline不同初始化,我们可以发现,预训练的Map权重不会导致性能下降,反而会提升性能。问题只会出现在引入Map任务本身了。

我们对比了Baseline和Baseline+Map 在直行命令下的 L2 指标:L2-ST 和左右转指令下的L2指标: L2-LR。 同样还有在直行命令下的碰撞率指标Collision-ST, 在转弯场景下的碰撞率指标Collision-LR。 我们会发现在转弯场景下引入Map只是轻微增加L2距离,并且能够大幅度降低转弯场景下的碰撞率。与之对应的是直行场景下的L2和Collision被double了。考虑到转弯场景通常是更复杂,更需要操作的,而直行场景相对简单,我们猜测是因为引入Map 带来多任务学习的干扰反而影响了这些简单场景的学习。在nuScenes验证集上,直行命令占比87%,因此主导了最终的平均指标。我们可以看到Map引入在转弯场景下实际是没什么负面效果的,但是被平均之后Map的积极效果根本彰显不出来。

如果我们的猜想成立,这说明nuScenes做planning不单单是一个ego status的问题,而是本身全方面的不靠谱。

开环Planning指标

碰撞率指标的多个问题

我们暂时先不讨论L2 distance的问题, 因为好像更多的文章倾向于认可collision rate这个指标。实际上这个指标非常不靠谱,原因有:

  • 计算碰撞的时候,其他车的未来轨迹都是回放,没有任何reaction,单从这一点上讲,这个指标就很不靠谱。
  • 实际实现的问题,由于预测的轨迹只是一堆xy坐标,没有考虑ego 的yaw angle在未来的变化,计算碰撞的时候也是假设ego car的yaw angle永远保持不变,会造成很多错误的碰撞计算。我们这次也是通过轨迹估算yaw, 统一解决了这个问题。

图7 UniAD引入后处理模块来优化轨迹,降低碰撞率

  • Collision Rate可以被后处理进行攻击, UniAD中最有效的模块是一个后处理模块,在端到端模型给出一个初始的预测结果后,使用一个optimizer 来使得轨迹在满足一定约束条件下尽可能的远离其他物体,从而避免碰撞。从指标上讲,这个trick可以显著降低collision rate。然而看似合理的模块其实只是对于collision rate的一个hack, 原因在于约束条件不够多,例如没有考虑到地图信息。可以简单理解为:为了躲其他车,这个模块会选择打方向盘,冲到马路牙子上。但是根据现有指标,撞马路牙子是没有啥大问题的。

引入新指标

上面我们讨论了,汽车撞到马路牙子时,现在的指标是不会有什么显著惩罚的,造成一些方法可以通过用撞马路牙子的手段来降低与其他车发生碰撞的概率。所以我们使用了一个新的指标用来统计ego和road boundary(马路牙子)发生交集的概率。具体实现方法和collision rate的方法一致。经过统计,使用UniAD的后处理,降低0.1 %的碰撞概率的代价是增加5%以上与道路边界(马路牙子)发生交互的概率。这一后处理显然是不合理的,我们汇报UniAD的结果时,也都是默认不使用后处理的。

图8 UniAD的后处理显著增加了与马路边间发生交互的概率

开环的DEMO真的可靠吗

图9 左:根据当前速度直行,中:Ego-MLP 右: GT 我们可以看到左边这列使用最简单的按照当前速度直行的策略,也会减速让行,避让车辆。这其实这都是human driver 的操作。 对于开环方法,每一时刻都会刷新回human driver驾驶的安全轨迹,沿用human driver的驾驶策略。因此开环端到端方法每时每刻都是在一个安全的轨迹之上做未来的预测,不受到累计误差的影响。再难的路, 0.5s后 human driver总会给你正确答案。

你的开环端到端模型能学会转弯吗?

图10, 似乎所有的开环模型都不会转弯

我们发现似乎所有的开环模型都没有学会怎么转弯,转弯的时候预测的轨迹和真实轨迹差别很大,而且前后预测的轨迹不smooth,也就是前后不一致。

总结

基于nuScenes的开环端到端自动驾驶,所面临的问题太多了,心累了。

参考

  1. ​​https://arxiv.org/pdf/2212.10156.pdf​​
  2. RethinkingtheOpen-LoopEvaluationofEnd-to-EndAutonomousDrivingin nuScenes https://arxiv.org/pdf/2305.10430.pdf
  3. AD-MLP Issue https://github.com/E2E-AD/AD-MLP/issues/4
  4. ​​https://github.com/hustvl/VAD​​
  5. ​​https://github.com/OpenDriveLab/ST-P3​​

#自动驾驶轨迹/行为/运动/交通预测~论文总结

1.轨迹预测

TP-AD-Survey

题目:A Survey on Trajectory-Prediction Methods for Autonomous Driving

名称:自动驾驶轨迹预测方法综述

论文:https://ieeexplore.ieee.org/document/9756903

TP-Vision-Survey

题目:Trajectory-Prediction with Vision: A Survey

名称:视觉轨迹预测:一项调查

论文:https://arxiv.org/abs/2303.13354

TP-MultiModal-Survey

题目:Multimodal Trajectory Prediction: A Survey

名称:多模态轨迹预测:调查

论文:https://arxiv.org/abs/2302.10463

TP-DMAL-Survey

题目:A Survey on Trajectory Data Management, Analytics, and Learning

名称:轨迹数据管理、分析和学习调查

论文:https://arxiv.org/abs/2003.11547

TSM-ST-Survey

题目:Spatio-Temporal Trajectory Similarity Measures: A Comprehensive Survey and Quantitative Study

名称:时空轨迹相似性度量:综合调查和定量研究

论文:https://arxiv.org/abs/2303.05012

TP-Veh-ML-AD-Survey

题目:Machine Learning for Autonomous Vehicle's Trajectory Prediction: A comprehensive survey, Challenges, and Future Research Directions

名称:自动驾驶车辆轨迹预测的机器学习:综合调查、挑战和未来研究方向

论文:https://arxiv.org/abs/2307.07527

TP-Veh-AD-DL-Survey

题目:A Survey on Deep-Learning Approaches for Vehicle Trajectory Prediction in Autonomous Driving

名称:自动驾驶中车辆轨迹预测的深度学习方法综述

论文:https://arxiv.org/abs/2110.10436

TP-Veh-ML-Survey

题目:Machine Learning for Autonomous Vehicle's Trajectory Prediction: A comprehensive survey, Challenges, and Future Research Directions

名称:自动驾驶车辆轨迹预测的机器学习:综合调查、挑战和未来研究方向

论文:https://arxiv.org/abs/2307.07527

TP-Veh-DK-DL-AD-Survey

题目:Incorporating Driving Knowledge in Deep Learning Based Vehicle Trajectory Prediction: A Survey

名称:将驾驶知识融入基于深度学习的车辆轨迹预测:一项调查

论文:https://ieeexplore.ieee.org/document/10100881

TP-Veh-DL-AD-Survey

题目:A Survey on Deep-Learning Approaches for Vehicle Trajectory Prediction in Autonomous Driving

名称:自动驾驶中车辆轨迹预测的深度学习方法综述

论文:https://arxiv.org/abs/2110.10436

TP-Veh-DL-Survey

题目:A Survey of Vehicle Trajectory Prediction Based on Deep-Learning

名称:基于深度学习的车辆轨迹预测综述

论文:https://ieeexplore.ieee.org/document/10105706

TP-Ped-Veh-Mixed-Env-Survey

题目:Pedestrian Trajectory Prediction in Pedestrian-Vehicle Mixed Environments: A Systematic Review

名称:人车混合环境中的行人轨迹预测:系统综述

论文:https://arxiv.org/abs/2308.06419

TP-Ped-DL-AD-Survey

题目:A Review of Deep Learning-Based Methods for Pedestrian Trajectory Prediction

名称:基于深度学习的行人轨迹预测方法综述

论文:https://www.mdpi.com/1424-8220/21/22/7543

TP-Ped-DL-KB-Survey

题目:Review of Pedestrian Trajectory Prediction Methods: Comparing Deep Learning and Knowledge-based Approaches

名称:行人轨迹预测方法回顾:深度学习和基于知识的方法的比较

论文:https://arxiv.org/abs/2111.06740

2.行为预测

BP-AD-Survey

题目:Behavioral Intention Prediction in Driving Scenes: A Survey

名称:自动驾驶中车辆轨迹预测的深度学习方法综述

论文:https://arxiv.org/abs/2211.00385

BP-Ped-AD-Survey

题目:Pedestrian Behavior Prediction for Automated Driving: Requirements, Metrics, and Relevant Features

名称:自动驾驶的行人行为预测:要求、指标和相关特征

论文:https://arxiv.org/abs/2012.08418

BP-Ped-Urban-Survey

题目:A Literature Review on the Prediction of Pedestrian Behavior in Urban Scenarios

名称:城市场景行人行为预测文献综述

论文:https://dl.acm.org/doi/abs/10.1109/ITSC.2018.8569415

BP-Veh-DL-AD-Survey

题目:Deep Learning-based Vehicle Behaviour Prediction For Autonomous Driving Applications: A Review

名称:基于深度学习的自动驾驶应用车辆行为预测:综述

论文:https://arxiv.org/abs/1912.11676

BP-Driver-Human-Survey

题目:A Taxonomy and Review of Algorithms for Modeling and Predicting Human Driver Behavior

名称:人类驾驶员行为建模和预测算法的分类和综述

论文:https://arxiv.org/abs/2006.08832

3.运动预测

MP-Ped-Veh-AD-Survey

题目:A Survey on Motion Prediction of Pedestrians and Vehicles for Autonomous Driving

名称:自动驾驶行人和车辆运动预测研究综述

论文:https://ieeexplore.ieee.org/document/9559998

MP-SC-AutoVeh-Survey

题目:Scenario Understanding and Motion Prediction for Autonomous Vehicles—Review and Comparison

名称:自动驾驶汽车的场景理解和运动预测——回顾与比较

论文:https://ieeexplore.ieee.org/document/9733973

MP-3D-Human-Survey

题目:3D Human Motion Prediction: A Survey

名称:3D 人体运动预测:一项调查

论文:https://arxiv.org/abs/2203.01593

MTP-Human-Survey

题目:Human Motion Trajectory Prediction: A Survey

名称:人体运动轨迹预测:一项调查

论文:https://arxiv.org/abs/1905.06113

4.交通预测

TP-Traffic-BigData-Survey

题目:Big Data for Traffic Estimation and Prediction: A Survey of Data and Tools

名称:用于交通估计和预测的大数据:数据和工具调查

论文:https://arxiv.org/abs/2103.11824

TP-Traffic-DNN-Survey

题目:Short-term Traffic Prediction with Deep Neural Networks: A Survey

名称:使用深度神经网络进行短期交通预测:一项调查

论文:https://arxiv.org/abs/2009.00712

TP-Traffic-STG4Traffic

题目:STG4Traffic: A Survey and Benchmark of Spatial-Temporal Graph Neural Networks for Traffic Prediction

名称:STG4Traffic:用于交通预测的时空图神经网络的调查和基准

论文:https://arxiv.org/abs/2307.00495

#自动驾驶从1.0到3.0的思考

最近在思考自动驾驶( Autonomous Driving,以下简称AD)的发展趋势,发出来我的观点和大家讨论。

AD 1.0

定义

每个相机的图像输入给不同的模型来检测障碍物、车道线、交通灯等信息,融合模块使用规则来融合这些信息给规控模块,规控输出控车信号。具体架构如下图:

特点

  1. 每个相机图像单独过模型
  2. 有很多小模型:障碍物模型,车道线模型,交通灯模型等
  3. 融合、定位、规控模块都是人工编码

问题

  1. 障碍物是白名单制度,无法识别标注对象之外的目标,比如倒地的大卡车,路上的石块等等
  2. 障碍物表示为3D框,表示精度有限,比如运货大卡车凸出来的钢管等
  3. 规划模块不具备完备性,不考虑车辆运动之间的互相影响
  4. 融合、规控模块均为复杂的手工编码,迭代到最后非常容易出现顾此失彼的现象,难以维护
  5. 整个Debug流程本质上是用人力做反向传播,消耗的人力资源很多,无法规模化

应用案例

  1. TDA4等低算力平台
  2. 2020年之前的特斯拉
  3. 2022年之前的国内新势力

总结

AD1.0仅支持实现高速场景辅助驾驶,国内新势力也都已经经过了这个阶段。

AD 2.0

定义

各个相机的输入统一给模型,直接由模型完成不同相机及时序间的信息融合,感知模型同时输出障碍物、占据栅格、车道结构等等。规控模型接收感知输出的feature,输出自车预测轨迹或者控车信号。架构如下图

特点

  1. 感知只有一个BEV模型,完成多相机时序上的融合工作,输出3D障碍物、Occ、车道结构等信息。
  2. 规划也用模型,输出自车的预测轨迹或者控制信号
  3. 感知和规划模型必须要联合训练

问题

  1. 解决了通用障碍物的问题。但依然无法处理部分没有障碍物,但是需要特别注意的场景,比如说路面上有积水、未凝结的水泥路面、有水渍的环氧地坪地面等。
  2. 缺乏对现实世界的常识:比如塑料袋可以压过(物体材质),前方渣土车上的土块看起来要掉(地球有重力),前方路段是小学放学时间(社会规律),前面两个车撞到一起(突发事件)
  3. 和人类的交互太弱,目前的人机共驾只是人和汽车方向盘、油门的协同。人类无法告诉车辆『前面第二个路口右转,注意要提前上辅路』这类信息。

应用案例

  1. Tesla FSD V12 (2023年11月开始员工内部推送)
  2. 英国的自动驾驶公司 Wayve

总结

AD 2.0支持实现城区辅助驾驶,但由于上述问题的存在,依然无法实现无人化。国内新势力在感知端已经完成了AD 2.0的切换,但是规控端还是规则,也可以称之为AD 1.5

AD 3.0

定义

AD 1.0和AD 2.0的架构已经在业界达成共识,但还是支撑不了真正的无人化驾驶。怎么能通向真正的无人化,目前并无确定的方向。

这里介绍一种可能的方案,把多模态大模型(Multi-modal LLM)作为Agent来控车,架构如下图。

相比AD 2.0的输入只有传感器数据,这里多了人类指令交互,机器可以听从人类指令,调整驾驶行为。

特点

  1. 由多模态大模型作为核心来控车
  2. 可以和人类(车内的乘客和车外的管理人员)进行语言交互

问题

  1. 怎么消除MLLM的幻觉问题?
  2. 怎么在车上实时的运行MLLM?

应用案例

暂无,硬要说的话可以看看OpenAI投资的自动驾驶公司Ghost Autonomy(Ghost也无法解决上车问题)

总结

这种方案上限很高,有望达到人类级别的驾驶水平。但是目前还在学术探索阶段,还需要几年时间才能落地。

在当前这个时间点,也许可以通过把MLLM部署在云端,来监管车辆自动驾驶的行为,并在必要的时候做出修正,类似于L4的远程司机,这种架构称之为AD 2.5?

#大模型技术在自动驾驶的应用与影响

深入分析大模型技术在自动驾驶领域的应用和影响

  • 文中首先概述了大模型技术的发展历程,自动驾驶模型的迭代路径,以及大模型在自动驾驶行业中的作用
  • 接着,详细介绍了大模型的基本定义、基础功能和关键技术,特别是Transformer注意力机制和预训练-微调范式。
  • 文章还介绍了大模型在任务适配性、模型变革和应用前景方面的潜力
  • 在自动驾驶技术的部分,详细回顾了从CNN到RNN、GAN,再到BEV和Transformer结合的技术迭代路径,以及占用网络模型的应用。
  • 最后,文章重点讨论了大模型如何在自动驾驶的感知、预测和决策层面提供赋能,突出了其在该领域的重要性和影响力。

一、概述

1.1 大模型技术发展历程

大模型泛指具有数十亿甚至上百亿参数的深度学习模型,而大语言模型是大模型的一个典型分支(以ChatGPT为代表)

Transformer架构的提出引入了注意力机制,突破了RNN和CNN处理长序列的固有局限,使语言模型能在大规模语料上得到丰富的语言知识预训练:

  • 一方面,开启了大语言模型快速发展的新时代;
  • 另一方面奠定了大模型技术实现的基础,为其他领域模型通过增大参数量提升模型效果提供了参考思路。

复杂性、高维度、多样性和个性化要求使得大型模型在自动驾驶、量化交易、医疗诊断和图像分析、自然语言处理和智能对 话任务上更易获得出色的建模能力。

1.2 自动驾驶模型迭代路径

自动驾驶算法模块可分为感知、决策和规划控制三个环节。其中感知模块为关键的组成部分,经历了多样化的模型迭代:

CNN(2011-2016)—— RNN+GAN(2016-2018)—— BEV(2018-2020)—— Transformer+BEV(2020至 今)—— 占用网络(2022至今)

可以看一下特斯拉智能驾驶迭代历程:

2020年重构自动驾驶算法,引入BEV+Transformer取 代传统的2D+CNN算法,并采用特征级融合取代后融合,自动标注取代人工标注。

  • 2022年算法中引入 时序网络,并将BEV升级为占用网络(Occupancy Network)。
  • 2023年8月,端到端AI自动驾驶系统FSD Beta V12首次公开亮相,完全依靠车载摄像头和神经网络来识别道路和交通情况,并做出相应的决策。

1.3 大模型对自动驾驶行业的赋能与影响

自动驾驶领域的大模型发展相对大语言模型滞后,大约始于2019年,吸取了GPT等模型成功经验。

大模型的应用加速模型端的成熟,为L3/L4级别的自动驾驶技术落地提供了更加明确的预期。

可从成本、技术、监管与安全四个层面对于L3及以上级别自动驾驶落地的展望,其中:

  • 成本仍有下降空间
  • 技术的发展仍将沿着算法和硬件两条主线并进
  • 法规政策还在逐步完善之中
  • 安全性成为自动驾驶汽车实现商业化落地必不可少的重要因素

各主机厂自2021年开始加速对L2+自动驾驶的布局,且预计在2024年左右实现L2++(接近L3)或者更高级别的自动驾驶功能的落地,其中政策有望成为主要催化

二、大模型技术发展历程

2.1 大模型基本定义与基础功能

大模型基本定义:由大语言模型到泛在的大模型大模型主要指具有数十亿甚至上百亿参数的深度学习模型,比较有代表性的是大型语言模型( Large Language Models,比如最近大热的ChatGPT)。

大型语言模型是一种深度学习算法,可以使用非常大的数据集来识别、总结、翻译、预测和生成内容。

大语言模型在很大程度上代表了一类称为Transformer网络的深度学习架构。Transformer模型是一个神经网络,通过跟踪序列数据中的关系(像这句话中的词语)来学习上下文和含义。

Transformer架构的提出,开启了大语言模型快速发展的新时代:

  • 谷歌的BERT首先证明了预训练模型的强大潜力
  • OpenAI的GPT系列及Anthropic的Claude等继续探索语言模型技术的边界。越来越大规模的模型不断刷新自然语言处理的技术状态。这些模型拥有数百亿或上千亿参数,可以捕捉语言的复杂语义关系,并进行人类级别的语言交互。

下图是大模型的发展历程:

2.2 大模型的基础——Transformer注意力机制

注意力机制:Transformer的核心创新
创新点1:Transformer模型最大的创新在于提出了注意力机制,这一机制极大地改进了模型学习远距离依赖关系的能力,突破了传统RNN和CNN在处理长序列数据时的局限。

创新点2:在Transformer出现之前,自然语言处理一般使用RNN或CNN来建模语义信息。但RNN和CNN均面临学习远距离依赖关系的困难:

  • RNN的序列处理结构使较早时刻的信息到后期会衰减;
  • 而CNN的局部感知也限制了捕捉全局语义信息。
  • 这使RNN和CNN在处理长序列时,往往难以充分学习词语之间的远距离依赖。

创新点3:Transformer注意力机制突破了RNN和CNN处理长序列的固有局限,使语言模型能在大规模语料上得到丰富的语言知识预训练。该模块化、可扩展的模型结构也便于通过增加模块数量来扩大模型规模和表达能力,为实现超大参数量提供了可行路径

Transformer解决了传统模型的长序列处理难题,并给出了可无限扩展的结构,奠定了大模型技术实现的双重基础。

下面是Transformer结构图:

2.3 大模型的预训练-微调范式

大模型代表了一种新的预训练-微调范式,其核心是先用大规模数据集预训练一个极大的参数模型,然后微调应用到具体任务。

这与传统的单任务训练形成了对比,标志着方法论的重大变革。

参数量的倍数增长是大模型最根本的特点,从早期模型的百万量级,发展到现在的十亿甚至百亿量级,实现了与以往数量级的突破。

Transformer架构的提出开启了NLP模型设计的新纪元,它引入了自注意力机制和并行计算思想,极大地提高了模型处理长距离依赖关系的能力,为后续大模型的发展奠定了基础。

正是由于Transformer架构的成功,研究者们意识到模型的架构设计在处理复杂任务和大规模数据中发挥着举足轻重的作用。这一认识激发了研究者进一步扩大模型参数量的兴趣。虽然之前也曾有过扩大参数量的尝试,但因受限于当时模型本身的记忆力等能力,提高参数数量后模型的改进并不明显。

GPT-3的成功充分验证了适度增大参数量能显著提升模型的泛化能力和适应性,由此掀起了大模型研究的热潮。

它凭借过千亿参数量和强大的语言生成能力,成为参数化模型的典范。GPT-3在许多NLP任务上表现亮眼,甚至在少样本或零样本学习中也能取得惊人的效果。

增大参数量的优点:

  1. 更好的表示能力:增大参数量使模型能够更好地学习数据中的复杂关系和模式,从而提高模型的表示能力,使其在不同任务上表现更出色。
  2. 泛化能力和迁移学习:大模型能够从一个领域学习到的知识迁移到另一个领域,实现更好的迁移学习效果,这对于数据稀缺的任务尤其有价值。
  3. 零样本学习:增大参数量可以使模型更好地利用已有的知识和模式,从而在零样本学习中取得更好的效果,即使只有很少的示例也能完成任务。
  4. 创新和探索:大模型的强大能力可以帮助人们进行更多创新性的实验和探索,挖掘出更多数据中的隐藏信息。

2.4 探索大模型:任务适配性、模型变革与应用前景

与早期的人工智能模型相比,大型模型在参数量上取得了质的飞跃,导致了在复杂任务的建模能力整体上的提升

1)学习能力增强:以应对更复杂的任务;
2)泛化能力加强:以实现更广泛的适用性;
3)鲁棒性提高;
4)具备更高层次认知互动能力:可模拟某些人类能力等。

复杂性、高维度、多样性和个性化要求使得大型模型在某些任务上更易获得出色的建模能力:

  • 多模态传感器数据的融合分析,尤其涉及到时序数据的处理,如自动驾驶
  • 复杂且动态的目标,需要模型从大规模多样化的数据模式中学习,如金融领域中的量化交易策略优化
  • 涉及异构数据源的高维输入空间,如医学图像和报告
  • 需要为不同用户或场景进行个性化建模的定制化需求,如智能助理

三、自动驾驶技术迭代路径

3.1 自动驾驶算法核心模块概览

自动驾驶算法模块可分为感知、决策和规划控制三个环节,其中感知模块为关键的组成部分

感知模块:感知模块负责解析并理解自动驾驶所处车辆周边的交通环境,是实现自动驾驶的基础和前提,感知模块的精准程度,直接影响并制约着自动驾驶系统的整体安全性和可靠性。

感知模块主要通过摄像头、激光雷达、毫米波雷达等各类传感器获取输入数据,然后通过深度学习等算法,准确解析出道路标线、其他车辆、行人、交通灯、路标等场景元素,以供后续流程使用。

决策和规划控制:与感知模块相比,决策和规划控制等模块的作用更为单一和被动。

这些模块主要依据感知模块输出的环境理解结果,通过算法决策生成驾驶策略,并实时规划车辆的运动轨迹和速度,最终转换为控制命令,以实现自动驾驶。

但是,大模型在车端赋能主要作用于感知和预测环节,逐渐向决策层渗透。

3.2 CNN

2011-2016:CNN引发自动驾驶领域的首次革新浪潮

随着深度学习和计算能力的提升,卷积神经网络(CNN)在图像识别任务上的出色表现引发了自动驾驶领域的首次革新浪潮。

  • 2011年,IJCNN的论文《Traffic Sign Recognition with Multi-Scale Convolutional Networks》展示了CNN在交通标志识别方面的潜力;
  • 2016年,Nvidia团队发表的《End-to-End Deep Learning for Self-Driving Cars》成为最早将CNN应用于端到端自动驾驶的工作之一。

这是一个两阶段的卷积神经网络架构,输入通过两个卷积和子采样阶段进行前馈处理,最终通过线性分类器进行分类。

CNN极大提升了自动驾驶车辆的环境感知能力

  • 一方面,CNN在图像识别与处理方面的卓越表现,使车辆能够准确分析道路、交通标志、行人与其他车辆;
  • 另一方面,CNN有效处理多种传感器数据的优势,实现了图像、激光雷达等数据的融合,提供全面的环境认知。叠加计算效率的提高,CNN模型进一步获得了实时进行复杂的感知与决策的能力。

但CNN自动驾驶也存在一定局限性:

  • 1)需要大量标注驾驶数据进行训练,而获取足够多样化数据具有难度;
  • 2)泛化性能有待提高;
  • 3)鲁棒性也需要经受更复杂环境的考验;
  • 4)时序任务处理能力:相比较而言RNN等其他模型可能更占优势。

3.3 RNN、GAN

2016-2018:RNN和GAN被广泛应用到自动驾驶相关的研究,推动自动驾驶在对应时间区间内快速发展

RNN相较于CNN更适合处理时间序列数据:RNN的循环结构可以建模时间上的动态变化,这对处理自动驾驶中的轨迹预测、行为 分析等时序任务非常有用。例如在目标跟踪、多智能体互动建模等领域,RNN和LSTM(RNN的改进版本)带来了巨大突破,可以 预测车辆未来的运动轨迹,为决策和规划提供支持。

GAN的生成能力缓解自动驾驶系统训练数据不足的问题:GAN可以学习复杂分布,生成高质量的合成数据,为自动驾驶领域带来 了新思路,用于缓解自动驾驶系统训练数据不足的问题。例如GAN可以生成模拟的传感器数据、场景信息,测试自动驾驶算法的 鲁棒性,也可以用于交互式模拟场景生成。

RNN+GAN,可以实现端到端的行为预测和运动规划:RNN负责时序建模,GAN负责数据生成,两者相互协同,可以为自动驾驶系统提供更全面和可靠的环境感知、状态预测和决策支持。

这是融合了LSTM和GAN的模型架构示例。

RNN和GAN仍未解决的问题:

  • RNN类模型:长期时序建模能力仍较弱,特别是在处理较长的时间序列数据时可能出现梯度消失或梯度爆炸的问题,限制了它在某些自动驾驶任务上的应用效果。
  • GAN模型:生成的数据质量难以控制,很难达到足够逼真的程度。此外,尽管GAN可以生成合成数据,但在实际应用中,它在自动驾驶领域的具体应用仍相对有限。
  • 样本效率低:RNN和GAN在样本效率方面仍较低,通常需要大量的真实场景数据来训练和优化模型。而且这些模型难以解释,缺乏对内部决策过程的清晰解释,同时模型的稳定性和可靠性也是需要进一步解决的问题之一。

RNN和GAN在自动驾驶领域应用趋冷的原因:

  • 效率和实时性需求:自动驾驶系统需要在实时性要求较高的情况下做出决策和控制。传统的RNN在处理序列数据时,存在计算效率较低的问题,处理实时感知和决策任务能力有限。
  • 复杂性和泛化能力:自动驾驶涉及复杂多变的交通场景和环境,需要具备强大的泛化能力。然而,传统的RNN可能在处理复杂的时序数据时遇到困难,而无法很好地适应各种交通情况。
  • 新兴技术的兴起:随着深度学习领域的发展,新的模型架构和算法不断涌现,如Transformer架构、强化学习等,这些新技术在处理感知、决策和规划等任务方面可能更加高效和适用。

3.4 BEV

2018-2020:基于鸟瞰视角(BEV)的模型在自动驾驶领域获得了广泛的研究和应用

BEV模型的核心思想是将车辆周围的三维环境数据(如来自激光雷达和摄像头的点云、图像等数据)投影到俯视平面上生成二维的鸟瞰图。这种将三维信息“压平”成二维表示的方式,为自动驾驶系统的环境感知和理解带来了重要优势:

  • 鸟瞰图提供了比直接的原始传感器数据更加直观和信息丰富的环境表示,可以更清晰地观察道路、车辆、行人、标志等元素的位置和关系,增强自动驾驶对复杂环境的感知能力
  • 全局的俯视视角更有利于路径规划和避障系统进行决策,根据道路和交通状况规划更合理稳定的路径
  • BEV模型可以将来自不同传感器的输入数据统一到一个共享表示中,为系统提供更加一致和全面的环境信息

这是BirdNet 3D 对象检测框架,网络的三个输出是:类别(绿色)、2d 边界框(蓝色)和偏航角(红色)。

但是,BEV模型也存在一些问题亟待解决:

  • 从原始三维数据生成BEV表示需要进行大量坐标变换和数据处理,增加了计算量和对硬件的要求
  • 信息损失问题,三维信息投影到二维时难免会损失一些细节,如遮挡关系等
  • 不同传感器到BEV坐标系的转换也需要进行复杂的标定和校准
  • 需要研究如何有效融合各种异构数据源,以生成更加准确和完整的BEV

3.5 Transformer+BEV

2020年以来, Transformer+BEV结合正在成为自动驾驶领域的重要共识,推动自动驾驶技术进入崭新发展阶段

将Transformer模型与BEV(鸟瞰视角)表示相结合的方法,正在成为自动驾驶领域的重要共识,推动完全自主驾驶的实现

  • 一方面,BEV可以高效表达自动驾驶系统周围的丰富空间信息
  • 另一方面,Transformer在处理序列数据和复杂上下文关系方面展现了独特优势,在自然语言处理等领域得到成功应用。两者结合可以充分利用BEV提供的环境空间信息,以及Transformer在多源异构数据建模方面的能力,实现更精确的环境感知、更长远的运动规划和更全局化的决策

特斯拉率先引入BEV+Tranformer大模型,与传统2D+CNN小模型相比,大模型的优势主要在于:

  • 1)提高感知能力:BEV将激光雷达、雷达和相机等多模态数据融合在同一平面上,可以提供全局视角并消除数据之间的遮挡和重叠问题,提高物体检测和跟踪的精度;
  • 2)提高泛化能力:Transformer模型提取特征函数,通过注意力机制寻找事物本身的内在关系,使智能驾驶学会总结归纳而不是机械式学习。主流车企及自动驾驶企业均已布局BEV+Transformer,大模型成为自动驾驶算法的主流趋势。

下面是Transformer+BEV的示例框图:

(a) 对象对齐时间融合:首先根据车辆自身的移动情况,把 当前时刻(t时刻)的鸟瞰视角地图变形调整成上一时刻(t-1 时刻)的样子。这样就可以根据对象在上一时刻的位置, 结合速度预测出它当前的位置,从而实现对象在不同时刻 地图上的融合。

(b) 对象聚焦多视图采样:首先在三维空间预设一些点,然后把这些点投影到图像上的特征上。这样不仅可以在整个高度范围采样,还可以对某些主要对象按照自适应和聚焦的方式,在它们所处的局部空间区域采样更多点。

(c) 对象通知查询增强:在编码器处理图像特征后,添加热图的监督信息。同时用检测到对象高置信度位置对应的点 来替换掉原本预设要查询的一些点。

下面是Transformer+BEV的示例框图2:

GPT的出现对Transformer+BEV模型的产生起到了重要影响

  • GPT的成功表明了Transformer模型的潜力,促使更多研究者将Transformer应用到计算机视觉和自动驾驶领域,产生了 Transformer+BEV的创新做法。
  • GPT的预训练思想为Transformer+BEV的预训练和迁移学习提供了借鉴,可以通过预训练捕捉语义信息,然后迁移应用。
  • OpenAI公开的代码和模型也加速了Transformer类模型在各领域的研究进程。

当前Transformer+BEV模型受关注,主要基于它综合了Transformer和BEV各自的优势

  1. Transformer擅长处理序列数据,捕捉语义信息;而BEV提供场景整体观,有利解析空间关系。两者组合可实现互补,增强 对复杂场景的理解表达
  2. 自动驾驶数据积累为训练大模型奠定基础。大数据支持学习更复杂特征,提升环境感知精度,也使端到端学习成为可能。
  3. 提升安全性和泛化能力仍是自动驾驶核心难题。目前阶段Transformer+BEV较好地结合语义理解和多视角建模,可处理相对 不常见、复杂或者挑战性的交通场景或环境,具有很大潜力

3.6 占用网络模型

2022年,自动驾驶系统中使用了占用网络模型,实现了对道路场景的高效建模

占用网络模型

  • 占用网络是特斯拉在2022年应用到自动驾驶感知的一种技术,相较于BEV可以更精准地还原自动驾驶汽车行驶周围3D环境,提升车辆的环境感知能力。
  • 占用网络包含两部分:一个编码器学习丰富语义特征,一个解码器可以生成三维场景表达。
  • 特斯拉使用车载摄像头采集的大量行车数据,训练占用网络模型。解码器部分能够复原和想象各种场景,增强异常情况下的感知棒性。
  • 占用网络技术使特斯拉可以充分利用非标注数据,有效补充标注数据集的不足。这对于提升自动驾驶安全性、减少交通事故具有重要意义。特斯拉正在持续改进该技术在自动驾驶系统中的集成应用。

特斯拉在2023年AI Day公开了occupancy network(占用网络)模型,基于学习进行三维重建,意图为更精准地还原自动驾 驶汽车行驶周围3D环境,可视作BEV视图的升华迭代

  • BEV+Transformer的不足:鸟瞰图为2D图像,会缺失一些空间高度信息,无法真实反映物体在3D空间的实际占用体积, 故而在BEV中更关心静止物体(如路沿、车道线等),而空间目标的识别(如物体3D结构)难以识别
  • 占用网络:现存三维表示方法(体素、网格、点云)在储存、结构和是否利于学习方面均不够完全理想,而占用网络基于学习将三维曲面表示为深度神经网络分类器的连续决策边界,可以在没有激光雷达提供点云数据的情况下对3D环境进行重建,且相较于激光雷达还可以更好地将感知到的3D几何信息与语义信息融合,得到更加准确的三维场景信息

华为ADS 2.0进一步升级GOD 网络,道路拓扑推理网络进一步增强,类似于特斯拉的占用网络。

  • GOD 2.0(通用障碍物检测网络, General Obstacle Detection)障碍物识别无上限,障碍物识别率达到99.9%;
  • RCR2.0能识别更多路,感知面积达到2.5个足球场,道路拓扑实时生成。
  • 2023年12月,搭载ADS 2.0的问界新M7可实现全国无高精地图的高阶智能驾驶。

对比BEV效果,下面BEV鸟瞰视图

下面是占用网络3D视图:

四、大模型对自动驾驶行业的赋能

4.1 自动驾驶的大模型

以GPT为代表的大模型通常包含亿级甚至百亿级参数,采用Transformer结构进行分布式训练,以提升模型能力。

GPT的成功激发了:自动驾驶研究者利用类似架构进行端到端学习,甚至涌现出专为自动驾驶设计的预训练模型。这些努力为自动驾驶行业带来新思路,大模型通过强大的数据分析和模式识别能力,增强了自动驾驶系统的安全性、效率和用户体验,实现了更准确的环境感知、 智能决策。

大模型的应用加速模型端的成熟,为L3/L4级别的自动驾驶技术落地提供了更加明确的预期

模型的成熟使得自动驾驶系统更加稳定和可靠,为商业化应用奠定了基础。随着深度学习和神经网络技术的迅速发展,模型在 感知、决策和控制等方面取得了显著进展,向着高效地处理大量传感器数据,准确识别交通标志、行人、车辆等、实现环境感 知的方向发展。此外,模型也能够辅助实时路径规划和决策制定,使车辆能够在复杂的交通环境中安全行驶。

大模型的应用为L3/L4级别的自动驾驶技术落地提供了更加明确的预期,尤其特斯拉在前沿技术领域的探索,正在成为实现L3/L4级别自动驾驶落地的风向标。特斯拉提出的Transformer+BEV+占用网络算法让车辆能够更精准地理解复杂的交通环境, 为L3/L4级别的自动驾驶系统提供更强的环境感知能力,从而在城市道路和高速公路等特定场景中更自信地行驶。

国内重要自动驾驶政策节选

安全性自动驾驶汽车实现商业化落地必不可少的重要因素

为保证自动驾驶系统的安全可靠,按照国家监管要求,自动驾驶车辆必须经过5000公里以上的封闭场地训练评估,且测试驾驶员须通过不少于50小时培训,并通过车辆安全技术检验后方可申请上路测试资格。目前我国智能网联汽车道路测试总里 程已超7000万公里,我们预计L3级及以上自动驾驶汽车开放个人使用上路试点区域仍需一定的时间才能实现

汽车通信安全和数据安全也需达到国标或相关条例要求。我们预计未来中国会参考欧美国家实践,进一步细化安全要求,加强相关法规制度建设,如制定自动驾驶汽车安全评估标准、明确自动驾驶系统开发生命周期各阶段的安全保障要求、建立自 动驾驶汽车事故责任认定机制等。

部分自动驾驶汽车安全标准:

4.2 车端赋能主要作用于感知和预测环节,逐渐向决策层渗透

大模型在自动驾驶中的应用简单来说,就是把整车采集到的数据回传到云端,通过云端部署的大模型,对数据进行相近的训练。 

大模型主要作用于自动驾驶的感知和预测环节。

  • 在感知层,可以利用Transformer模型对BEV数据进行特征提取,实现对障碍物的监测和定位;
  • 预测层基于感知模块的输出,利用Transformer模型捕捉学习交通参与者的运动模式和历史轨迹数据,预测他们未来行为和轨迹。

未来将驱动驾驶策略生成逐渐从规则驱动向数据驱动转变。规划决策层的驾驶策略的生成有两种方式:

1)基于数据驱动的深度学习算法;

2)基于规则驱动(出于安全考虑,目前普遍采取基于规则生成驾驶策略,但随着自动驾驶等级的提升及应用场景的不断拓展,基于规则 的规控算法存在较多Corner Case处理局限性)。

结合车辆动力学,可利用Transformer模型生成合适的驾驶策略:

将动态环境、路况信息、 车辆状态等数据整合到模型中,Transformer多头注意力机制有效平衡不同信息源之间的权重,以便快速在复杂环境中做出合理决策。

本文内容来自以下资料:

  1. AI+行业系列之智能驾驶:自动驾驶的“大模型”时代
  2. 智能汽车行业专题研究:大模型应用下自动驾驶赛道将有哪些变化
  3. 2023年行业大模型标准体系及能力架构研究报告
  4. 人工智能行业专题报告:多模态AI研究框架
  5. AI大时代系列报告之一(基础篇):大模型与算力共振,奇点时刻到来
  6. 等等......

#2023国内自动驾驶公司

1. tire1厂商,供应链企业

这部分公司的划分原则是tire1的供应链厂商,结合我个人了解到的技术积累情况。以上,难免有失偏颇,还请见谅!

持续布局企业

这部分企业是国内比较早开始从事自动驾驶方面研究的,并且在硬件和软件方面都取得了不错的进展。入职可以快速提高自身自动驾驶开发能力,另外跳槽的下家也会基于更高的工资上浮。
华为

入职理由:华为的技术研发能力毋庸置疑,虽然最近华为自动驾驶技术才被外界所知,但其实内部已经进行了很长时间的技术预研和储备。在硬件领域,华为比国内的所有企业都有很大的优势,也是目前国内最有希望实现国内自动驾驶技术软硬一体化解决方案的企业。目前华为对外释放的消息是要给企业提供自动驾驶解决方案的tire1厂商。

  • 曾用名:华为车BU
  • 入局时间:2015年底
  • 团队背景:2012实验室,秦通等。
  • 自动驾驶等级:L2,L3,L4
  • 代表产品:MDC,赛力斯,问界M5等。
  • 融资情况:无
  • 推荐评分:8.0

百度apollo

入职理由:魏则西事件后,很多网友喷百度没有底线,只会卖假药的营销公司。但其实百度在自动驾驶技术上的投资要早于绝大部分企业。百度的apollo技术开源也增加了国内技术开发者投身自动驾驶领域的热情。毫不夸张的说,百度堪比中国自动驾驶技术的黄埔军校。从百度走出很多大佬支撑这自动驾驶的未来。目前百度定位是tire1厂商,也和国内的整车/零部件企业有很多合作。

  • 曾用名:百度,apollo
  • 入局时间:2015年底
  • 团队背景:陆奇,余凯等前百度大佬。
  • 自动驾驶等级:L2,L3,L4
  • 代表产品:apollo,apollo lite, robotaxi(自动驾驶出租车)。
  • 融资情况:无
  • 推荐评分:8.0

小马智行

入职理由:pony.ai创立时间于2016年。前百度北美研发主任架构师彭军(Stanford PhD)和中国编程“楼教主”楼天城联合创立,二人分别担任小马智行的CEO和CTO。主要产品是PonyPilot+ ,提供的自动驾驶移动出行服务应用(Robotaxi)。与丰田、现代、一汽、广汽、博世等均有合作的tire1厂商。

  • 曾用名:小马智行,pony.ai
  • 入局时间:2016年底
  • 团队背景:楼教主,彭军。
  • 自动驾驶等级:L2,L3,L4
  • 代表产品:PonyPilot+ ,Robotaxi(自动驾驶出租车)和Robotruck(自动驾驶卡车)
  • 融资情况:C
  • 推荐评分:7.5

momenta

入职理由:在中国、德国、日本有全球业务,并已获得上汽集团、通用汽车、梅赛德斯-奔驰、丰田和博世的战略投资。目前定位为tire1厂商。研发能力很强,项目需求很旺。

  • 曾用名:魔门塔,初速度
  • 入局时间:2016年底
  • 团队背景:曹旭东,任少卿(离职)。
  • 自动驾驶等级:L2,L3,L4
  • 代表产品:Mpilot,MSD(Momenta Self Driving)自动驾驶解决方案,自由泊车
  • 融资情况:C+
  • 推荐评分:7.5

图森未来

入职理由:无人卡车,可商用的L4级别(SAE标准)无人驾驶卡车解决方案、高速场景及港口集装箱卡车的无人驾驶运输解决方案。目前已经上市,在自动驾驶的技术积累和创新上为业界做出了很多贡献。在北美路测均取得了很多进展。最近顶会也常常发paper和数据集。

  • 曾用名:图森未来
  • 入局时间:2015年
  • 团队背景:北美团队
  • 自动驾驶等级:L4无人驾驶卡车
  • 代表产品:无人卡车
  • 融资情况:纳斯达克上市
  • 推荐评分:7.5

2. 头部创业,潜力巨大

文远知行

入职理由:主要定位于实现L4级别的自动驾驶。于2017年12月将全球总部落户广州,目前在硅谷和广州都设立了研发中心,团队中70%-80%为来自于海内外知名大厂的优秀研发工程师。公司的愿景是成为中国第一、世界一流的智能出行公司。

  • 曾用名:文远知行,WeRide
  • 入局时间:2017年底
  • 团队背景:韩旭(Tony Han),前百度自动驾驶首席科学家
  • 自动驾驶等级:L4
  • 代表产品:Robotaxi,自由泊车
  • 融资情况:C,33亿美金
  • 推荐评分:7.5

autox

入职理由:同样是在北美测试榜的前十公司,获得上汽集团、东风汽车等整车厂的看好。AutoX布局全球八大地区城市,在深圳、北京、上海、广州等地设有五大研发中心,在常州设有无人车产线,在深圳、上海、广州、北京设有十大运营中心。目前除了提供自动驾驶服务意外,据传也在提供解决方案。

  • 曾用名:安途,autox
  • 入局时间:2016
  • 团队背景:Stanford顶级团队
  • 自动驾驶等级:L4
  • 代表产品:Robotaxi,AutoX Gen5
  • 融资情况:Pre-B
  • 推荐评分:7.5

元戎启行

入职理由:元戎启行是一家国际化的 L4级自动驾驶公司,聚焦自动驾驶出行和自动驾驶同城货运两大场景。于2021年9月获得获阿里巴巴领投 3 亿美元 B 轮融资;

核心团队有着丰富的研发和商业化经验,汇集了清华、北大、剑桥、哥伦比亚、 卡耐基梅隆等国内外名校的硕博士,以及曾供职于谷歌、微软、福特、英特尔、通用、Cruise、 百度、华为、腾讯等世界顶尖科技公司的精英。公司研发人员占比高达 80%,覆盖自动驾驶技术的各个模块;

在深圳、北京设有研发中心,和东风汽车、曹操出行、厦门远海码头等知名企业在全国多地开展自动驾驶相关合作,进行了大量的道路测试和试运营。运营车队已分别获得杭州、武汉、深圳等地的测试、试运营许可。自2019年2月成立以来,元戎启行在全国累计的安全路测里程已超过200万公里。

  • 曾用名:元戎启行
  • 入局时间:2019年2月
  • 团队背景:Stanford顶级团队
  • 自动驾驶等级:L4
  • 代表产品:Robotaxi,AutoX Gen5
  • 融资情况:B 轮,3 亿
  • 推荐评分:7.5

驭势科技

入职理由:世界领先智能驾驶企业,无人驾驶商业化领跑者。用人工智能和大数据重构人和物的交通,用无人驾驶解决十亿级别人群的交通和物流问题。驭势科技致力于打造未来的自动驾驶系统和全新的交通方式,我们深信人工智能将赋予交通工具智慧和灵性,让人类的出行更加便捷、安全和舒适。

  • 曾用名:驭势科技
  • 入局时间:2016年11月
  • 团队背景:吴甘沙,前英特尔中国研究院院长
  • 自动驾驶等级:L4
  • 代表产品:无人驾驶物流车,U-Drive智能驾驶系统
  • 融资情况:B 轮
  • 推荐评分:7.5

毫末智行

入职理由:长城汽车旗下自动驾驶公司+百度系。聚焦To C端乘用车高级别自动驾驶解决方案及To B端车规级无人物流小车。现有团队规模近200人,拥有保定和北京两个研发中心。其中来自清华、中科大、南开、中科院等国内985/211重点院校的占比超过25%。

  • 曾用名:毫末智行, HAOMO.AI
  • 入局时间:2019年11月
  • 团队背景:张凯,CEO, 长城汽车技术副总工程师。顾维灏,原百度智能汽车事业部总经理
  • 自动驾驶等级:L2~L4,其中,L2~L3级产品已商业化
  • 代表产品:无人驾驶物流车,U-Drive智能驾驶系统
  • 融资情况:A轮,10亿美元
  • 推荐评分:7.5

轻舟智航

入职理由:创于硅谷的全华人团队。基于大规模智能仿真系统、可自主学习决策规划框架和多传感器融合和时序融合方案等核心技术,轻舟智航推出了专注城市复杂交通场景的无人驾驶方案“Driven-by-QCraft。推出的首款无人驾驶小巴——龙舟ONE(又称轻舟无人小巴)已在苏州、深圳、武汉等多个城市落地,是国内布局城市最多的公开道路无人公交。

  • 曾用名:轻舟智航, QCraft
  • 入局时间:2019年5月
  • 团队背景:侯聪,曾就职于Waymo Perception Team
  • 自动驾驶等级:L4
  • 代表产品:龙舟ONE(又称轻舟无人小巴)
  • 融资情况:A+轮,1亿美元
  • 推荐评分:7.5

智行者(iDriverPlus)

入职理由:北京智行者科技有限公司,聚焦无人驾驶汽车的“大脑”研发,致力于成为多通用场景L4解决方案提供商。已获得厚安(厚朴/Arm)百度、顺为、京东等多家国内外知名机构的投资。智行者是业内同时具备开放L4技术能力及限定区域L4落地能力的无人驾驶企业。

公司已有员工400多人,核心团队均来自清华大学汽车系,技术能力业界顶尖,自研的无人驾驶车辆累计测试里程已超过两百万公里,位列国内无人驾驶初创企业前列。

  • 曾用名:智行者,iDriverPlus,智行者科技
  • 入局时间:2015年
  • 团队背景:清华系 | CEO张德兆;CTO 王肖,清华 PhD
  • 自动驾驶等级:L4级
  • 代表产品:robotaxi、robobus、无人驾驶清扫车、无人驾驶吸尘车、无人驾驶洗地车、无人驾驶巡逻等
  • 融资情况:C+轮 70亿
  • 推荐评分:7.2

纵目科技

入职理由:入局时间早,技术积累深厚,目前有很多已经可以落地的辅助驾驶产品。纵目科技在自动驾驶(AD)和高级驾驶辅助系统(ADAS)技术上都有所积累。当前业务涵盖智能驾驶系统、智能传感器和智慧城市产品、服务以及无线充电四大部分。是国内率先获得整车厂L4级别量产项目定点合同的自动驾驶企业之一,并与一汽红旗、长安汽车等多家国内主流主机厂商建立了量产合作关系。

  • 曾用名:纵目科技
  • 入局时间:2013年
  • 团队背景:--
  • 自动驾驶等级:L2,L3为主
  • 代表产品:环视ADAS,全景泊车系统、移动物体监测(MOD)还可叠加车道偏离预警(LDW)等
  • 融资情况:10亿元 E轮
  • 推荐评分:7.2

西井科技

入职理由:西井科技主要做码头集装箱物流。业务需求旺盛,业务已遍及海内外80余个节点。其重点产品WellOcean(人工智能智慧港口解决方案)、Qomolo(新能源无人驾驶商用解决方案),正在使全局化、多场景的AI应用组合创新变得更简单、快速和高效。

  • 曾用名:西井科技,WESTWELL
  • 入局时间:2015-05
  • 团队背景:---
  • 自动驾驶等级:L4(受限场景)
  • 代表产品:Q-Truck无人电动重卡
  • 融资情况:D+
  • 推荐评分:7.0

云骥智行

入职理由:云骥智行由全球知名的自动驾驶技术研发专家,在自动驾驶、车路协同、大数据等领域,具有深厚的技术积累和独到的行业洞见。致力于打造覆盖车、路、云的L4-L5级别自动驾驶通用平台解决方案,为干线物流、城市货运和乘用出行三大应用场景提供跨平台的体化解决方案。

云骥智行已在中国上海、深圳和美国硅谷等地设有研发中心,公司团队70%的人员在汽车领域深耕10年以上,硕博占比为80%。

  • 曾用名:云骥智行
  • 入局时间:021年11
  • 团队背景:前百度副总裁、Apollo平台研发总经理王京傲;小鹏/TESLA曹光植
  • 自动驾驶等级:L4-L5
  • 代表产品:--
  • 融资情况:数亿元天使轮
  • 推荐评分:7.1

禾多科技

入职理由:禾多科技成立于2017年6月,基于前沿人工智能技术和汽车工业技术,打造由本地数据驱动的自动驾驶量产解决方案。作为量产领先的自动驾驶公司,禾多科技具备从人工智能算法到嵌入式系统,从大数据闭环到系统迭代进化的完整布局,以行车和泊车两大场景为量产切入点,最终实现全场景的无人驾驶解决方案部署。

  • 曾用名:禾多科技
  • 入局时间:2017年6月
  • 团队背景:清华大学无人车团队
  • 自动驾驶等级:L4,L5
  • 代表产品:--
  • 融资情况:B轮数亿
  • 推荐评分:7.1

奥特酷

入职理由:AutoCore是Autoware基金会的创建者之一,同时也是基金会多个项目的主要贡献者之一。奥特酷比较低调, 没有进行大规模的宣传。据了解公司造血能力很强,盈利状态。主要领导都是技术大佬出身,对行业方向的把握精准。在南京的小伙伴可以尝试。此外AutoCore还与Arm等联手打造的开源平台OpenADKit。

  • 曾用名:奥特酷,autocore
  • 入局时间:2018年3月
  • 团队背景:Autoware开源技术贡献者
  • 自动驾驶等级:L2
  • 代表产品:os,Autoware
  • 融资情况:A轮,高瓴等
  • 推荐评分:7.1

赢彻科技

友道智图

酷哇机器人

3.技术大厂,后发优势

大疆

入职理由:大疆依靠在无人机领域积累的视觉、算法等经验,专强势进入自动驾驶领域,直指自动驾驶L3/4级别系统方案。大疆的技术研发和创新能力毋庸置疑。目前大疆在自动驾驶技术上的定位是作为一个tr1的企业。其外在自动驾驶硬件上,大疆也有很深的技术积累和布局。(大疆的公司文化和以前华为有点,踏踏实实搞技术,不太愿意搞 噱头)

  • 曾用名:大疆车载,大疆创新
  • 入局时间:2018
  • 团队背景:内部孵化
  • 自动驾驶等级:L2
  • 代表产品:智能驾驶D80\D80+、智能驾驶D130\D130+、智能泊车系统
  • 融资情况:--
  • 推荐评分:7.6

美团

入职理由:美团的无人驾驶应用场景主要是线下的无人配送。此外,美团也是一个拥有美团打车等服务的出行公司,不排除以后入局无人出租车领域。美团的无人送货车辆已经落地应用,但是还没有完全铺开,目前存在诸多的问题。此外在乘用车的无人驾驶方面,美团也在测试L4级别的应用。

  • 曾用名:美团
  • 入局时间:2016年
  • 团队背景:内部孵化
  • 自动驾驶等级:L4
  • 代表产品:无人配送车
  • 融资情况:--
  • 推荐评分:7.5

阿里巴巴

入职理由:阿里自身自动驾驶领域的积累较少,入局时间也比较晚。但是投资了很多自动驾驶公司。此外,近两年阿里的达摩院和菜鸟等旗下公司也慢慢开始了自己对自动技术的积累。主要的应用场景集中在物流车上。从公开的顶会论文上看,阿里在自动驾驶的研究上的布局取得了不错的进展。

  • 曾用名:阿里巴巴,达摩院,菜鸟
  • 入局时间:2020年
  • 团队背景:内部孵化,贾扬清(caffe主要贡献者)
  • 自动驾驶等级:L4
  • 代表产品:物流车,货车
  • 融资情况:--
  • 推荐评分:7.3

腾讯

入职理由:腾讯下面有很多优秀的实验室,包括优图,AI Lab等。他们的技术积累被用于自动驾驶上不会存在太多的障碍。此外,腾讯还有低调的自动驾驶实验室,目前整个自动驾驶实验室囊括了高精地图、融合定位、仿真平台、系统与架构、数据平台、核心算法等 6 大部门。腾讯应该是以车联网和云服务为抓手,搭建自己的自动驾驶平台。

  • 曾用名:腾讯,腾讯AI Lab,腾讯自动驾驶实验室
  • 入局时间:2016年9月
  • 团队背景:内部孵化
  • 自动驾驶等级:L4
  • 代表产品:--
  • 融资情况:已上市
  • 推荐评分:7.5

滴滴

入职理由:滴滴入局自动驾驶合情合理,入局时间也比较早。在自动驾驶方面,滴滴有很多优势,比如数据积累等。以前自动驾驶可以靠滴滴的其他业务和融资进行持续输血,现在已经拆分出独立的公司进行融资与发展。是否有影响,还是个未知数。以前滴滴的主要产品是Robotaxi,现在滴滴也进入了自动驾驶卡车(Robotruck)业务。

  • 曾用名:滴滴,
  • 入局时间:2016
  • 团队背景:内部孵化
  • 自动驾驶等级:L4
  • 代表产品:Robotaxi
  • 融资情况:已上市,快退市了(速度太快)
  • 推荐评分:7.3

小米汽车

小米从宣布开始造车以来投入了很多资源,小米汽车未来在产品一定会吸引很多的年轻消费者,但是自动驾驶还需要足够多的时间沉淀。

小米自动驾驶吸引了很多有经验的从业人员,会少走不少的弯路。产品定位更多的是在L2,L3附近的高级辅助驾驶功能。除了自动驾驶,小米在智能座舱方面也有很大的需求。智能座舱和自动驾驶相比,安全性要求会比较低,部署和落地更快一点,无论是自动驾驶还是智能座舱,对于算法工程师来说都是个不错的选择。

  • 曾用名:小米,小米汽车
  • 入局时间:2018
  • 团队背景:内部孵化
  • 自动驾驶等级:L2,L3,L4
  • 代表产品:--
  • 融资情况:已上市
  • 推荐评分:7.4

4. 整车企业,全栈自研

小鹏

入职理由:小鹏汽车大家都很熟知了,从开始切入新能源汽车后就大力投入到自动驾驶技术的研发,在国内主机厂中,自动驾驶研发和应用落地无出其右。在某些方面自动驾驶的用户体验比特斯拉还有优秀。无论应届生还是社会青年劳动力都会让你有很大的收获。目前在L2, L3方面的车辆已经量产,L4级别的自动驾驶技术也在积极研发

小鹏汽车于2014年中建立研发团队,2015年1月在广州正式注册成立,目前拥有员工近万人,是中国领先的智能电动汽车设计及制造商,也是融合前沿互联网和人工智能创新的科技公司。致力于通过数据驱动智能电动汽车的变革,引领未来出行方式。小鹏汽车于2020年8月27日登陆纽交所上市,2021年7月7日登陆港交所上市。截至2021年6月30日,小鹏汽车在广州、北京、上海、深圳、硅谷、圣地亚哥、肇庆、郑州等地设有研发生产中心,其中肇庆小鹏汽车智能网联科技产业园已取得生产资质并投产,销售网络覆盖全国105座城市及欧洲挪威,实现了生产、研发及销售全球化布局,2021年累计交付量达到30738台,已超去年全年交付量。

  • 曾用名:小鹏 xpen
  • 入局时间:2014
  • 团队背景:前期特斯拉
  • 自动驾驶等级:L2, L3,L4
  • 代表产品:p7
  • 融资情况:已上市
  • 推荐评分:7.6

蔚来

入职理由:蔚来相信大家已经很熟悉了。2016年之前,蔚来被很多人质疑,但是乘着新能源汽车的东风,蔚来迅速扩张。蔚来在自动驾驶领域的技术积累并不深厚,也就是从近年开始,蔚来才逐步加大自动驾驶技术自主研发的投入。目前已经有业内的多位大佬入职。比如,任少卿,曾就职与momenta,也是faster rcnn的一作。从入职的同学处获得反馈,整体研发路线和规划已经走在了行业的前列。在接下来的量产车上,蔚来可能会用上自己开发的自动驾驶系统。

  • 曾用名:蔚来,NIO
  • 入局时间:2014年11月成立
  • 团队背景:任少卿
  • 自动驾驶等级:L2,L3
  • 代表产品:ES6,ES8,ET5等(自动驾驶技术非自研)
  • 融资情况:已上市
  • 推荐评分:7.5

理想

入职理由:相比较小鹏和蔚来,理想汽车要显得更加低调。而且定位上和小鹏等有所区别,主打家用舒适,并不强调智能,这造成了理想初期在自动驾驶上的研发投入不够,技术水平拉跨,自动驾驶产品频繁延期等问题。现在理想和蔚来一样,在自动驾驶方面正在加大投入的力度。目前自研情况良好,和地平线等企业存在业务上的合作。整体研发氛围轻松,但是节奏很快。后面也许会和地平线一起发布自己的自动驾驶量产产品。

  • 曾用名:理想,NIO
  • 入局时间:2015年7月
  • 团队背景:--
  • 自动驾驶等级:L2,L3
  • 代表产品:理想ONE(自动驾驶技术非自研)
  • 融资情况:已上市
  • 推荐评分:7.5

中汽创智

入职理由:很多同事跳槽了中汽创智,所以对这家公司还算熟悉。属于传统车企强强联合造就的新势力造车企业。公司的定位和技术前瞻性要强于现在的的传统车企。主要是为了智能化出行的愿景,以此挖了很多业界的大佬和高级技术人员,很多都是北美自动驾驶技术的高级人才。公司虽然成立三年不到,但是业务已经涵盖了L2,L3,L4等级的自动驾驶业务,目前车辆在进行路测,但离正真的量产还有一段距离。技术上除了自研,也和地平线存在业务往来,主要是在自动驾驶技术的研发上。

中汽创智科技有限公司由中国一汽、长安汽车、东风公司、兵器装备集团、和南京江宁经开科技共同出资160亿元设立。公司聚焦智能电动底盘、氢燃料动力、智能网联三大业务领域。开展IBC集成制动系统、氢燃料动力系统、驾驶中央计算平台,下一代感知系统、人车路云信息聚合平台、固态动力电池、下一代智能座舱域控制器及信息安全等项目,力争三年实现行业领先。

  • 曾用名:中汽创智
  • 入局时间:2020年6月
  • 团队背景:---
  • 自动驾驶等级:L2, L3,L4
  • 代表产品:--
  • 融资情况:国资委控股
  • 推荐评分:7.4

上汽

入职理由:上汽的历史悠久,典型的主机厂做派。但是在所有传统主机厂中,我觉得上汽在自动驾驶业务上投入精力和时间都是独一份的。自动驾驶业务,上汽一直在持续的投入,无论是自研还是拉供应链一起都做了不少的工作,我的上一家公司在自动驾驶业务的开发上,上汽就出了不少力(钱)。我的很多同学在毕业后入职的第一家公司也有在上汽的,但是无奈,后来都因种种原因离职了。或许这也是上汽存在的问题,他们早就觉得要加大自动驾驶的投入,但是航母掉头需要的时间太长了,而且容易翻车。这种情况希望能慢慢的改变。

  • 曾用名:上海汽车,上汽
  • 入局时间:2007-07
  • 团队背景:---
  • 自动驾驶等级:L2, L3,L4
  • 代表产品:××(无自研的自动驾驶系统落地)
  • 融资情况:--
  • 推荐评分:7.3

华人运通

入职理由:华人运通大家可能有点陌生,说高合汽车大家应该就明白了。华人运通开发的高合HiPhi X有幸体验过一次。也尝试开启了自动/辅助驾驶功能,当我看到屏幕上闪烁的车辆行人等障碍物时,我明白了这家公司的伟大。和蔚来,比亚迪不一样,高合应该是要走自研自动驾驶技术的路了,而且更加坚定,只不过,技术积累还有待进一步提高。如果你是有技术积累的话,华人运通是个不错的选项,你的思想或者工作会有落地的可能。另外。据华人运通的同学反馈,研发氛围不错,和传统主机厂明显不同。

  • 曾用名:华人运通,高合
  • 入局时间:2019-02
  • 团队背景:---
  • 自动驾驶等级:L2, L3
  • 代表产品:高合HiPhi X
  • 融资情况:--
  • 推荐评分:7.2

哪吒

入职理由:合众汽车最近发布了很多性价比很高的产品,但是自动及时技术并未及时跟上。最近这两年也在加大自动驾驶的投入力度。

  • 曾用名:合众汽车,哪吒汽车
  • 入局时间:2014年10月
  • 团队背景:---
  • 自动驾驶等级:L2, L3
  • 代表产品:哪吒
  • 融资情况:--
  • 推荐评分:7.1

三一重工

入职理由:前段时间找机会,很荣幸参加了三一重工的面试,面试情况个人感觉挺好。

和其他乘用车市场不一样,三一主要关注于工业用的特种车辆,包括无人矿车,物流车等等。了解下来,三一给我的感觉是比较踏实,技术路线清晰,且和leader交流觉得很愉快。

相比较乘用车,特征车辆工况比较简单,没有复杂的交通博弈。此外,也没有量产控制成本的压力。因此,可以上目前比较成熟的基于激光雷达的L4自动驾驶方案。

三一目前,应该已经有车辆在矿区测试。目前在招人的是深圳的一个部门,是三一孵化的内部企业--海星智驾,未来有单独上市的可能。

  • 曾用名:三一重工,海星智驾
  • 入局时间:1994年10月
  • 团队背景:--
  • 自动驾驶等级:L4
  • 代表产品:无人矿卡
  • 融资情况:已上市
  • 推荐评分:7.7

5. 零部件企业,自研部分技术

常见的自动驾驶硬件包括计算芯片,光学摄像头,激光雷达,毫米波雷达等。这类企业在发展自身业务的同时也在积累自动驾驶技术。一方面可以提高产品的毛利率,另外也可以提高产品的核心竞争力。

对于求职者来说,零部件企业更关注某些特定领域的知识积累。比如地平线的面试中可能要考察计算加速、前向推理部署等问题。在准备面试的时候要有所针对。

地平线

入职Tips:地平线刚开始的定位是一家人工智能芯片公司,公司的创始人余凯来自百度。在那个风起云涌的人工智能创业时代,地平线的发展可谓高开低走。站在2022年这个时间点上来看,大规模量产的芯片也较少。早期地平线为了给自己的芯片增加更多的应用场景,慢慢的开始在芯片上集成人脸相关的应用,诸如DMS等系统,后来也遇到了一些困难。

在19年末的时候进行了一次大裁员,尤其是南京这边的研究院裁撤比例较大。借着自动驾驶的浪潮,投入了自动驾驶芯片和算法的研发。目前看来,有部分新势力车企已经把地平线的自动驾驶芯片安排上了(比如零度等)。但是实话实话,和英伟达的芯片和算法相比还有很大的差距。量产上路的效果目前还没有太多的反馈。

依托行业领先的软硬结合产品,地平线向行业客户提供“芯片 + 算法 + 云”的完整解决方案。在智能驾驶领域,地平线同全球四大汽车市场(美国、德国、日本和中国)的业务联系不断加深,目前已赋能合作伙伴包括奥迪、博世、长安、比亚迪、上汽 、广汽等国内外的顶级 Tier1s ,OEMs 厂商;而在 AIoT 领域,地平线携手合作伙伴已赋能多个国家级开发区、国内一线制造企业、现代购物中心及知名品牌店

  • 曾用名:地平线
  • 入局时间:2017
  • 团队背景:百度余凯
  • 自动驾驶等级:L2,L3, L4, L5
  • 代表产品:征程3,征程5
  • 融资情况:C 轮
  • 推荐评分:8.2

禾赛

入职Tips:禾赛虽然是一家专注激光雷达研发的企业,但是在自动驾驶领域也在进行技术积累。在自动驾驶现有的算法体系中,基于激光雷达的环境感知是实现L4的必由之路。禾赛目前的激光雷达以成本和稳定性等优势逐渐进入整车企业的供应链中。完善自己的软件,形成软硬一体的产品,会进一步拓宽盈利空间,另外也会增加产品的竞争力。目前禾赛在辅助驾驶和自动驾驶上都有涉及,在辅助驾驶中更多是要突出固态激光雷达的成本优势。而在L4级别的自动驾驶上,更多的应该是发挥机械激光雷达的感知优势。

  • 曾用名:禾赛,hesai
  • 入局时间:2014
  • 团队背景:内部孵化
  • 自动驾驶等级:L2,L3,L4,L5
  • 代表产品:激光雷达,固态激光雷达,机械激光雷达
  • 融资情况:D+ 轮
  • 推荐评分:7.6

四维图新

入职Tips:四维图新是中国导航地图产业的开拓者。高精地图对自动驾驶的重要性不言而喻,目前国内的TOP3之一就有四维图新,高精地图的产业涉及面也非常的广,无论采集,标注,使用都还没有形成通用的标准。是自动驾驶细分技术领域的朝阳产业。

目前四维图新已成为导航地图、导航软件、动态交通信息、位置大数据、以及乘用车和商用车定制化车联网解决方案领域的领导者。如今,四维图新以全面的技术发展战略迎接汽车“新四化”时代的来临,致力于以高精度地图、高精度定位、云服务平台、以及应用于ADAS和自动驾驶的车规级芯片等核心业务。

  • 曾用名:四维图新
  • 入局时间:2002年
  • 团队背景:内部孵化
  • 自动驾驶等级:L4,L5
  • 代表产品:--
  • 融资情况:B轮数亿
  • 推荐评分:7.6

寒武纪(自动驾驶芯片)

入职Tips:寒武纪在芯片领域有十余年的积累,目前也在涉足自动驾驶领域。我想初衷和地平线类似,都想给自己的芯片找一个应用的出口,而火热的自动驾驶恰恰满足了这个要求。但是进入时间稍晚,目前芯片也还没有量产,自动驾驶软件还没有路测的相关新闻。

公司的使命是打造各类智能云服务器、智能终端以及智能机器人的核心处理器芯片,让机器更好地理解和服务人类。公司创始人、执行官陈天石博士,在处理器架构和人工智能领域深耕十余年,是国内外学术界享有盛誉的杰出青年科学家,曾获国家自然科学基金委员会“优青”、CCF-Intel青年学者奖、中国计算机学会优秀博士论文奖等荣誉。公司骨干成员均毕业于国内外名校,具有丰富的芯片设计开发经验和人工智能研究经验,从事相关领域研发的平均时间达九年以上。公司在2016年推出的“寒武纪 1A”处理器是世界终端人工智能专用处理器,已应用于数千万智能手机中,入选了第三届世界互联网大会评选的十五项“世界互联网科技成果”。公司在2018年推出的MLU100机器学习处理器芯片,运行主流智能算法时性能功耗比全面超越CPU和GPU。目前,寒武纪已与智能产业的各大上下游企业建立了良好的合作关系。

  • 曾用名:寒武纪
  • 入局时间:2020
  • 团队背景:内部孵化
  • 自动驾驶等级:L2
  • 代表产品:SD5223(年中)
  • 融资情况:已上市
  • 推荐评分:7.6

欧菲车联

入职Tips:欧菲车联在自动驾驶领域主要的硬件产品是摄像头,此外在激光雷达等传感器硬件上也有所布局。从主营业务出发,欧菲车联也在进行感知算法等自动驾驶模块的开发和研究。

  • 曾用名:欧菲车联,欧菲智联,欧菲智
  • 入局时间:2015
  • 团队背景:内部孵化
  • 自动驾驶等级:L2
  • 代表产品:SD5223(年中)
  • 融资情况:已上市
  • 推荐评分:7.6

速腾聚创

入职Tips:主要业务是激光雷达,包括固态激光雷达和机械机关雷达。产品已经进入了很多车场的供应体系。目前,除了自动驾驶感知的硬件,也在积极的部署自动驾驶相关的软件。

(速腾聚创)是全球领先的智能激光雷达系统(Smart LiDAR Sensor System)科技企业。RoboSense通过激光雷达硬件、AI算法与芯片三大核心技术闭环,为市场提供具有信息理解能力的智能激光雷达系统,颠覆传统激光雷达硬件纯信息收集的定义,赋予机器人和车辆超越人类眼睛的感知能力,守护智能驾驶的安全。

RoboSense总部位于深圳,在北京、上海、苏州、斯图加特(德国)和硅谷(美国)等地设有分支机构。RoboSense在全球拥有500+名员工,来自全球顶尖企业和科研机构的人才团队,为RoboSense提供源源不断的创新能力。截止2021年,RoboSense获得超过500项专利。

  • 曾用名:RoboSense,速腾聚创
  • 入局时间:2015
  • 团队背景:内部孵化
  • 自动驾驶等级:L2
  • 代表产品:固态、机械激光雷达
  • 融资情况:D
  • 推荐评分:7.6

6. 研究机构

上海人工智能实验室

入职Tips:上海人工智能实验室是国内为数不多的研究性实验室。最近这两年,在自动驾驶领域,产出了很多优秀的论文和算法。促进了中国本土自动驾驶技术的研究。研发能力非常强大。

上海人工智能实验室是我国人工智能领域的新型科研机构,于2020年7月在世界人工智能大会正式揭牌。实验室开展战略性、原创性、前瞻性的科学研究与技术攻关,突破人工智能的重要基础理论和关键核心技术,打造"突破型、引领型、平台型"一体化的大型综合性研究基地,支撑我国人工智能产业实现跨越式发展,目标建成国际一流的人工智能实验室,成为享誉全球的人工智能原创理论和技术的策源地。实验室牵头科学家团队由汤晓鸥、姚期智、陈杰等人工智能领域全球顶尖学者组成。

  • 曾用名:上海人工智能实验室
  • 入局时间:2020
  • 团队背景:汤晓鸥、姚期智、陈杰等巨佬
  • 自动驾驶等级:L2,L3,L4,L5
  • 代表产品:
  • 融资情况:D
  • 推荐评分:7.6

#自动驾驶标定技术

最近有朋友问到是否用overlay标定完后数据就直接在Flash中,其实不然,是需要关闭overlay然后通过XCP Program指令集或者UDS刷进Flash。

从这里看出,之前文章对于标定的描述还是不够细致,导致出现了误会,因此这里再详细分析一下标定的概念。如有错误,请大家指正。

我们知道,标定参数(即Parameter)实际上对于ECU的控制算法来说是一个常数,最简单的例子,油门踏板开度影响喷油量,假设算法为y= ax+b。要在某个固定踏板开度(x)达到我们预期喷油量(y),要反复调整的只能是常数a和b。

因此,所谓参数的标定,就是通过技术手段保证在ECU的开发阶段能够调整paremeter的值。那么我们就来看看有哪些技术手段可以实现参数的调整。

Flash中的标定参数

我们在开发的时候,对于常数其实会用修饰符进行限定的,如下:

​const uint32 Parameter_A = 1;​

在进行编译链接之后,编译器会把这个Parameter_A分配到Flash的区间(链接文件里的ROM段)并给定一个地址(通过Map文件可以查找),同时也从编译出来的hex的地址去找到这个值 1,如下图所示:

那么要修改这些参数,应该怎么办呢?有两个办法:

  1. 通过在源码中修改常数值,重新进行编译,然后刷进ECU里。这样很麻烦,遇到稍微大一点的工程,编译都得十几二十分钟,很显然这种方法是不符合现在的开发流程的。
  2. 通过FlashDriver对存放Paremeter_A的Flash空间进行重编程,这种方式比上述重新编译要好一点,但是还是实时性不够,并且目前的FLash特性是没有办法按照Byte进行擦除的,意味着要修改一个标定参数就必须擦掉整个Sector,重新刷写所有的标定参数,这显然是不可接受的。当然,如果ECU外挂的EEPROM,那么就不会存在这个问题了,但是访问速度和相应的开发成本也是阻碍参数的实时标定。

另外,还需要提一点的就是,如果编译器优化等级开的比较高,作为常量的Parameter_A有可能会被优化,直接作为一个数值出现嵌入到代码中,而不会出现在map文件里。因此我们在定义标定参数这种类型常量时,通常会按照如下定义:

​volatile const uint32 Parameter_A = 1;​

volatile可以有效防止被编译器优化 ;

此外,为了方便管理和能迅速定位到标定参数,我们通常也会在链接文件里定义一块单独的空间,在代码里使用#pragma把参数放到该空间里,如下:

​#pragma section "Cal_Flash"
const uint32 Parameter_A = 1;​

这里我们简单讲了标定参数只在Flash里的时候应该如何修改,实际上这种方式并不能支持我们在ECU运行过程中动态修改

所以,我们能不能想个办法把这些参数搬到一段RAM中,在RAM里实时修改,修改完成后再把标好的参数重新刷进Flash。

显然这个想法是成立的。

RAM中的标定参数

我们定义一个带初值的变量,如下图:

​uint32 ​​​​Parameter_A ​​​​= 1;​

编译器会给这个参数分配RAM空间地址,并且初值存放在Flash中。我做过一个试验,用英飞凌TC2xx系列,在不修改链接文件的情况下,编译器给标定参数分配一个RAM地址,但实际上存在Flash里,如下图:

这是怎么实现的呢?我们查看链接文件关于.data段的定义: 

这行代码的含义就是加载运行在RAM(DSPR),但是初值存放在PFlash,上电时启动代码会将Flash中的值拷贝到RAM里。

控制算法去获取Parameter_A的值也是从RAM去拿值的,所以这种情况我们就可以在ECU运行过程中动态修改标定参数的值。

这个时候还不是完全体,通常我习惯是拿出一段单独的Flash空间方便标定数据的管理,借鉴上面链接文件的修改,就可以在RAM和Flash单独定义一块空间专门给标定使用,因此在链接文件里有了如下定义:

#pragma section "calDataOvc"

​const uint32 ​​​​Parameter_A ​​​​= 1;​

但是这样又有一个问题,因为标定数据的地址是RAM地址,那么使用标定上位机导出的标定数据hex文件还是RAM的空间。

这个时候我们想要把标定数据刷到Flash,还需要对hex文件做一个地址的偏移,最后通过UDS或者XCP自带编程指令集进行刷写。

这也比较麻烦,所以英飞凌、NXP均针对这个问题实现了memory overlay的功能。

AUTOSAR基于指针标定概念

在AUTOSAR RTE的SWS里,明确提出来标定和测量功能的支持,如下图:

在XCP文档里提出来基于指针标定的概念,其具体实现形式如下:

标定参数的访问地址和数据大小在启动阶段被收集到Pointer Table,最开始均是该Table中收集到的均是参数的Flash地址,并且通过软件给Flash里的参数分配RAM地址,但是此时RAM还是没有内容填充的。

注意,这个时候A2L文件里面标定量的地址为Flash地址,当它下发一个download命令后,在XCP Slave这一层首先会检查当前处于WP还是RP,如果是WP,那么此时就Pointer Table就选择使用该标定量对应的RAM地址(对用户不可见),然后进行填充,此时算法获取标定量就通过RAM,从而实现了标定动态修改参数的功能,如下:

这个方案的提出就是为了解决某些标定软件在A2L文件里只识别Flash地址的参数,但是确定很明显:多了一个Pointer Table增加了RAM消耗,同时为了防止内存泄露,本身装标定量的RAM空间也是需要空出来的。

目前,我还没有使用过这种方式。

小结

本文主要梳理了标定的概念,目前使用的比较多的还是基于RAM的标定,同时只要芯片支持overlay(Flash emulation),上位机可以直接使用标定参数的flash地址,在MCU内部硬件自动进行地址重映射,需要注意的是,即使使用Overlay功能,标定参数的修改始终针对是RAM里的值,如果想要固化到Flash里面,有两种方式:

  1. 上位机通过XCP 编程指令集进行刷写,ECU端需要关闭Overlay,保证访问的是Flash。CANape方便一点,INCA的话还需要自制ProF文件
  2. 通过上位机将标定数据导出为Hex,通过UDS直接刷写进Flash。

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

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

相关文章

【paddle】常见的数学运算

根据提供的 PaddlePaddle 函数列表,我们可以将它们按照数学运算、逻辑运算、三角函数、特殊函数、统计函数、张量操作和其他操作等类型进行分类。以下是根据函数功能进行的分类: 取整运算 Rounding functions 代码描述round(x)距离 x 最近的整数floor(…

绘制音频信号的各种频谱图,包括Mel频谱图、STFT频谱图等。它不仅能够绘制频谱图librosa.display.specshow

librosa.display.specshow 是一个非常方便的函数,用于绘制音频信号的各种频谱图,包括Mel频谱图、STFT频谱图等。它不仅能够绘制频谱图,还能自动设置轴标签和刻度,使得生成的图像更加直观和易于理解。 ### 函数签名 python libros…

DDR DFI 5.2 协议接口学习梳理笔记01

备注:本文新增对各种时钟含义做了明确定义区分,避免大家产生误解,这也是5.2版本新引入的。 1. 前言 截止2025年5月,DFI协议最新版本为 5.2,我们首先看一下过去几代的演进: DFI全称DDR PHY Interface,是一种接口协议,定义了 Controller 和 PHY 之间接口的信号、时序以…

windows篡改脚本提醒

✅ 功能简介 该监控系统具备如下主要功能: 📁 目录监控 实时监听指定主目录及其所有子目录内文件的变动情况。 🔒 文件哈希校验 对文件内容生成 SHA256 哈希,确保变更检测基于内容而非时间戳。 🚫 排除机制 支…

文章记单词 | 第102篇(六级)

一,单词释义 apologize /əˈpɒlədʒaɪz/ v. 道歉;认错discharge /dɪsˈtʃɑːrdʒ/ v./n. 排出;释放;解雇; dischargequiver /ˈkwɪvər/ v./n. 颤抖;抖动;箭筒plantation /plnˈteɪʃ…

【DCGMI专题1】---DCGMI 在 Ubuntu 22.04 上的深度安装指南与原理分析(含架构图解)

目录 一、DCGMI 概述与应用场景 二、Ubuntu 22.04 系统准备 2.1 系统要求 2.2 环境清理(可选) 三、DCGMI 安装步骤(详细图解) 3.1 安装流程总览 3.2 分步操作指南 3.2.1 系统更新与依赖安装 3.2.2 添加 NVIDIA 官方仓库 3.2.3 安装数据中心驱动与 DCGM 3.2.4 服务…

主成分分析(PCA)法例题——给定协方差矩阵

已知样本集合的协方差矩阵为 C x 1 10 [ 3 1 1 1 3 − 1 1 − 1 3 ] {\bm C}_x \frac{1}{10} \begin{bmatrix} 3 & 1 & 1 \\ 1 & 3 & -1 \\ 1 & -1 & 3 \end{bmatrix} Cx​101​ ​311​13−1​1−13​ ​ 使用PCA方法将样本向量降到二维 。 求解 计…

uni-app(4):js语法、css语法

1 js语法 uni-app的js API由标准ECMAScript的js API 和 uni 扩展 API 这两部分组成。标准ECMAScript的js仅是最基础的js。浏览器基于它扩展了window、document、navigator等对象。小程序也基于标准js扩展了各种wx.xx、my.xx、swan.xx的API。node也扩展了fs等模块。uni-app基于E…

Idea 配合 devtools 依赖 实现热部署

核心依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency> yaml配置 spring: #…

leetcode513.找树左下角的值:递归深度优先搜索中的最左节点追踪之道

一、题目本质与核心诉求解析 在二叉树算法问题中&#xff0c;"找树左下角的值"是一个典型的结合深度与位置判断的问题。题目要求我们找到二叉树中最深层最左边的节点值&#xff0c;这里的"左下角"有两个关键限定&#xff1a; 深度优先&#xff1a;必须是…

Python入门手册:Python基础语法

Python是一种简洁、易读且功能强大的编程语言&#xff0c;非常适合初学者入门。无论你是编程新手&#xff0c;还是有一定编程基础但想学习Python的开发者&#xff0c;掌握Python的基础语法都是迈向高效编程的第一步。本文将详细介绍Python的基本语法&#xff0c;包括变量和数据…

postgresql 常用参数配置

#01 - Connection-Authentication 优化点&#xff1a; listen_addresses 0.0.0.0 建议&#xff1a;生产环境应限制为具体IP&#xff08;如 192.168.1.0/24,127.0.0.1&#xff09;&#xff0c;避免暴露到公网。 ssl off 建议&#xff1a;启用SSL&#xff08;ssl on&#xf…

POI模板生成EXCEL 64000 style in a .xlsx Workbook

业务场景&#xff1a; 项目需要生成多个EXCEL表格&#xff0c;每个表格根据数据列表的大小动态增加Excel的行数&#xff0c;要保证新插入行的样式与模板完全一致 考虑使用以下方法保证样式的统一 cloneStyleFrom(templateStyle); 但是由于数据量比较大&#xff0c;抛出如下的…

HJ106 字符逆序【牛客网】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 HJ106 字符逆序 一、题目描述 二、测试用例 三、解题思路 基本思路&#xff1a;   考虑到可能会有多个空格&#xff0c;使用使用 getline 函数直接读取一行。   如果可以直接打印的…

CI/CD的演进之路

CI/CD的演进之路 一、CI/CD的成长演变 早期起源与初步实践&#xff1a;CI/CD的概念可以追溯到软件开发的早期阶段&#xff0c;但真正开始受到关注是在敏捷开发方法兴起之后。在传统的瀑布模型开发模式下&#xff0c;软件开发周期长、发布频率低&#xff0c;更新往往需要数月甚…

制作一款打飞机游戏55:扩散

子弹模式 ‌疯狂的子弹地狱‌&#xff1a; 嘿&#xff0c;伙计们&#xff0c;今天我们要创造一些令人印象深刻的子弹模式。这就是所谓的“子弹地狱”&#xff01; ‌问题与挑战‌&#xff1a; 在之前的开发中&#xff0c;我们遇到了一些问题。特别是关于如何处理子弹的角度问题…

Vortex GPGPU的github流程跑通与功能模块波形探索(三)

文章目录 前言一、./build/ci下的文件结构二、基于驱动进行仿真过程牵扯的文件2.1 blackbox.sh文件2.2 demo文件2.3 额外牵扯到的ramulator2.3.1 ramulator简单介绍2.3.2 ramulator使用方法2.3.3 ramulator的输出2.3.4 ramulator的复现2.3.4.1 调试与验证&#xff08;第 4.1 节…

公有云AWS基础架构与核心服务:从概念到实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 (初学者技术专栏) 一、基础概念 定义:AWS(Amazon Web Services)是亚马逊提供的云计算服务,包含计算、存储、网络、数据库等核心能力,通过全球数据中心为用户提供灵活…

wsl2 不能联网

wsl2 安装后用 wifi 共享是能联网&#xff0c;问题出在公司网络限制 wsl2 IP 访问网络&#xff0c;但是主机可以上网。 解决办法&#xff0c;在主机用 nginx 设置代理&#xff0c;可能需要开端口权限 server {listen 9000;server_name localhost;location /ubuntu/ {#…

HarmonyOS鸿蒙应用规格开发指南

在鸿蒙生态系统中&#xff0c;应用规格是确保应用符合系统要求的基础。本文将深入探讨鸿蒙应用的规格开发实践&#xff0c;帮助开发者打造符合规范的应用。 应用包结构规范 1. 基本配置要求 包结构规范 符合规范的应用包结构正确的HAP配置文件完整的应用信息 示例配置&…