• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

TCP结合轨迹规划和控制预测的端到端自动驾驶框架

武飞扬头像
OpenDriveLab
帮助1

热爱自动驾驶研究的你,是否还在为如何融合多传感器信息而苦恼,亦或是为提升上游检测和预测模块的点数而卷得不可开交?不妨换个思路,在端到端模型输出形式上对症下药,乘坐我们的TCP,纵使路途遥远充满挑战,也能安全为您保驾护航。

CARLA是一个广泛用于自动驾驶相关研究的开源模拟器,CARLA Autonomous Driving Leaderboard 是一个用来衡量自动驾驶模型在复杂城市交通环境下行驶性能的平台,自动驾驶模型需要在不同天气,光照环境下,应对各类富有挑战性的驾驶场景,完成驾驶任务。我们提出了一个统一了两种典型输出形式(轨迹规划和控制预测)的端到端自动驾驶(E2E AD)模型 - TCP (Trajectory-guided Control Prediction),仅使用单一单目相机作为输入,便取得了75.14 Driving Score 0.87 Infraction Penalty,在CARLA Autonomous Driving Leaderboard上取得了 第一名 的分数,远超其他使用多传感器输入的方法(多相机和激光雷达)。 

学新通
TCP 在CARLA AD Leaderboard上的排名(截至2022.6.24)

论文地址: http://arxiv.org/pdf/2206.08129.pdf

项目地址: https://github.com/OpenPerceptionX/TCP

主要撰写小伙伴: @吴鹏浩、陈立

PS:未经授权,禁止转载


TD;LR (太长不看版):

1.不同于以往的端到端模型,TCP有何特别?

  • 模型设计着重点?NOT encoder!以往的端到端模型往往专注于输入信息的融合异己输入encoder部分的设计,而TCP专注于提取到feature之后的预测部分

  • E2E AD 输出形式,轨迹or控制?平常的端到端模型采用轨迹 PID/控制信号中的一种,而TCP研究了这两种输出形式的各自特点和优劣,并将二者结合在一个统一框架中,达到取长补短优势互补的效果。

2.我们做了哪些具体工作?

  • 我们通过大量实验分析了两种输出模型(轨迹预测 PID模型和直接输出控制模型)各自的特点。

  • 针对模仿学习中,对于state-action pair独立同分布假设带来的问题,我们提出了推演预测未来多步控制信号的方案,赋予模型较短时序上的推理能力。

  • 我们将轨迹预测分支和多步控制分支整合在一个框架中,并加入二者的交互,并根据先验方案灵活结合两分支输出,获得最佳的最终控制信号。

3.TCP模型效果如何?

作为一个简单有效的框架,TCP以单相机作为输入,在不同测试环境和场景下,出色应对各类挑战性的驾驶场景,在CARLA AD Leaderboard上取得了 第一名 的成绩 (75.14 Driving Score0.87 Infraction Penalty 均远超其他方法)。Demo视频如下:

Demo: TCP在CARLA中的测试片段


以下是TCP工作的详细介绍。

TCP (Trajectory-guided Control Prediction)方案

初衷:轨迹 vs 控制信号,which is better?

不同于模块化的自动驾驶方案,端到端的自动驾驶将传感器原始输入直接通过网络得到规划轨迹/控制信号。端到端自动驾驶模型结构简单,直接优化最终的驾驶信号,近年来吸引了诸多学术界和工业界的注意。端到端自动驾驶模型的输出形式主要分为控制信号轨迹两种。控制信号(如油门,刹车,方向盘转角)可直接作用于自动驾驶的车辆上,而轨迹则需要再结合一个控制器(如PID 控制器)把轨迹转换为最终的控制信号。

学新通
动机:轨迹vs控制信号。红点是轨迹预测结果,蓝点是依照此轨迹跟踪实际行驶轨迹,绿点是控制信号方法的实际行驶轨迹。两种输出形式分别具有一定的限制,如(a)转弯场景的轨迹跟踪、(b)独立同分布假设训练得到的控制模型对长时间驾驶策略决策的欠缺

