精彩回顾 | 关于 Apollo 5.0 障碍物行为预测技术分享

原文链接: https://gitbook.cn/m/mazi/activity/5d496f8dd3ae5f127aa0f601?utm_source=bx0903

障碍物行为预测是无人驾驶系统的核心模块之一。预测模块承接上游感知模块,结合高精地图和主车的定位信息,对周边障碍物的未来运动情况进行预测,帮助主车提前作出决策,从而降低交通事故的发生率,在无人驾驶系统中发挥着承上启下的关键作用。

在百度 Apollo 自动驾驶开源平台中,障碍物行为预测分为车辆轨迹预测和行人轨迹预测两大类。在车辆轨迹预测中,分为意图预测和速度预测两个过程。意图预测根据不同的场景,通过深度学习神经网络给出各行为意图的概率。速度预测考虑与主车的交互,运用采样+代价函数选择的方法,给出合理的速度预测。

此次,我们邀请到了百度 Apollo 平台预测方向技术负责人许珂诚,来分享 Apollo 5.0 中开放的新技术。

  1. 路口场景预测模型

  2. 语义地图预测模型

  3. 基于交互的预测模型

  4. 行人预测模型

许珂诚,复旦大学数学专业本科,美国德克萨斯大学大学奥斯汀分校计算数学硕士,主要方向为机器学习。2017 年 3 月加入百度,参与 Apollo 1.0 至 5.0 的开发工作至今,主要负责障碍物行为预测方向的研发工作。

很多同学都是慕名来参加许老师的线上分享。

精彩回顾 | 关于 Apollo 5.0 障碍物行为预测技术分享_第1张图片

当天晚上的学术交流特别火热,同学们关心的话题络绎不绝,不信你往下看

