作者 | 论文推土机 编辑 | 自动驾驶之心
原文链接:https://zhuanlan.zhihu.com/p/720354857
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
PPAD: Iterative Interactions of Prediction and Planning for End-to-end Autonomous Driving,Zhili Chen1† , Maosheng Ye1 , Shuangjie Xu1 , Tongyi Cao2 , and Qifeng Chen1B。文章最大的创新点在于采用了iterative的prediction and planning的网络架构,而不是UniAD或者VAD这类one shot motion planning一次出结果。类似的prediction and planning interleaved 架构的方案还有DTPP, QCNet和GameFormer, 这俩方法的思路也是“recurrently model the trajectory prediction task. Given motion planning is a computational problem that finds a sequence of valid trajectories”。从直觉上讲这种多次交互的过程更符合agents and ego相互影响相互引导的过程。
我对当前learning based的方案在处理以上问题中的理解:
对于prediction and planning任务,他们之间在时序上具有很强的交互性和因果关系,直接卷ego query and motion query做个cross attention就能很好解决prediction and planning问题,那说明learning based 方案确实很强,也说明不依赖人类知识的引导,网络能学到一切。但看来事实并非如此。特别是UniAD, bev query传给所有模块,实现了全面东北乱炖,相比之下VAD至少信息传递上更加清晰,另外Para drive告诉我们这种结构还可以更简单。
另一方面,当前的各个端到端方案非常依赖imitation loss,在Fighting copycat agents in behavioral cloning from observation histories, NIPS 2020这个里面,说到copy cat现象,里面说到当满足以下两个条件时,模仿策略在访问过去的观察结果时会出现“copycat”问题:(i)专家行为随时间的变化具有很强的相关性,以及(ii)过去的专家行为很容易从观察历史中恢复。完美解释了我们当前端到端遇到的问题,第一个我们正在解决的问题具有极强的时序交互性,第二个我们依赖开环检测,ego status让我们学到了捷径,开环检测隐藏了潜在问题。
如果说真的网络能学一切,我提几个问题:
如果数据足够多,以及分布足够广泛,质量足够高,是不是在这个前提下,网络确实能学到一切?
如果由于prediction and planning交互关系和因果关系非常复杂, 当我们把网络设计的足够复杂的时候是不是能学到该学的东西?如果网络做的这么复杂,decoder真的能decode出来吗?
有一个流派diss人类知识的引导在深度学习中会让网络产生偏差, 认为应该让网络自己去学该学的,按照这个思路我们解决任何问题就是所有信息丢给网络啥也不管出一个结果即可?
关于以上个人观点,大家可以充分讨论讨论,文章的思路其实很清晰,就简单记录一下,abstract如下:

架构如下图所示:

核心思想就是不要一次性把ego and agents以及环境的信息全部塞给encoder decoder,寄希望于网络全给你学会了。本文的做法是将这个prediction-planning的模块变成互相多次迭代计算的过程。也就是原文中说的“the Prediction-Planning Module interleaves the processes of the agent motion prediction and the ego planning for N times.”
framework

Iterative Interactions of Prediction and Planning


这里的思路就是“ From a more global perspective, the agents at a larger range provide more extensive information on traffic flow, which is essential in long-term trajectory planning”,所以我们一定得看尽量远的agents, 不过由于看的太远可能会让我们失去关键信息,所以这里还通过了一个分级的mask起到信息聚焦的作用。此外可以看到上面公式中agents query中的k说明我们是针对每个模态的agents分别和ego query进行cross attention的。最后把ego query组合到一起:

卷完ego query就轮到map query, 作者强调了uniad, vad对map信息使用过于粗暴:“. They overlook the complexity of the evolving motion dynamic and overrate that the ego can plan precisely in the longer term by a single interaction with the map information.”就是说自车的long term planning是很难通过简单的和map query的一个cross attention学的到的,这很难让网络真的学到地图环境的复杂信息。所以一样的, 我们再次采用刚才卷ego query的方法,分级信息聚焦:

接下来就是卷bev query. 作者先指出了uniad的在使用bev feature上面的问题:“There are several drawbacks in UniAD: 1) occupancy grids consume large memory considering the whole scene's range. 2) UniAD failed to build the explicit interactions with the grid map. Therefore, we propose the BEV interactions that dynamically query the surrounding environment for each possible future step.”第一个occ grid非常占用内存,此外uniad没有显式的构建出map和ego and agents之间的interaction. 本文的做法通过一次卷的方式,每次只去聚焦一类信息,直觉上感觉更好,具体是不是这个意思就得看实验结果了。然后作者这里提到,虽然前面的信息卷到足够多的东西了,但是我们为了获得更细粒度的东西,还是要卷一次bev feature:



上面提到的分级的attention机制,就是在做cross attention的时候只对本车附近的区域位置进行cross attention从而达到信息聚焦的作用:

最后是loss的设计,和VAD几乎一致,关于环境的loss:

关于constraint loss:

以及imitation loss:

total loss是上面的求和,这里还有一个noisy loss, 因为前面还有一个noisy trajectory的设计,训练中引入了noisy trajectory:

这里要强调一点的是,在collision loss中,因为agents是多模态的,所以这个loss考虑了所有agents的带概率的可能模态"considers the potential collision of all the agents' motion modalities instead of only computing the loss on the agents' most confident mode"。这种对uncertainty的处理还是略显简单。问几个简单的问题:
考虑所有可能性,不就只能出一个over conservative的结果了吗?搞深度学习决策规划的,是怎么处理环境,agents的uncertainty,以及如何让plan做到risk aware的?深度学习中的risk and uncertainty awareness是如何建模的?
这个total loss中的参数设计,collision loss并没有占到主导地位,是不是意味着规划出来的轨迹连基本的collision avoidance都做不到?咱先不聊轨迹像不像人,深度学习决策规划是如何保证轨迹至少是安全的?
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