轨迹和直接控制信号这两种输出形式各自拥有一些不同的特点。

  • 轨迹是未来每个时间步车辆的位置,轨迹这种输出形式自然地包含了对未来一小段时间的考虑,并且可以进一 步与额外的他车轨迹预测模块或检测和分割模块结合,从而减少碰撞率。然而,轨迹需要通过额外的控制器将其转换为最终的控制信号,当前常用的PID控制器不仅需要大量调参,在车辆拐大弯或启动时可能表现不佳,车辆无法真正行驶出贴合预测轨迹的路线

  • 对于直接输出控制信号的模型,最终的信号能够直接被优化,然而,对当前时刻对应控制信号直接优化会导致模型仅仅关注当前时刻,缺乏对未来的考虑,可能使得刹车不及时导致的碰撞增大

我们提出的TCP(Trajectory-guided Control Prediction)模型,目标即是将二者结合到一个统一的框架中,从而取长补短,获得优异的性能。

TCP Pipeline

学新通
TCP整体pipeline

根据前述的初衷,那么接下来的设计也就非常自然了。TCP 以一种多任务学习的形式(Multi-task learning)将轨迹和控制信号作为两个并列的分支,接在共用的输入encoders后,并设计了两个分支之间的交互,在最后将两个分支的输出结果灵活结合。类似既往的端到端模型,我们的输入也包含传感器、指令两部分内容。一个基于CNN的image encoder用于提取输入前视相机的图片特征,一个基于MLP的measurement encoder用于处理自车当前速度和导航信息,两者结合得到的特征同时提供给后续轨迹分支和多步控制分支使用。

1.轨迹分支

我们在本身的轨迹分支中并没有过多的设计。输入特征被送入一个GRU模块,自回归地依次预测未来每个事件步车辆的坐标,从而形成一条轨迹。轨迹将被提供给PID控制器从而得到包括油门,刹车,方向盘转角的控制信号。同时,在轨迹预测的每个时间步,相关信息将会被提供给多步控制预测分支作为引导。

2.多步控制预测分支

学新通
轨迹引导的多步控制预测示意图

这里首先要谈,为什么要多步控制?

传统的控制信号预测模型,在采用监督学习的训练方式时,将每个state-action对视作独立同分布,这与本属于序列决策问题的驾驶任务不符,使得模型只关注于当前时刻,失去了对未来的思考能力。我们通过设计一个简单的时序模块来进行多步控制预测来缓解这个问题

  • 在模拟器中或真实世界中,我们驾驶的车辆将会不断与环境交互互动,我们希望通过一个时序模块,在一定程度上模仿一个简易模拟器,用来推演环境的发展变换和自车与环境的交互。我们设计了一个基于GRU的时序模块,该模块在每一步以一个表征当前环境的特征向量和当前预测的控制信号作为输入,推演出下一时刻对应的环境特征向量。在每一步使用一个共用的MLP头来输出对应的控制信号,并对每一步的特征向量和控制预测进行监督,从而使得模型能够思考当前应采取怎样的控制信号才能使得未来环境也与专家模型相近。

但是,只根据当前时刻的输入与简易场景模拟器,想要预测未来多步的控制信号仍并非易事,我们还需要更丰富的信息来帮助。针对性地,我们也提出了轨迹引导的注意力机制

  • 对于未来的一小段时间,预测所需要的静态信息(车道线,路沿等)往往已经包含在了当前时刻的输入图片中,问题在于如何在当前时刻输入中找到未来对应时刻的控制预测所需要的动态信息。因为该信息和未来车辆所在位置紧密相关,而轨迹预测分支正包含了此类信息,所以我们在未来的每个对应时间步,结合轨迹分支对应步的信息来预测一个注意力权重图,用来重新聚合当前时刻的输入特征,从而更好地预测未来时间步的控制信号。