问题摘要:

  • 现在对于车辆和行人预测的时间分别是多少,随着时间增长,轨迹预测的置信度会有怎么样的下降?比如说车辆在 2s 内的轨迹预测可信度较高,2s 后大概下降到 80% 等等。

  • 预测和规划都存在行为决策和轨迹规划的概念,那么预测中的意图预测和规划的行为决策如何复用?两者的轨迹规划又是如何去复用?还是说两者算法没有相同性独立开发?

  • 目前 Apollo 对意图和轨迹预测的评价指标是什么?可以达到什么效果?

  • 现在在什么场景会使用交互式预测,通常交互式预测比较微妙,你们是如何去标注 Ground Truth 的?

  • 如何处理神经网络预测意图可能导致的错误?通过采集专门的场景数据还是仿真解决?

  • 轨迹预测模型的在线处理速度(计算时间)可以达到 10hz 吗?通过历史数据可以准确预测到多到长时间的轨迹?

  • 文章中提到的对车道线进行编码,是否是指对车道的静态信息(比如高速/路口/车道位置)等进行编码?还是说会包括车道上的动态障碍物信息(比如说拥挤程度)?后者应该属于文中提到的“第三类输入特征”,但这个在后文“交通路口”才明确提到。

  • 假如行为预测的上游模块给的信息并不完全准确,比如错误的感知结果。那么在行为预测的阶段,这样的夹杂错误结果的数据,应该怎么应付呢?

  • 请问 Apollo 有没有关于行人轨迹预测的实际上车 Demo,不是那种基于数据集的线下测试?

  • 请问是如何建模真实车辆的动力学和线控的?比如车辆对加速度和转向指令的时延,以及在倒车时的动力有限,应该如何做标定和参数化?

  • 车辆轨迹预测的话有没有和 FCW 或者 AEB 结合(结合的话是多久),是针对于制动的预测(不会改变本车轨迹,只决定是否制动)还是基于威胁评估/碰撞风险的预测(如果是这个,大概预测几秒)?

  • 请问预测的结果是几条带有各自概率的曲线,还是一系列的概率点分布?还有这些结果在规划层应该怎么去应用?

  • 请问未来车联网技术发展后,车辆行驶路径可以低时延且可靠地互相告知,届时车辆预测技术是否就失去了意义?

  • 请问车辆状态预测为什么不用车灯信息?

  • 目前预测轨迹点的生成是基于模型的,如何思考及运用神经网络/数据驱动的方法来生成预测的轨迹点?

  • 文章中主要分享了行人和机动车的预测,请问对于自行车、三轮车是如何预测的?(因为感觉路面上更多情况是自行车三轮车不遵守交通规则去行走)

  • 当前的算法,尤其是行人轨迹预测是否有对比过 Starnet,SR-LSTM 等 Sota 算法,对比效果如何?骑行人轨迹预测与车辆相同吗?为什么机动车预测用时序 MLP 而不是 LSTM,是出于怎么样考虑的?Waymo 的道路结构是以掩码图片作为输入的,有与之对比过吗?

  • 我看到 Apollo 里面是给出每一个 Obstacle 的所有可能的 Lane Sequences 并给每 Sequence 推理出一个概率,这个概率值在标注的时候如何标注?按照我的直觉,无法给一个Sequence 一个绝对的概率值,这个概率值应该是和当前帧其他可能的 Sequences 比较后得出来的,但是感觉 Apollo 在 Evaluator 层输入感知机的 Feature 仅仅是一条 Sequence 相关的 Feature?输入多层感知机的特征是把过去 N 帧的历史特征放进一个一维的 Array 然后输入网络吗?还是只输入当前帧的 Sequence 特征?

  • 请问你们有没有定量对比过车辆意图预测的准确率,大概多少?还有如果我们想自己开发意图预测并应用到程序中应该怎么做?

  • 当感知障碍物的位置左右抖动时,要如何消除该种情况带来的间断性变道预测?

  • 对于预测模块而言,应该如何分类无人车驾驶的不同场景?

  • 预测模块的上游是感知,请问预测对于上游感知模块给出的结果,是否进行滤波或者异常检测?如果有,具体怎么做的;如果没有感知错误导致的预测错误是否会传递给下游决策规划等模块去处理?

  • 现在存在利用深度学习进行端对端的输出,将传感器的点云图信息作为输入,直接输出决策,跳过了预测这个过程,请问这是未来的一个趋势吗?做车辆行为和轨迹预测是否有必要?

  • 如果和 FCW、AEB 相结合,当预测到有车辆与本车轨迹相交时(即可能发生碰撞)是不是需要判断是否启动 AEB 或者是变道躲避?如果是那么这个决策层该如何实现?

  • 现在用的预测方法与高精度地图是强相关,如果不用高精度地图,可不可以做预测?

  • 对于动态无规律运动的障碍物,一般用什么算法来拟合收敛其运动轨迹?

  • 对于只使用激光数据目标聚类时得到的物体轮廓不全,目标朝向不准确等有什么好的算法或策略进行补偿,或做跟踪,然后进行数据预测比如卡尔曼滤波等这个思路可以解决这个问题?

  • 学术界预测多在 5s 以内,是否考虑做 10s、15s 的长时间预测,类似以 Goal 为方式的预测?

  • 请问轨迹预测之后对碰撞风险或者其他意外行为风险(异常事件等)进行评估吗?如果有的话预测几秒?评估指标是什么?

  • 多条轨迹输出时的评价标准是怎么考虑的、怎么构建 Ground Truth 的?

  • 非深度学习预测的方法主要有哪些?应用非深度学习方法在直行和路口的场景怎么样进行预测能否分别大概介绍一下?

  • 预测模块大概输出哪些具体信号给决策模块、轨迹规划模块?能否大致介绍一下?

  • 请问预测一辆车是否会 CutIn/CutOut 需要给模型哪些输入?深度学习最终预测结果和比如基于规则的方法是否有定量的比较,比如正确率提升多少或者判断时间可以提前多少秒?

  • 请问今后预测模块是否能脱离高精地图?

  • 请问如果 Camera 失效,预测怎么持续?是只输出融合预测,还是单传感器的都有做?

  • 请问一下预测的输入是多个历史时步的数据吗,像阿波罗一般几个时步,采样频率是多少,数据在做标签的时候,是直接以未来的轨迹作为标签吗?

  • 可否介绍下 Apollo Prediction 数据采集以及标注的过程?

  • 请问在行为预测网络训练过程中 Apollo 只依赖了上游感知模块识别得到的数据作为输入,还是也单独用其他数据集的数据进行了效果验证?有没有好的适合用于行为预测研究的数据集可以推荐?

  • 对于 Social Pooling 这样的机制有过验证吗?我看有的 Paper 写着 Constant Velocity Model 表现都比 Social LSTM 之类的 Sota 模型好,而且这个 Social Pooling 对结果根本没有正面作用?

  • 请问预测的未来发展方向是什么?

  • 考虑车辆相互作用这块,是在预测目标车辆的意图时考虑,还是在最后轨迹生成的时候考虑?

  • 行人轨迹预测离线数据库采用的是哪些?车辆预测采集的数据视角需要转换到全局坐标吗?

  • 请问关于预测模块有没有发表相关文章详细解读?在 Apollo 5.0 中有没有开放相关代码?

  • 刚才说到预测模块的准召都达到了 90%。想了解一下,对于无人车能真正稳定商用,预测模块准召还需要提高多少,算法效果上除了准召有没有需要重点加强的方面?

  • 在直道场景,Apollo 目前在进行目标车辆轨迹预测时,有没有考虑车辆直接的相互作用,有的话是利用什么方法或模型呢?

  • 对于基于规则和神经网络的预测方法的优劣怎么看?

  • 请问可以预测的环境范围是多大?

  • 激光数据聚类结果怎么做跟踪?

  • 轨迹预测的好坏,有没有量化的指标?

  • Apollo 的预测需要至少累计几帧历史数据?在那之前车辆或者行人的预测有别的方法吗?

  • 激光数据目标检查目前百度是用神经网络做的吗?目前我个人感觉神经网络对于工程落地太麻烦,运算量有大,为何不用聚类算法处理激光数据,或可以推荐几种好的激光数据目标检查算法(不用神经网络的)吗?

  • 目前车辆的预测都是结合车道信息,在没有车道信息的地方(比如空旷的场地)行驶是基于怎样的模型预测的?

  • 对于 cut_in 这种没有按照车道行走的行为,如何进行采样?

  • 评估一条 Lane Sequence 的时候,现在的做法没有考虑其他 Lane Sequence 的存在,为什么不同时对几条 Lane Sequence 编码到同一个特征向量中?

  • 如何预测突然出现一两帧的障碍物,直接匀速直线运动吗?

  • 请问如何处理货车上掉下来的箱子这种问题?

  • 对于预测模块中的几个神经网络模型,需要多少的训练数据才可能达到比较理想的效果?

  • 请问百度的预测模块在路测过程中导致的 badcase 大约占所有 badcase 的比例是多少?

  • 样本标注过程,状态切换点是如何确定的,例如某段换道估计,从哪个点开始标注为换道?是使用同一点量化规则还是需要标注人员手工确定?

  • 预测模块给决策会输出预测轨迹各点的概率吗?

  • 轨迹预测中,道路限速牌,交通灯对障碍物的速度及加速度的影响是如何考虑的?

  • 利用 Game Theory 建模相互作用的话,有没有比较好的方法来求解多车博弈问题?

  • Apollo 的预测代码和百度过 T4 的代码差别大吗?

  • 请问如果预测结果错误,如何确定是预测算法的问题,还是上游感知端的问题?或者说,预测模块对于上游感知数据有什么样的需求?

  • 在交互式路径预测中,交互是怎么体现的,貌似没有看到什么地方用到了本车的决策信息?

