自动驾驶中,轨迹预测一般位于感知模块的后端,规控的前端,为承上启下的模块。输入为感知模块提供的目标track的state信息、道路结构信息,综合考量高精地图信息、目标之间的交互信息,环境的语义信息及目标的意图信息,对感知到的各类目标做出意图预测(cut in/out、直行)以及未来一段时间的轨迹预测(0-5s不等)。如下图所示。
ADAS系统需要对周围环境信息有一定认知能力,最基本的水平是要识别环境,再上一层则需要理解环境,而再上一层则需要对环境进行预测。在对目标进行预测后,规控便可根据预测信息进行自车的路径规划,并做出决策对可能出现的危险情况进行制动或发出告警,这便是轨迹预测模块存在的意义所在。
轨迹预测可分为短期预测与长期预测。
对于长期的轨迹预测有两个挑战:
影响做长期轨迹预测的不确定性主要来源于三个方面:
对轨迹预测系统应该考虑的四个问题:
如下图为bosch公司发表综述论文[2]中的分类方法。
轨迹预测具体会涉及到哪些通用算法呢?
那轨迹预测可以使用哪些具体信息呢?
当前学术界轨迹预测方面的论文越来越多,主要原因还是业界没有行之有效的方法。
以下列举业界论文:
BMW:物理模型+意图预测(learning-based)。使用启发式的方法集成专家知识,简化了交互模型,在意图预测的分类模型中加入了博弈论思想[3]。
BENZ:主要为意图预测的相关论文,使用的是DBN[4]。
Uber:LaneRCNN[5]。
Google:VectorNet[6]。
Huawei:HOME[7]。
Waymo:TNT[8]。
Aptive:Covernet[9]。
NEC:R2P2[10]。
商汤:TPNet[11]。
美团:StarNet[12]。行人。
Aibee:Sophie[13]。行人。
MIT:Social lstm[14]。行人。
中科大:STGAT[15]。行人。
百度:Lane-Attention[16]。
Apollo:可以看如下博客作为参考。
https://www.cnblogs.com/liuzubing/p/11388485.html
Apollo的预测模块接收感知、定位以及地图模块的输入。
1.首先做了场景拆分,分为了普通巡航道路以及路口两个场景。
2.而后对感知得到的目标做重要性划分,分为可以忽略的目标(不会影响到自车)、需要谨慎处理的目标(可能影响到自车)以及普通目标(介于二者之间)。
3.而后进入Evaluator,本质上就是一个意图预测。
4.最后进入predictor,用于预测轨迹生成。对于静止目标、沿道行驶、freeMove、路口等不同场景做不同的操作。
(1) NGSIM
此数据集是美国FHWA搜集的高速公路行车数据,包括了US101、I-80等道路上的所有车辆在一个时间段的车辆行驶状况。数据是采用摄像头获取,然后加工成一条一条的轨迹点记录。其数据集为CSV文件。数据没有太多噪声。
更多是整体调度层面的信息,如道路规划、车道设置、车流量调节等。车辆运动学状态需要进一步抽取。处理代码可使用下面的github。
https://github.com/nachiket92/conv-social-pooling
(2) INTERACTION
此数据集为加州大学伯克利分校机械系统控制实验室(MSC Lab)与来自卡尔斯鲁厄理工学院(KIT)和国立巴黎高等矿业学院(MINES ParisTech)的合作者建立了一个国际性、对抗性、协作性的数据集(INTERACTION)。它能准确再现不同国家的各种驾驶场景中道路使用者(如车辆、行人)的大量交互性行为。
http://www.interaction-dataset.com/
(3)apolloscape
此为Apollo的公开自动驾驶数据集,其中有为轨迹预测提供的数据。内部文件为2fps的1min数据序列,数据结构包括帧数ID、目标ID、目标类别、位置xyz,长宽高信息以及heading,其中目标类别包括小车、大车、行人、自行车/电动车以及其他。
https://apolloscape.auto/trajectory.html
(4) TRAF
此数据集聚焦于高密度的交通状况,此状况可以帮助算法更好地专注在不确定环境下人类驾驶员行为分析。数据每帧分别包含约13辆机动车辆,5名行人和2辆自行车
https://gamma.umd.edu/researchdirections/autonomousdriving/ad
在链接中有很多使用此数据集的轨迹预测项目。
(5) nuScenes
重磅来了,此数据集是2020年4月提出。其在波士顿和新加坡这两个城市收集了1000个驾驶场景,这两个城市交通繁忙而且驾驶状况极具挑战性。其数据集具有相关论文,可以看看,更好了解此数据集。
https://arxiv.org/abs/1903.11027
此数据集中有预测相关的比赛,可以关注。
https://www.nuscenes.org/prediction?externalData=all&mapData=all&modalities=Any
当前主要使用的评估指标为几何度量。
几何度量有很多个指标,主要使用的是ADE、FDE、MR。
ADE为均一化欧式距离。FDE为最终预测点之间的欧式距离。MR为未中率。有很多不同的名字,主要就是设一个阈值,预测点迹之间欧式距离低于这个预测就记为命中,高于这个阈值就记为未命中,最后计算一个百分比。
几何度量是衡量预测轨迹与实际轨迹相似性的重要指标,可以很好是代表精度。但是以轨迹预测存在的意义来说,仅仅评估精度是没有意义的。还应有概率度量,用来评估不确定性,尤其是对于多模态输出分布;还有任务层面度量,鲁棒性的度量以及效率的评估这些。
概率度量:可以使用KL散度、预测概率、累积概率来作为概率度量。比如NLL, KDE-based NLL[17]。任务层度量:评估轨迹预测对后端规控的影响(piADE,piFDE)[18]。鲁棒性:要考虑在预测之前,观测到的部分轨迹的长度或持续时间;训练数据的size;输入数据采样频率和传感器噪声;神经网络泛化、过拟合及输入利用率分析;感知模块送入的输入如果有问题是否保证功能正常等等方面的因素。效率:要考虑算力的。
如下图所示,此论文的主要考量为基于真值(蓝色),灰色的目标车预测的紫色与绿色轨迹如果使用几何度量是具有相同的ADE与FDE的,但是不同的预测方式对自车的planning会造成影响,而现在没有这种评估任务层级的度量,于是他们提出piADE与piFDE来做这个事。
问题1:三种不同的轨迹预测方法:基于物理模型、基于学习、基于规划各自应用场景在什么地方,有什么优缺点呢?
不同的建模方法可以结合并利用不同类型的上下文信息。利用目标的上下文线索、动静态环境可以扩展出所有建模方法。然而,不同的建模方法在结合不同类别的语义信息时表现出不同程度的复杂性和效率。
1.基于物理模型的方法
适用场景:目标、静态环境、动力学模拟可以被显式转移方程建模。
优点:
缺点:
这样的缺点导致使用物理的方法限制在短期预测或者obstacle-free的环境。
2.基于学习的方法
适用场景:适合于当前环境具有复杂的未知信息(例如具有丰富语义的公共区域),并且这些信息可以用于比较大的预测范围。
优点:
缺点:
3.基于规划的方法
适用场景:在终点定下来了且环境地图可获得的场景,有很好的表现。
优点:
缺点:
基于规划的方法本质上是map-aware 与 abstacle-aware,很自然地使用语义线索进行扩展。通常情况下,他们会将情境复杂性编码到目标/奖励方程中,但这可能无法恰当地整合动态线输入。因此,作者必须设计具体的修改,将动态输入纳入预测算法(Jump Markov Processes、local adaptations of the predicted trajectory、game-theoretic)。与基于学习的方法不同,目标输入很容易被合并,因为前向与逆向的规划过程都基于同一个目标动态模型。
问题2:轨迹预测的问题现在已经解决了吗?
轨迹预测的需求很大程度上取决于应用领域和其中的特定用例场景。短期内可能不能说轨迹预测这个问题已经解决了。以汽车行业举例,因为有专门的标准规定,定义了最大速度、交通规则、行人速度和加速度的分布,以及车辆舒适加速/减速率的规范,其在制定需求和提出的解决方案方面似乎是最成熟的。可以说对于智能汽车的AEB功能,解决方案已经达到了允许工业化生产消费产品的性能水平,对于其所需用例已经解决。至于其他用例,则需要在不久的将来对需求进行更多的标准化和明确的表述。并且对于鲁棒性与稳定性还需要演进。
所以在回答轨迹预测是否已经解决这个问题之前,最起码应该把标准定了。
当前对于机器人领域来说
当前对于自动驾驶领域来说:
问题3:当前衡量轨迹预测性能的评估技术是否足够好?
当前对于预测算法缺乏系统性的方法,特别是对于考虑上下文输入以及预测任意数量的目标的轨迹预测方法。
现在大多数作者仅仅使用几何度量(AED, FDE)作为衡量算法好坏的指标。然而对于长时间预测,预测通常是多模态的,并且与不确定性有关,对此种方法的性能评估应该使用考虑到这一点的指标,例如从KLD得到的负对数似然或对数损失。
此外也需要概率度量,其可以更好地反映了人体运动的随机性以及感知缺陷所涉及的不确定性。
还有鲁棒性的评估,需要考量在感知端出现检测错误,跟踪缺陷,自我定位不确定性或地图变化此类场景时系统的稳定性。
同时当前所使用数据集,虽然包含的场景十分的全面,但是这些数据集通常是半自动注释的,因此只能提供不完整和有噪声真值估计。此外,在一些需要长期预测的应用领域中,轨迹长度往往不足。最后,数据集中的目标之间的交互通常是有限的,例如在稀疏的环境里面,目标之间很难有影响。
综上:为了评价预测质量,研究者应该选择更复杂的数据集(包括非凸的障碍、长轨迹和复杂的interaction)以及完整的度量指标(几何+概率)。比较好的方法是根据不同的预测时间、不同的观测周期,不同的场景复杂度设置不同的精度要求。并且应该有鲁棒性评估以及实时性评估。此外应该有相关的指标可以衡量ADAS系统对后端影响程度的指标[18]以及衡量对危险场景敏感性的指标[1]。
来自于[2]中的讨论,此处为引用。
当前的趋势时用更复杂的方法去超越使用单一模型+KF的方法
方向:
综上:简洁来说就是上下文信息用的要更深入、最好对不同目标有不同行为模型、博弈论、基于更多信息做更鲁棒的意图预测、对终点的自动推断、对新环境的泛化问题、鲁棒性与可集成性。
以上是探讨自动驾驶轨迹预测技术的现状及发展趋势的详细内容。更多信息请关注PHP中文网其他相关文章!