至此,我们轨迹引导的多步控制预测(TCP主体)即已成型,大量的重复实验也证明了以上设计的有效性。

3.分支输出融合

在以上的TCP两路分支中,它们会各自输出一个控制信号,但最终我们必然只能输出一个结果。正如上文所提到的,轨迹和控制两种形式有各自的优缺点,所以我们根据已有的先验知识和实验结果,设计了一个灵活地融合方式,从而以不同的比重结合两个分支的结果。例如,我们发现在拐弯时以控制为直接输出的模型表现效果更好,所以我们判断当前车辆是否在拐弯,若在拐弯,则赋给控制分支的输出更大权重,轨迹分支更小的权重,来结合形成最终的控制信号。

学新通
分支输出融合算法

实验效果

1.CARLA Leaderboard 榜单(SOTA)比较

当前的CARLA AD Leaderboard共包含10条secret routes,每条route会在2种天气条件下进行测试,每组测试重复5遍。自动驾驶模型将在一系列稀疏的导航点的引导下完成既定起点到终点的驾驶任务。驾驶过程中将会面对10种预设的富有挑战性的场景,包括并道,变道,相应红绿灯和交通标志,无保护交通路口等。评价指标主要包括Driving Score(DS), Route Completion(RC), Infraction Score(IS)。其中主要指标DS为RC和IS的乘积,RC是自动驾驶模型完成的驾驶距离占总路线的比例,IS则汇总了模型在驾驶过程中产生的infraction(基础分为1,每犯一次infraction将被乘以一个对应0-1的系数),infraction包括撞行人,撞车辆,闯红灯,偏航等。

在CARLA AD Leaderboard上我们的TCP模型仅使用单一相机作为输入,获得了第一名的DS和IS,大大地减少了各类碰撞,偏航等问题。

学新通
CARLA AD Leaderboard比较

2.Ablation分析

多任务学习的作用:简单地在control only model中加入轨迹预测的附属任务,就可以对控制预测本身带来提升。证明了轨迹预测和控制预测两个任务本身的关联性,将二者作为多任务学习的任务可以提升模型所提取特征的泛化性能。

多步控制信号预测的作用:在使用我们的多步控制预测方案后,DS和RC获得了10个点左右的增益,证明了我们设计的轨迹引导的多步控制信号预测的有效性。

结合轨迹和控制输出形式的作用:在结合轨迹和控制的输出形式后,IS获得大幅度提升,证明我们的结合方案能够巧妙地结合二者的优势,减少由控制模型带来的碰撞和轨迹模型带来的偏航。

学新通
各个设计模块的消融实验

模型性能与大小比较:与直接将两个纯轨迹模型和纯控制模型以ensemble的方式结合不同,TCP采用多任务学习的(MTL)思路,使用一个共享的backbone,将轨迹和控制作为两个并列的分支,在保证性能优异的同时,仍然保持较少的模型参数和计算量,确保了实时的推理速度。(表中模型具体含义见论文)

学新通
采用的各种模型大小与性能比较

在可视化下,TCP更直观地展示出了应对各类挑战性驾驶场景的出色能力。比如(Row1)对画面中仅占很小区域红绿灯变化的反应、(Row2)在转弯后面对突然出现的行人的及时反映、(Row3)路口场景候车转弯、(Row4)无保护左转过程中与对向车辆的交互。

学新通
测试中的挑战性case

相关工作

端到端自动驾驶模型避免级连式的设计,以一个统一简单的模型将传感器输入映射为最终输出。通常采用模仿学习或强化学习的方式来训练,模型的直接输出形式往往是轨迹和控制信号中的一种。

工业界方案:Openpilot【1】

Openpilot 是一套针对高速驾驶场景,面向L2辅助驾驶功能(ACC、LKA、DMS等)的开源项目,也是我们所知的唯一个一个地个将端到端模型应用于量产落地的项目。Openpilot采用一个简单的supercombo模型,以前后两帧前视摄像头作为输入,直接输出预测轨迹,预测轨迹和雷达信号结合送入MPC控制器得到最终的控制信号,supercombo模型也以多任务学习的形式同时预测车道线,车辆状态等信息。