问:现在对于车辆和行人预测的时间分别是多少,随着时间增长,轨迹预测的置信度会有怎么样的下降?比如说车辆在 2s 内的轨迹预测可信度较高,2s 后大概下降到 80% 等等。

答:现在对于车辆和行人的预测时间都是 8 秒。关于轨迹预测的置信度,对于车辆而言,目前我们给出的是行为层面的置信度:在普通直路场景,就是障碍车走某条车道的置信度,在路口,就是从某个出口出去的置信度。对于行人而言,轨迹预测置信度就是轨迹点层面的,我们通过模型学习得到每个轨迹点的方差值,然后用高斯分布来表示。

问:预测和规划都存在行为决策和轨迹规划的概念,那么预测中的意图预测和规划的行为决策如何复用?两者的轨迹规划又是如何去复用?还是说两者算法没有相同性独立开发?

答:行为层面,预测通过模型对障碍物的各种可能行为估计一个概率,而规划模块中,行为决策是确定的。轨迹层面,预测模块在轨迹生成方法上有借鉴一些规划算法的思想,比如交互式预测模型。两个模块在方法上有一些借鉴,但因为处理的问题不同,所以并没有直接复用。

问:目前 Apollo 对意图和轨迹预测的评价指标是什么?可以达到什么效果?

答:行为层面,直接用准确率来衡量,目前是可以达到 90% 以上的。轨迹点层面,我们用 1.5 米去召回一个真值,用平均每条预测轨迹的召回率来作为准确率,目前 Apollo 短期轨迹点的召准率均能达到 90%。

问:现在在什么场景会使用交互式预测,通常交互式预测比较微妙,你们是如何去标注 Ground Truth 的?

答: Apollo 5.0 版本中,交互式预测主要用在路口场景中。Ground Truth 用历史路测数据中的障碍物真实轨迹和主车的真实轨迹进行标注。

问:如何处理神经网络预测意图可能导致的错误?通过采集专门的场景数据还是仿真解决?

答:我们通过采集专门的场景数据来处理。

问:轨迹预测模型的在线处理速度(计算时间)可以达到 10hz 吗?通过历史数据可以准确预测到多到长时间的轨迹?

答: Apollo 的预测模块线上处理时间是 10hz。目前预测 8 秒轨迹。

问:文章中提到的对车道线进行编码,是否是指对车道的静态信息(比如高速/路口/车道位置)等进行编码?还是说会包括车道上的动态障碍物信息(比如说拥挤程度)?后者应该属于文中提到的“第三类输入特征”,但这个在后文“交通路口”才明确提到。

答:对车道线的编码指的是车道的静态信息。我们通过图像方式或者 Social Attention 模型对障碍物信息也有编码。

问:假如行为预测的上游模块给的信息并不完全准确,比如错误的感知结果。那么在行为预测的阶段,这样的夹杂错误结果的数据,应该怎么应付呢?

答:对于预测而言,我们主要处理障碍物速度朝向方面的不准确性。应对方法主要是结合车道信息,障碍物前后几帧的位移偏差来做后修正。

由于篇幅有限

更多更全的答疑记录直接扫描下方二维码即可

精彩回顾 | 关于 Apollo 5.0 障碍物行为预测技术分享_第2张图片

点击「原文链接」也可以哦~

你可能感兴趣的:(精彩回顾 | 关于 Apollo 5.0 障碍物行为预测技术分享)