专栏名称: 新机器视觉
最前沿的机器视觉与计算机视觉技术
目录
相关文章推荐
新浪科技  ·  【即日起,#暴雪国服登录需绑定网易账号#】# ... ·  23 小时前  
虎嗅APP  ·  全国的大城市,都在为错过DeepSeek彻夜难眠 ·  23 小时前  
福建知识产权  ·  2025年2月公益讲座计划:“专利商标代理政 ... ·  2 天前  
InfoQ  ·  2025 年将成 Python 主导 AI ... ·  2 天前  
知产库  ·  哪吒汽车vs魔童哪吒无效宣告裁定书 ·  3 天前  
51好读  ›  专栏  ›  新机器视觉

端到端自动驾驶系统研究综述

新机器视觉  · 公众号  ·  · 2024-12-21 20:57

正文

作者:陈妍妍,田大新,林椿眄等

来源:《中国图象图形学报》

编辑:陈萍萍的公主@一点人工一点智能

原文:https://www.cjig.cn/zh/article/doi/10.11834/jig.230787/


摘要 :近年深度学习技术助力端到端自动驾驶框架的发展和进步,涌现出一系列创新研究议题与应用部署方案。
本文首先以经典的模块化系统切入,对自动驾驶感知—预测—规划—决策4大功能模块进行简要概述,分析传统的模块化和多任务方法的局限性。
其次从输入—输出模态到系统架构角度对当前新兴的端到端自动驾驶框架进行广泛地调研,详细描述弱解释性端到端与模块化联合端到端两大主流范式,深入探究现有研究工作存在的不足和弊端。
之后简单介绍了端到端自动驾驶系统的开环—闭环评估方法及适用场景。
最后总结了端到端自动驾驶系统的研究工作,并从数据挖掘和架构设计角度展望领域潜在挑战和亟待解决的关键问题。
引言
随着人工智能与传感器等前沿技术的逐渐成熟,面向城市交通场景的智能辅助驾驶系统正在加速落地应用,以更高的舒适性和安全性实现了车辆的部分自主运行。然而,无需人工干预、全部自动化的高级别自动驾驶系统还远未满足实际应用落地需求,面临着世界性的安全问题。现有的自动驾驶系统主要可以分为以下三大技术范式:模块化系统架构、多任务学习架构和端到端系统架构。
基于“分而治之”设计理念(Tampuu等,2022)的经典模块化系统架构将感知、预测、规划和控制等任务分别解耦成独立的子模块,并按照顺序将上一阶段输出依次接入开发的软件系统中。由于兼具了可调试性、可验证性及可重用性,模块化方法受到了学术界和工业界的广泛探索,通过对每个模块开展独立研发和功能性测试,显著降低了模型的开发难度,并使每个模块具备误差可溯性,易于模型的调试和优化。然而设计多个独立模块间的相互连接以实现系统的复杂集成是一项极具挑战性任务。
为匹配最终驾驶任务,模块间的输入和输出接口往往需要人为进行事先选择和定义,如预测模块的输入通常是感知模块输出的智能体轨迹、目标类别、尺寸和位置等。这种基于人工选择的感知输入会导致有利于预测等下游模块的其他感知信息的丢失。其次,不同的道路和交通条件通常需要关注特定的环境信息,基于人工规则的预定义接口并不适用于所有场景。
此外,当前的城市交通场景通常还具有大量的动态对象、多样化的道路几何信息以及交通参与者间的复杂交互,因此基于复杂场景的上游模块的输出结果中不可避免地会存在各种预测误差(Chib和Singh,2023)。随着堆栈式的子模块数量增加,误差会逐渐累积并影响车辆的行驶安全性。更糟糕的是,这种复合误差难以在后续模块中得到修正。
最后,该系统的构建和维护成本较高,多个算法的集成部署对车载芯片的显存和计算开销都提出了较高要求。此外,当前的模块化自动驾驶系统的场景覆盖率有限,且尚未达到完全自主的水平。尽管模块化的方法存在诸多缺陷,但仍然是早期基于硬件和算法水平的合理选择。
近年来,基于模块化系统的自动驾驶技术正逐渐成熟并落地,如特斯拉NOA(navigate on autopilot)、蔚来NOP(navigate on pilot)以及小鹏NGP(navigation guided pilot)等面向高速公路和城市环路等高阶辅助驾驶技术。
基于“任务并行”理念的多任务学习架构,使多个任务共享提取主干网络,并为每个任务单独设置解码组件,以降低整个系统运行过程的计算开销,实现更高的推理速度。但该范式模型主要学习的是在多个任务间找到最佳平衡点,即实现性能的相对最优而不是保证每个任务均达到最优。
此外,不同任务间的优化目标并不一致,如感知模块的检测任务追求平均精度(mean average precision, mAP),规划模块以最小位移误差(min displacement error, min DE)为评价指标以追求驾驶的安全性及舒适性,这将导致整个系统无法朝着统一的优化方向去学习场景目标信息,可能存在表征冲突。更重要的是,共用较大差异性的任务特征可能还会引入潜在的负迁移问题,损害最终的预测规划结果。
为解决上述问题,近年发展起来一种新兴方向——端到端自动驾驶,将具有丰富信息的传感器作为原始输入,直接在一个网络中生成车辆的运动规划或控制命令。有别于具有显式组件的传统方法,端到端架构通过释放中间的显式接口简化网络以提高计算效率,并使整个系统包括中间表征都可朝着最终目标优化而不局限于关注某个独立任务,如图1所示。
此外,该系统直接基于原始数据驱动,减少了对特定领域的专业知识和相应的工程性数据采集和注释需求,即不需要进行密集的像素级别语义标注或者实例级别3D边界框标注。因而,该系统所需采集的数据源较为单一,例如模仿学习只需要包含状态—动作对的序列轨迹数据集。
理论上,该类方法还可通过简单地扩充训练数据优化系统性能。然而,使用一个较大模型替代多个独立小模型需要海量的大规模数据支持,才可匹配算法实现完全高性能AI(artificial intelligence)端到端,如特斯拉基于FSD(full self driving)提出的V12端到端自动驾驶系统就是依托于“影子模式”所积累的海量数据。
图1 自动驾驶系统对比
早期的端到端方法大致可以划分为以下两种:强化学习和模仿学习(Chen等,2024)。强化学习主要通过利用传感器数据和与环境的不断交互所产生的奖励训练神经网络,实现驾驶策略的从头探索和改进;模仿学习利用了专家示例,以监督学习方式训练系统模仿专家在各种驾驶场景中的行为,使最终模型输出接近人类驾驶员的最优策略。不同于模块化的密集监督方式(如图像语义标注),该网络仅使用稀疏的动作信号作为引导,训练较为困难且难以收敛。
此外,早期方法一般只输出最终的转向/刹车/加速等控制结果,缺乏对驾驶场景的显式表征,可解释性较弱。其中,基于强化学习的端到端自动驾驶利用交互机制优化算法且直接输出底层驾驶动作,该解决方案的完全“黑盒性”使智能体的决策往往难以解释。一旦模型失效或发生异常情况,无法及时对错误进行准确定位、纠正和避免,即算法出现不可控事件,极大地影响智能车辆的安全性。
有别于早期的隐式端到端方法,基于深度学习的显式端到端方法可在保持模块化的同时联合优化所有组件,有效结合了传统模块化和端到端方法的优势(李升波等,2023)。该方法通过对现有的独立模块进行可微,使规划模块的梯度可以通过反向传播传递到最初的传感器输入以实现端到端。由于模块之间存在明显的特征界限,并非完全黑盒,因而具有一定的可解释性。
事实上,显式端到端系统本质上是一种基于整体设计的相对解耦,其在推理时由感知到预测、再到规划模块的顺序本身就是一种决策行为的逻辑推理过程。当模型出现不可知、不可控的意外结果时,可基于对显式方案的底层运作逻辑的理解,有目的地调整模型,甚至可借助于特定任务模块的内部特征/中间结果等可视化手段分析决策运行机制,以避免黑盒模型所造成的潜在风险,保证智能汽车的安全高效行驶。因此,该类显式端到端方法得到了新能源车企特斯拉和自动驾驶独角兽公司Wayve的认可,有望助力自动驾驶向更高、更成熟的智能化发展。
然而,当前该技术仍处于初步研发阶段。2023年8月,首个全AI端到端的自动驾驶系统—特斯拉FSD V12测试版问世,实现了由视觉图像到车辆控制信号的直接输出。值得注意的是,该版本几乎完整保留了FSD的所有感知结果,实现了感知决策技术的一体化。
此外,国内蔚来、小鹏、商汤等自动驾驶公司都向端到端自动驾驶技术发出了挑战。小鹏开发并部署量产了端到端的BEV(bird’s eye view)感知架构XNet,迈向了端到端自动驾驶系统的重要一步。商汤科技联合上海AI实验室等提出了首个以规划为目标的感知决策一体化的端到端自动驾驶大模型UniAD(Hu等,2023)。最近,鉴智机器人公司实现了国内首个端到端自动驾驶模型的实车部署。
模块化系统架构
模块化的自动驾驶系统的核心思想就是构建多个独立但相互关联的模块组件,并按照特定的语义或几何顺序将其整合到同一辆智能汽车上。值得注意的是,每个模块的输出一定要与后续模块的输入兼容,以确保信息在该系统间的正确传递和流通。
自动驾驶系统主要由环境感知、定位与建图、决策规划和运动控制等模块组成,如图2所示。该系统通常以环境感知模块作为开端,将原始的传感器数据作为输入,并结合定位模块对道路上的障碍物、交通信息等目标进行实时检测和定位;随后决策规划模块进行车辆的行为决策和全局路径规划,并根据局部复杂交通情况和自车运动状态规划车辆可安全行驶的最优轨迹路线;而运动控制模块负责接收上游的位置、速度等决策变量并将其解析作用于底层执行机构,实现智能车辆的横向和纵向控制。
图2 模块化自动驾驶系统的关键组件
1.1 环境感知
环境感知是自动驾驶系统最为基础且重要的功能模块之一,旨在利用各种传感器感知自车周围环境,并通过对原始数据的直接读取、过滤等操作进行场景解析,实现道路场景的语义理解,从而为车辆的自主导航和路径规划提供重要依据。
智能汽车通常会搭载各种传感器,主要包括视觉相机、激光雷达和毫米波雷达等。视觉相机主要用于检测和提取丰富语义信息;雷达主要利用无序的稀疏点云赋予场景以深度信息,并对光照条件不敏感。
为更好地理解场景,该模块通常还会融合多视角的异构传感器数据,实现信息互补和准确的语义映射。感知模块主要执行目标检测(李熙莹,2023)、多目标跟踪以及交通信息检测等任务,充当底层传感器和高层决策模块的中介。
1.2 定位和建图
定位和建图模块主要负责对上游感知模块所检测到的各种交通参与者以及自车赋予某一坐标系下的相对位置信息,并进行地图信息的匹配。除了上述用于感知模块的传感器,智能汽车还会配备全球导航卫星系统(global navigation satellite system, GNSS)和惯性导航系统(inertial navigation system, INS)等实现高精度的组合定位和导航,以及常用于移动机器位姿(位置+姿态)和速度估计的里程计以实现卫星定位失锁时车辆的相对自主定位。
该模块的最终目的是绘制具有车辆位置、状态和相应环境的高精度地图,这对后续准确且安全的路线规划至关重要。常见的定位技术主要包括高清地图(high-definition map, HD-Map)和同步定位与建图(simultaneous localization and mapping, SLAM)。
前者可实现厘米级别的定位精度,并提供道路形状、道路标记、交通标志和障碍物等信息,其构建和维护成本较高,且当前覆盖范围较少;后者是基于自车实时感知生成的在线局部地图,可在不同的时间戳下实现交通智能体的准确定位,并为未知环境提供稳健且高效的定位解决方案。
根据描述地理数据方式的不同,HD-Map通常可分为以下两种:栅格地图和矢量地图。栅格地图以像素为单元,数据量较大,其精细度随着分辨率而变化;矢量地图面向对象开发,使用点、线和多边形表示特征,可包含语义信息,同时具有空间不变性。由于需要面向实例对象开发且减少计算开销,下游的轨迹预测任务通常会基于离线的矢量地图开发。
1.3 决策规划
决策和规划模块是自动驾驶的核心模块,根据导航信息,并在接受上游的感知和定位信息的基础上,同时结合自车的当前状态,对当前环境进行分析并做出具体决策,以在有限的时间范围内规划出满足安全、舒适等约束条件的可行驶轨迹。典型的决策规划层可分为以下3个层次:全局路径规划层、行为决策层和局部轨迹规划层。
1)全局路径规划层(route planning)。 根据给定目的地,该层可结合前序的地图信息,通过搜索方法生成由当前车辆位置到目标点的可高效行驶且无冲突的最佳全局通行路线。该层的输入一般为全局静态信息,输出为离散的状态序列,不依赖于时间。
2)行为决策层(behavioral layer)。 根据确定的全局路径,该层可结合感知模块的道路、交通规则和其他交通参与者等环境信息做出适合当前车辆的驾驶行为决策,如换道、车道保持、加减速等行为。其次,真实的自动驾驶场景是一个高度随机且多变的交通环境,每个动态参与者的行为都会对环境中的其他参与者产生影响。
基于多智能体的运动环境,决策前必须考虑其他车辆和行人的未来轨迹,通过合理的轨迹预测及时消除对自车的可能影响乃至潜在的碰撞风险。主流的决策算法可分为以下两种:
(1)基于规则的方法。以有限状态机(finite-state machine, FSM)为主,根据感知的环境情况“事件”去调整车辆需要采取的驾驶策略“状态”。该类方法需要提前制定规则,算法较为稳定;但对复杂环境的适应性较差,需要不断维护和添加时间—状态信息。
(2)基于学习的方法。以强化学习为主,通过与环境的互动达成行为奖励的最大化,实现算法参数的自主改变。该类算法需要定义4类元素,包括状态、环境(如红绿灯)、行为(如刹车)和奖励,通过优先学习奖励最大的决策,提高模型的鲁棒性和对复杂环境的适应性。
3)局部轨迹规划层(trajectory planning)。 根据前序的全局路径和行为决策信息,并结合车辆的实时状态信息及局部环境信息等,计算出符合特定约束下的最优轨迹。该层的输入一般为动静态环境信息,约束为安全最高优先级(免碰撞)、交通规则、乘员舒适性以及车辆自身动力学等,而输出为离散的时间状态序列(路径和速度)且通常为秒级的瞬时规划。常见的轨迹预测技术主要可分为以下4类:
(1)基于物理的方法。该方法通常采用车辆的动力学和运动学模型,以相对较低的计算资源完成预测任务。前者通常会包含许多固有参数,会使模型变得极为复杂,但并没有为预测精度带来明显的收益,因此通常将车辆简化为由前轮驱动的自行车模型以减少计算开销,一般应用在高速运动场景;后者主要从几何学角度和速度位置描述车辆的运动学关系,由于其结构简单,故相比动力学模型更为常用,但一般适用于低速运动场景。其中,匀速模型、匀加速模型和自回归模型应用最为广泛。基于物理的方法简单高效,不需要训练数据,但未考虑与环境的交互,因此只适用于简单场景的短期轨迹预测。
(2)基于机器学习的方法。与使用多个模型的物理方法相比,该类方法可以利用数据驱动预测轨迹,主要包括高斯过程(Gaussian process, GP)、支持向量机(support vector machine, SVM)和隐马尔可夫模型(hidden Markov model, HMM)等。由于该类方法可通过挖掘数据特征确定概率分布情况,并考虑了更多的变量,可预测较长时间跨度内的轨迹,且准确性较高。
(3)基于深度学习的方法。不同于仅适用于简单场景和短时间跨度的传统预测方法,基于深度学习的方法不仅考虑物理和道路因素,还考虑了智能体间的交互。该类方法主要利用交通参与者的历史轨迹特征,并对自车和智能体间的社交(social)和时间维度分别进行建模,从而在更广阔的时间范围内对自车的未来行驶状态进行准确预测,主要基于循环神经网络(recurrent neural network, RNN)、图神经网络(graph neural network, GNN)、Transformer和卷积神经网络(convolutional neural network, CNN)等各种深度学习算法。
(4)基于强化学习的方法。该类方法主要使用马尔可夫决策过程(Markov decision process, MDP)最大化奖励函数以训练预测算法,以更好地理解高维复杂策略。MDP算法通常假设奖励函数已知,为复杂多样的驾驶行为手动赋予权重是不合适的。根据奖励函数的设计和生成方式的不同分为逆强化学习和深度逆强化学习。前者根据专家演示学习奖励函数,免于人工指定;后者则学习非线性的奖励函数。此外,生成对抗性模仿学习也是极为常用的算法,其直接从数据中提取策略,不学习奖励函数,直接利用生成器尽可能生成与专家相似的轨迹,使判别器无法判别,实现以假乱真。然而,该计算密集,需要训练较长时间,收敛较慢。
1.4 控制模块
控制模块主要负责接收规划模块生成的轨迹,并结合自车的运动和状态属性,输出车辆底层执行机构(线控底盘)所需的方向盘、油门以及刹车信号,然后使用电机控制驱动车辆,使车辆能够稳定、安全地行驶在预定的路径上。
比例积分微分(proportional-integral-derivative, PID)和模型预测(model predictive control, MPC)是应用最广泛的两类控制算法。PID是一种无模型的控制器,其根据预定和实际行驶轨迹间的误差,利用比例、积分、微分计算控制量,使系统状态尽可能贴近期望值。作为最为成熟的控制算法,PID结构简单,适用于对被控对象模型尚不清楚的情况,但存在一定延迟。
MPC基于短时间内实现最优控制的理念,根据被控对象的当前状态,通过简化后的被控对象物理模型预测系统在某一未来时间段内的表现,进行多组执行器动作优化,但只施加第一步控制,最后反馈形成闭环并重复,其主要由预测模型、滚动控制和反馈校正结构组成。该算法具有显式处理约束和克服不确定性的能力,因而鲁棒性较好。
端到端系统架构
与基于离散模块的驾驶系统相比,端到端架构开辟了直接从车辆状态和传感器采集的外部环境数据中学习策略的新型技术路线,通过绕过中间组件消除潜在的信息瓶颈和累积误差,允许网络朝着最终目标持续优化(刘旖菲等,2021)。
端到端自动驾驶系统的发展时间历程如图3所示,其所列举的经典算法都将在下文阐明。最早的端到端方法可以追溯到美国卡耐基梅隆大学提出的ALVINN(autonomous land vehicle in a neural network)(Pomerleau,1988),以前视摄像头、激光测距仪以及路面强度反馈数据为输入,并利用三层神经网络实现车辆的横向控制。
2016年NVIDIA提出PilotNet(Bojarski等,2016),基于CNN搭建网络,并直接根据前方图片输出方向盘转角,并基于驾驶安全性首次提出了显著性表示以突出重要目标。同年,FCN-LSTM(Xu等,2017)使用长短时记忆网络(long short term memory, LSTM)将历史信息与当前特征融合预测车辆的运动,并输出转角,同时该算法还利用图像分割技术辅助网络训练。
然而,上述算法只能预测转向角,无法给出速度等纵向信号。Multi-modal(Yang等,2018b)利用前视摄像头和反馈速度作为多模态输入,解决了车辆无法同时横纵向控制的难题,实现了全方位自主运转。
图3 端到端自动驾驶系统发展历程
随着深度学习和传感器技术的快速发展和迭代,主流的端到端系统架构可以分为以下两种:
1)弱解释性端到端,以模仿学习和强化学习方法为主;
2)模块化联合端到端,基于保留模块化组件同时实现全流程的端到端训练,实现全模块可微。
2.1 系统的输入及输出模态
2.1.1 输入模态
1)视觉相机。 视觉相机是自动驾驶领域最自然的输入方式,直接通过模仿人类感知世界,实现由视觉到控制的端到端驾驶,主要包括单目相机和立体相机。Kendall等人(2019)使用单目摄像头和观察的车速及轮速开展强化学习研究。
面向城市环境,Latent DRL(deep reinforcement learning)(Toromanoff等,2020)仅使用前置单目摄像头赢得了CARLA(car learning to act)2019自动驾驶挑战赛,并使用隐式可供性(交通灯状态和与车道中心距离等)训练强化学习。立体相机使用双目视觉洞察3D空间,这允许CNN网络预测深度信息。
其次,环视摄像头在变道、十字路口等需多方观察的危险场合具有重要作用,可实现周围环境的全方位覆盖。Surround-view(Hecker等,2018)使用8个摄像头实现全景感知,并提出了端到端驾驶模型。
此外,除了可使用原始RGB图像,还可提取视觉的抽象特征作为另一种有效表示,如语义分割、深度估计以及可供性预测等。这些抽象特征可以直接从仿真模拟器中或特定预训练任务中获得,无需与系统模型同时训练。
Cheng等人(2021)利用深度图提取RGB图像为注意力图增强变分自动编码器(variational auto-encoders, VAE)的潜在特征,以有效引导强化学习模型的策略学习。
2)车辆状态。 除了考虑视觉传感器,现有工作还引入了车辆的高级状态,如速度、加速度等。在没有连续帧可供输入的情况下,速度是一种较好的替代选择。Osiński等人(2020)使用单个RGB图和对应的分割结果、速度、加速度,以及高层命令作为输入,在模拟器中使用强化学习实现车辆的有效控制。
然而在利用专家指导模仿学习的任务中,基于当前帧的速度数据预测车辆的下一帧速度可能会引入不可控的惯性问题(Codevilla等,2019)。学者们猜测这可能是因为模型的未来预测高度依赖于当前帧。为避免该类问题,后续工作不直接将该速度直接作用在控制器上,其只供模型学习相关表示。
3)激光雷达。 激光雷达(light detection and ranging, LiDAR)是另一种应用广泛的车载传感器,通过发射激光束检测目标并精准返回物体的三维世界坐标。与视觉相机相比,该传感器在三维结构绘制、角度测量、光照稳定性以及远距离测距等方面表现出极佳的性能。
当前该领域的大部分主机厂和一级供应商均坚信激光雷达是L3级及以上自动驾驶系统的核心配置。 然而百度和特斯拉对此保持质疑,该类企业认为相机是不可取代的,特定场景下相机甚至可以替代激光雷达。
事实上,自动驾驶的主流方案通常会配备多个传感器(多线主雷达和补盲雷达),旨在通过点云覆盖场景信息并实现以自车为中心的远距离感知。由于LiDAR输出为无序的稀疏点云,因此对点云进行处理和提取有用的特征是必要的。根据点云提取方式的不同,现有工作可分为两大类:基于原始点云和基于BEV网格。
(1)基于原始点云的方法是指直接从原始点提取目标特征。PointRCNN(Shi等,2019)是第一个以原始点云数据为输入的两阶段3D目标检测算法,第1阶段通过Pointnet++(Qi等,2017)提取每个点的局部特征并基于预测的前景点特征生成候选框;第2阶段使用候选框池化并结合上一阶段的全局语义特征对候选框位置进行修正。
(2)基于BEV网格的方法是将原始点云以多种方式投影到BEV空间,并以平面块、具有高度信息的体素(voxel)或柱体(pillar)的规则形态呈现。单阶段检测算法Pixor(Yang等,2018a)将点云以高度和反射强度分别投影到BEV空间,然后用2D卷积进行物体检测和定位。
VoxelNet(Zhou和Tuzel,2018)将点云划分为等间距的Voxel,经过点云的随机采样和分组后,使用体素编码层进行特征提取,随后使用3D卷积扩大感受野。SECOND(sparsely embedded convolutional detection)(Yan等,2018)使用稀疏卷积和子流形卷积对非空Voxel进行特征提取,以减少计算资源浪费。
而PointPillars(Lang等,2019)则提出了基于Pillar的点云提取方式,将整个场景沿着高度划分为多个Pillar,即忽略Voxel的高度信息,可将点云转化为伪图像以直接利用2D卷积提取特征,处理速度较快。
4)异构多模态。 相机和激光雷达作为两种使用最为广泛的自动驾驶传感器,其数据间具有良好互补性,融合稠密语义像素和稀疏几何结构信息能够有效提升场景感知和目标识别性能。目前主流的基于深度学习的激光雷达和相机的融合方案主要可以分为以下3种技术路线:数据级的前融合、特征级的深层融合和目标级的后融合。
(1)前融合。通过空间对齐或投影方式直接融合不同模态的原始数据。该方案对计算和内存要求较低,但是对数据高度敏感,其需要精确的时间和空间数据对准。LiDAR分支的点云一般采用反射率、体素张量、投影法和伪标签的方式。基于点云的投影方法试图将激光雷达数据投影到图像空间中,包括透视(perspective view, PV)和BEV。
其中BEV最为常用,其可以有效保留对象的长度和宽度,同时提供对象在地平面上的位置信息,有利于定位和避免遮挡问题。图像分支则使用RGB、灰度数据以及拓展的特征层数据。PFF3D(Wen和Jo,2021)将原始RGB像素与点云分支的体素张量数据融合;而PointPainting(Vora等,2020)则融合了图像分支的语义特征与原始激光雷达数据。
(2)深层融合。通过拼接或者逐元素相乘法在特征空间中融合跨模型数据。PointFusion(Xu等,2018)利用图像分支的全局特征并附加到点云上进行特征融合。EPNet(enhancing point network)(Huang等,2020)则建立了激光雷达点云和图像像素间的细粒度的逐点对应关系,并通过自适应估计图像语义特征的重要性减少信息干扰。
由于Transformer机制易于获得全局注意力,TransFuser(Prakash等,2021)设计多个Transformer模块来融合前视图和LiDAR的中间特征。而InterFuser(Shao等,2023a)首先分别使用CNN网络提取特征,并根据不同传感器的标识(token)在Transformer中融合。
(3)后融合。将各模态下的预测结果结合起来进行最终决策。CLOCs(camera-LiDAR object candidates)(Pang等,2020)采取后融合方案,利用点云和图像分支生成候选框的几何和语义一致性,进一步细化生成3D候选框。该方案需要较高的计算资源和内存需求,同时由于其直接丢弃了中间的特征空间,因此性能上仍有所欠缺。
5)导航输入。实际应用中,自动驾驶系统需要将乘员安全、舒适、稳定地送达目标位置。只有给定适当的导航输入,端到端自动驾驶系统才能够触发响应条件,进行跟车、避障等行为。
该导航输入可以来自规划模块中Route Planning层输出的具有系列离散端点位置的行驶路线或某种显式的导航命令,该导航命令可以由高级路径规划器生成。TCP(trajectory-guided control prediction)(Wu等,2022)采用显式命令作为高级条件指令输入用于生成控制信号,主要包括车道保持、左转和右转等。
2.1.2 输出模态
1)转向和速度。 基于强化学习和模仿学习的端到端模型输出通常为一定时间跨度内的未来方向盘转角和速度(加速、制动)。针对上述车辆基本控制三元素的预测任务往往视做回归问题。由于方向盘转角范围有限,且可直接从车辆记录中获取,因此转角预测任务也可视做分类问题。然而,给定相同大小的转角,不同车辆实际运行时的转弯半径可能并不一致,这意味着转弯半径取决于车辆的几何形状。因此,往往会选择直接预测车辆转弯半径的倒数。
2)航路点。 航路点(waypoint)是一种更高层的输出模式。带时间戳的序列waypoints本质上就是模块化端到端系统中规划模块的输出轨迹。利用PID或者MPC等控制器可将航路点进行解码,生成最终的低级转向和速度信号。为了驾驶更加平稳,通常还会进行轨迹平滑处理。与直接预测车辆基本控制单元命令相比,航路点有更好的可解释性和可分析性。
2.2 弱解释性的端到端
端到端自动驾驶方法通常会基于一个可学习网络将传感器数据直接映射为最终的决策控制行为。其中,模仿学习(imitation learning, IL)和强化学习(reinforcement learning, RL)是基于神经网络的端到端系统中的主要研究范式。前者通过模仿人类专家学习如何在类似场景中采取相似行为;后者通过与环境交互产生的反馈学习如何使特定场景中的奖励函数最大化。
根据是否直接学习动作,模仿学习可以分为以下两种:行为克隆(behavior cloning, BC)和逆强化学习(inverse reinforcement learning, IRL)。基于上述技术构建的端到端网络融合了模块化架构中的感知、控制等模块,提高了模型的效率及鲁棒性,但同时降低了透明度,缺乏足够的可解释性。具体结构如图4所示。
图4 模仿学习和强化学习结构
2.2.1 模仿学习
模仿学习是一种基于专家示范的学习方法,让智能体从收集到的人类驾驶员演示数据中学习,通过模仿专家的行为学习当前状态下的最优驾驶策略。状态(state)是对环境的完整表述,不会隐藏世界的任何信息;策略(policy)是智能体的动作模型,反映了输入状态到输出动作(action)的映射函数。
对人类专家来说,策略就是驾驶员对观测环境所处状态的动作响应。专家演示数据通常包含多条训练轨迹,每个轨迹是一系列State-Action序列对。
1)行为克隆。 行为克隆(Ohn-Bar等,2020)本质上是一种监督学习,根据专家示范数据训练神经网络,从而直接模仿专家的驾驶行为。由于智能体只能访问专家演示,因此该方法也可以称为离线模仿学习任务。其中,专家数据集 的每条轨迹 中的 可视为监督学习中的样本,广义上为采集的传感器数据; 可视为监督学习中的标注,即采集的人类专家驾驶动作,主要包括转向、加速和制动;样本到真值的映射函数 通常为确定性策略,即面对相似的驾驶场景和感知数据,自动驾驶系统会生成类似的驾驶决策,使模型尽可能接近人类驾驶员。具体为
式中, 是专家动作, 是损失函数L(·)最小时的网络学习参数,分类任务的L(·)通常为交叉熵损失,回归问题通常使用L2范数。当前,无论是早期直接以视觉相机作为驾驶系统输入(Bojarski等,2016),还是后续以多传感器融合作为输入(Prakash等,2021)的自动驾驶方案大部分都是基于BC搭建系统网络。
监督学习不仅需要海量的样本真值以供模型训练,还需满足样本的独立同分布原则(independent and identically distributed, IID),即样本间不能出现相互关联。事实上,离线模仿学习所需的时间序列数据通常包含大量的专家演示轨迹,无法满足IID假设,因此,基于该方法训练所得的模型误差较大,对样本的输入顺序高度敏感,方差较高。
此外,IL的另一个重要问题是网络的泛化性不足,即存在协变量偏移(covariate shift, CS)。这是由于采集的人类专家数据有限,当测试状况与训练分布明显不同,譬如出现专家数据中不可知的路线偏离等高风险状况,模型无法自主实现动作纠正,这降低了算法的鲁棒性和泛化性。
解决CS问题的一种有效方法是利用专家的在线评估,也称为数据聚合(data aggregation, DAgger)(Ross等,2011),即在训练过程中专家会对智能体的自身策略提供正确动作,从而引导模型对过去错误进行纠正,其核心思想在于将BC所得策略与环境不断交互并使用专家进行数据扩充,随后基于增广后数据更新网络参数。
2017年,PilotNet首次将该算法应用于自动驾驶中,即提出了一种端到端的自动驾驶方法。为保证算法在不同驾驶环境中的安全性,Codevilla等人(2018)引入了高级条件指令。在此技术上,后续涌现了许多基于BC的端到端自动驾驶算法(Chen 等,2020;Prakash等,2020)。
然而BC方法不可避免地存在偏差,难以实现百分之百的专家行为模仿;同时数据的序列连贯性又会导致最初的微小偏差随时间不断放大和累积,导致出现严重的决策偏离现象。由于该类方法只是简单的专家行为复刻,模型仅能隐式判断动作是否重要,而无法得知动作的重要程度,因此IRL的概念得以提出。
2)逆强化学习。 IRL方法旨在通过专家示范的轨迹数据找到智能体与环境交互的奖励(reward)或代价(cost),然后根据奖励最大化原则估计策略函数。Sadigh等人(2016)将自动驾驶车辆与人类驾驶员之间的交互进行动态建模,并通过IRL学习奖励函数。传统基于MDP的IRL的奖励函数一般表征为特征的线性组合。而自动驾驶场景通常是连续且高维的,奖励函数难以收敛。
事实上,若将IRL类比为生成对抗网络,那么奖励函数可视为判别器,智能体学习策略为生成器。这就是生成对抗模仿学习(generative adversarial imitation learning, GAIL)算法的由来,直接让智能体学习策略以提高学习效率,如Lee等人(2020)和 Li等人(2017)的方法。
GAIL(Ho和Ermon,2016)的目标是让生成器产生的智能体策略不断接近专家策略,同时判别器准确区分策略来源,即实现代价函数的最小化、策略熵的最大化。
式中,H( )为策略 的折扣因果熵, 为专家策略,c为代价函数。为了更好地学习代价函数,Wang等人(2021)和Zeng等人(2019)还在端到端架构中引入辅助感知任务,通过中间表征为最终策略提供显式的安全指引,并展现了特定的解释功能。
2.2.2 强化学习
强化学习(RL)是一种基于“模型—利用”原则的学习方法,通过与环境的不断交互探索获取对外界的理解,从而更好地发现选取有效动作,并期望随着时间推移实现累积奖励的最大化。与需要模仿给定专家的模仿学习(IL)任务相比,RL通过尝试不同动作来观察环境的反馈,并基于这种明确的奖励信号改进策略。基于试错理念实现回报最大化的RL算法,在某些场景中甚至可取得超越人类的高超性能,如围棋领域的AlphaGo,同时具有较好的鲁棒性能。
在自动驾驶领域中,LDAC(learning to drive a real car)(Riedmiller等,2007)首次将RL算法部署在实际车辆上并实现了转向功能,其应用神经拟合Q迭代方法,将描述车辆的5个连续变量作为控制器输入证明了RL算法的有效性。鉴于此,Mnih等人(2015)提出了DQN(deep-Q-network)算法,并在Atari 2600游戏平台上实现了近似人类的控制水平。
得益于DQN的成功应用,Chen等人(2022)对该算法进行优化改进并成功地应用到智能汽车上。除此之外,深度确定性策略梯度(deep deterministic policy gradients, DDPG)(Lillicrap等,2019)和近端策略优化(proximal policy optimization, PPO)(Zhang等,2022)也经常应用于智能汽车上。
Liang等人(2018)更是基于DDPG方法首次证明了基于视觉输入的强化学习算法的有效性。近期,Latent DRL(Toromanoff等,2020)提出了一种隐式的端到端方法,通过训练嵌入空间作为环境观察的潜在表示优化强化学习。
最近,人类专家参与的强化学习范式引起了广泛的探讨,即人类反馈强化学习(reinforcement learning from human feedback,RLHF),其本质上是通过人类反馈对RL的奖励函数设计的一种改进(潘峰和鲍泓,2021),利用丰富的人类专业知识为强化学习任务提供有价值的反馈信号,同时为奖励的最大化提供高层次的监督。HACO(Li等,2022a)就是该类方法成功的典范,利用专家策略监督智能体的学习。
此外,GRIAD(general reinforced imitation for autonomous driving)(Chekroun等,2023)利用具有监督的语义分割和分类等辅助任务首先对编码器进行预训练,并在训练最后策略时冻结该图像编码器。此时,具有专家监督信号的模仿学习可以视做RLHF方法的先验,为强化学习范式提供初始化/引导,使模型无需从零开始探索环境。
Roach(Zhang等,2021)利用具有环境特权信息的强化学习智能体,为基于单目摄像头的模仿学习智能体提供信息监督,将BEV图像映射到连续的低层动作。在智能体与环境的交互过程中,基于RL的智能体由于没有显式的监督信号,只能观察动作奖励以不断调整策略。
奖励自身的稀疏性以及可能的延迟性使得网络训练极为困难,而基于RLHF的方法通过人类专家的评价和反馈分配奖励信号并以迭代方式更新智能体的驾驶策略,减轻了RL中大量的试错成本,有助于提高训练效率,使智能体更加高效且快速地学习并生成更明智的动作。
然而,上述算法通常只能基于闭环模拟的仿真模拟器中开展模型训练和验证,由仿真环境到实际应用间的领域适应和迁移问题仍然是当前亟待解决的一大痛点。
2.2.3 弱解释性
可解释性是指人类对于决策原因的理解程度,侧重于对模型内部机制和模型输入输出间关系的理解。可解释性模型通常能够提供清晰的决策依据,使用户能够理解模型的判断过程,从而增强对模型的信任。
自动驾驶领域中,模型的可解释性越高,人们越容易理解智能车辆做出某种决定或预测的背后逻辑,越容易调试、验证和优化代码,从而保障了对运行车辆至关重要的系统安全性。 例如,当运行车辆出现了严重的误刹,可解释性模型易于开发人员判断指令来源(前方动态障碍物/静态物体)、分析是规划速度还是控制指令等问题,从而根据定位原因执行算法的定向优化。
模型的可解释性能通常与算法的透明度、可分解性等有关,其中算法的透明度侧重于了解模型的构建方式以及可能影响决策的权重等技术细节。由于具有较好的可模拟性,即模型易于搭建,线性模型通常具有较高的算法透明度。可分解性侧重于对模型的内部理解,即模型每个部分都有直观的解释。
由于缺乏对预测轨迹或控制信号产生原因的解释性,早期的端到端自动驾驶方案一经提出就受到业内和用户的广泛诟病,对模型的透明性、安全性以及能否遵守法规等方面提出了强烈质疑。为应对这一挑战,研究人员对完全端到端自动驾驶技术的可解释性开展了研究,主要包括事后显著性和辅助任务分析。
事后显著性通常基于各种注意力机制发现并提炼对输入空间影响最大的区域,以提供局部区域的解释性能。Plant算法(Renz等,2022)基于Transformer机制利用相关注意力权重开展显著性可视化分析,成功识别出了与输出策略最相关的实例对象。NEAT(neural attention)(Chitta等,2021)以迭代方式聚合中间特征以预测注意力权重。该类方法一般从模型的中间表征中提炼可解释性,其在解释的同时不会影响模型性能。
此外,还可基于辅助任务对模型的中间输出进行必要的解释性分析。基于特定任务损失函数和真值监督训练的模型,该中间表征可被解码成任何信息,如语义分割(Shao等,2023b)、深度估计(Jaeger等,2023)等。
然而,在早期的端到端策略学习中引入相应结构只能展示一定程度的可解释性原理,仅支持功能性验证,对模型性能的提升有限,无法在理解的基础上优化系统。而神经网络的黑盒效应使这种早期的完全端到端自动驾驶无法找到正确的优化方向。
基于模块化的自动驾驶系统可对模块解耦,使多模块单独开发优化成为可能,让每一个子模块都具有较好的可解释性和稳定的表示性能。然而该方法无法实现优化层面上的目标统一,即无法朝着最终目的去统一优化和学习。
设计一种在保留原始自动驾驶模块化技术基础上实现各模块可微的端到端方法似乎是一种有效的解决方案,即模块化联合端到端自动驾驶方案。其旨在将各个子模块以神经网络方式连接起来,并使每个模块有足够的可解释性和具备整体的自动优化能力。
2.3 模块化的联合端到端
虽然存在信息丢失、复合误差等不足,但模块化系统仍具有较强的可验证性、可解释性和可泛化性,因而该方法的社会理解度和认可度较高,具有较强的落地前景。现有的端到端方法依托于原始的传感器输入直接产生最后的控制信号输出,其可解释性较弱。
鉴于此,基于优势互补的模块化端到端方法应运而生,可在有效保留中间显式设计的同时实现全模块化的可微,其核心理念在于构建某种特殊的神经网络以串起所有独立模块。该类方法并未抛弃经典的模块化技术栈,仅改变了子模块的连接方式,旨在新型隐式接口替代原始基于规则和人工定义的显式接口。
例如,经典的模块化方法通常将感知模块输出的目标位置、姿态以及历史轨迹等信息作为预测模块的输入;而在基于Transformer搭建的模块化端到端范式中,预测模块的输入通常为检测/跟踪的查询向量(query),实现了基于整体设计的模块间相对解耦。
因此,可将整个端到端模型看成单一的超大模型,各模块都围绕着最终的规划目的去做调整和优化。当前,面向规划任务的显式端到端方法大部分都基于BEV的场景表达范式,并结合最先进的Transformer架构。图5列出了两种主流的架构UniAD和FusionAD(Ye等,2023),前者以环视视觉信息作为输入,后者基于视觉和激光雷达的多传感器融合数据。
图5 模块化联合端到端架构示例
2.3.1 BEV表征
模块化架构通常会将各种传感器数据映射到BEV空间进行环境感知,通过优良的全局俯视视角,可直接全方位、无死角地感知自车周围环境信息,保留驾驶场景的3D空间布局,并有效避免目标遮挡、尺度扭曲等危及车辆行驶安全的潜在问题。由于具备可解释性、全面的动静态目标特征,以及可服务于自动驾驶系统的各种下游任务等优良特性,模块化联合端到端方法仍遵循BEV表征范式。
基于稀疏点覆盖3D场景的激光雷达等传感器,天然适用于表征BEV空间,实现以自车为中心的远距离感知。而基于像素捕捉利于场景理解等任务的语义及边界信息的视觉相机,受限于自身的PV属性,只能感知部分可见区域。多传感器融合是一种可行的替代方案,旨在通过融合多视角图片实现PV到BEV空间的有利转换。
当前基于相机的BEV空间实现主要可以分为以下两种:直接投影法、可学习方法。直接投影法通过单应矩阵建立BEV空间位置和相应图像像素间关系,实现平面间的直接投影映射。而可学习方法主要利用多层感知机(multilayer perceptron, MLP)和Transformer网络隐式推理平面间的对应关系。
LSS(lift-splat-shoot)算法(Philion和Fidler,2020)是一种基于显式深度估计的方法,其首先在2D特征图上逐像素进行深度分布估计,然后根据BEV空间上的深度分布提升2D特征。
与之类似,BEVDet(Huang等,2022a)同样使用深度估计构建包含图像特征的视锥,并在BEV平面上进行地图分割和3D目标检测。为进一步增强BEV表征,SoloFusion(Park等,2022)通过将匹配的历史BEV特征整合到当前帧中,实现了有效的时间融合。BEVFormer(Li等,2022b)通过Transformer机制构建时空注意力,获得丰富的2D BEV特征。
然而,基于纯视觉相机的方法面临着远距离感知精细度不高的难题。而激光雷达可以提供准确的位置,实现远距离探测,但其点云的稀疏性又会导致语义信息匮乏。因此,基于优势互补理念的多传感器融合方法应运而生,引起了国内外众多科研机构探讨多模态数据融合的研究热潮。
由于激光雷达固有的BEV视角,多源异构融合算法通常将视觉相机转到BEV空间以促进特征的高效融合。BEVFusion(Liang等,2022)分别通过LSS和VoxelNet(Zhou和Tuzel,2018)网络获得图像和LiDAR的BEV特征,并利用拼接操作实现有效的特征融合,从而提高感知性能。基于此,SuperFusion(Dong等,2022)提出了一种多阶段的融合算法以实现多模态的地图感知。
2.3.2 感知预测一体化
作为感知和规划的沟通桥梁,预测模块在自动驾驶系统中发挥着关键作用,其可通过预测自车附近动态交通参与者的未来轨迹,提前感知道路的潜在风险并在下游任务中进行规避以确保行驶安全。
在传统的模块化自动驾驶系统中,运动预测通常被视为一项独立开发的任务,通过GNN或Transformer对上游感知结果(边界框和历史轨迹集)和HD-Map进行编码,以可学习的方式预测自车的未来运动。VectorNet(Gao等,2020)利用矢量HD-Map作为输入,并探讨基于矢量方式表征障碍物的智能体轨迹预测方法。
与栅格表征方法相比,该方法可以极大地减少算力,但同时会丢失高层的语义特征。在此基础上,LaneGCN(Liang等,2020a)和PAGA(Da和Zhang,2022)通过细化地图特征,如车道连接属性等,增强轨迹和地图间的匹配关系。
与前述以回归方式直接预测的轨迹点不同,TNT(target-driven trajectory)(Zhao等,2021)聚焦于预测智能体的潜在目标终点,即采用目标驱动方法,将预测问题转化为预测离散目标上的分布,并基于生成的高置信度候选点估计相应轨迹。
然而,该方法的精度高度依赖于预定义的锚框质量,速度也会受到非极大值抑制(non-maximum suppression, NMS)等后处理操作的影响。DenseTNT(Gu等,2021)是一种基于目标的无锚框算法,即免于多层目标框的设计,直接预测目标的概率分布评估潜在的目标位置。
上述所有方法都高度依赖于HD-Map,基于目标的方法本质上也是依据HD-Map对自车附近元素的目标点采样。然而,HD-Map的构建费时费力、成本高昂、需要频繁维护且不适用于地图不可知的状况。
上述独立开发的轨迹预测方法一般直接利用感知模块的真值作为输入以进行模型训练。然而,在实际场景应用中,对任意场景进行数据采集且逐帧进行清洗和标注是不太现实的。此外,模块化自动驾驶系统通常以前序模块的预测结果直接作为输入,这将使预测误差不断向下传递,最后造成无法弥补的累计误差。






请到「今天看啥」查看全文