本组也对Openpilot相关工作进行了一系列的deepdive,也公开了我们的代码、arXiv及相关探索性内容,若感兴趣请移步项目仓库Openpilot-Deepdive或相关知乎文章: PerceptionX - 知乎

工业界方案:Wayve【2】

学新通

英国的Wayve公司,也在各种不同公开场合表示他们采用了端到端的模型实现英国繁忙街区中的自动驾驶。他们的模型通过decode中间特征,来增强可解释性。我们也非常建议感兴趣的同学听一下其CEO Alex Kendall在CVPR 2022 Workshop on Autonomous Driving上的keynote演讲,其中总结了他们在可迁移性、Off policy训练、仿真/数据等对于端到端自动驾驶关键问题上的看法。

学术界论文:Learning from all vehicles (LAV,CVPR2022)【3】

学新通

LAV利用pointpainting融合点云和图片信息,coarse to fine地得到规划的轨迹,并在BEV视角下进行目标检测和他车轨迹预测帮助刹车的判断。LAV利用了数据收集车周围所有车辆的数据,增加了训练数据的多样性,缓解数据长尾分布的问题。

学术界论文:Multi-Modal Fusion Transformer for End-to-End Autonomous Driving (Transfuser,CVPR2021)【4】

学新通

Tranfuser利用attention based transformer block在不同的尺度的特征图上融合激光雷达点云和图片信息,最终提取出的具有丰富信息的特征向量送给一个时序模块,自回归地输出预测的轨迹。

学术界论文:End-to-End Urban Driving by Imitating a Reinforcement Learning Coach (Roach,ICCV2021)【5】

学新通

不同于以往的rule-based的专家模型,Roach先用强化学习的方式获得一个以BEV标注作为输入的专家模型,再采用蒸馏的方式训练一个以前视相机作为输入预测控制信号的学生模型。

下一步工作

TCP首次讨论了端到端自动驾驶模型中轨迹和控制信号这两种输出形式的特点,并将二者结合在了一个统一的框架中。

一个自然的方向是将多传感器(多相机 激光雷达)作为输入,使用传感器融合的方法,提取更丰富的信息供后续分支使用。同时,可在模型中加入检测和分割任务,并与轨迹预测分支的结果结合。

另一个我们思考的问题是,两种输出的结合可以获得更出色的效果,那么两种表达形式到底在关注一些什么。如何在可解释性的引导下,设计更合理的端到端自动驾驶模型也是一个异常有趣的方向。

我们拥抱多彩纷呈的想法,欢迎大家加入我们致力于实现更智能的端到端自动驾驶!

团队介绍

上海人工智能实验室坐落于美丽的徐汇滨江,这里即有学术大牛具体指导实习生、刚入职的校招生;也适合工作多年的社招大佬在这里充分展现自己的价值。我们坚信在这里能做出solid impact的工作、对标国际一流实验室成果。

TCP工作由上海人工智能实验室自动驾驶感知算法团队PerceptionX完成。自动驾驶团队OpenPerceptionX致力于探索前沿的学术界与工业界感知、融合、端到端算法,团队研究研究方向包括但不限于视觉感知融合(BEV Perception)、多模态感知算法、自动驾驶大模型、感知决策一体化、决策智能、车路协同与多车智能等。感兴趣同学请联系小编刘礼同学 :liuli@pjlab.org.cn,或者加入我们的QQ社群:250154442,一起探索感知的魅力。

参考

[1] https://github.com/commaai/openpilot

[2] https://arxiv.org/abs/2108.05805

[3] https://arxiv.org/abs/2203.11934

[4] https://arxiv.org/abs/2104.09224

[5] https://arxiv.org/abs/2108.08265

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgacijf
系列文章
更多 icon
同类精品
更多 icon
继续加载