最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

不确定性世界中的行为预测

  • 2021-06-27
  • 本文字数:3889 字

    阅读完需:约 13 分钟

不确定性世界中的行为预测

行为预测是自动驾驶系统的隐含层


实现汽车的自动驾驶被认为是我们这一代最大的工程挑战之一¹。最主要的原因之一,是自动驾驶汽车需要在复杂且多变的环境中,实现安全且舒适的驾驶行为。简单来说,自动驾驶系统的输入是通过大量传感器收集的自身及周围环境的各种信息,输出是刹车、油门、方向盘等相关的驾驶动作。


实现一个完整的自动驾驶系统,有很多种不同的方案,其中最大胆的可能是基于深度学习和强化学习,训练一个端到端的模型,即以原始的传感器数据作为输入,模型直接输出控制参数。然而这样的方案,目前还仅停留在学术探索的阶段,离实际的工程应用还比较远。



图 1. 自动驾驶系统示意图


工程实践中,一般采取分而治之的方法实现,也就是分为感知、预测、规划与控制等具有一定上下游关系的子系统。这样的划分为系统带来了比较好的可解释性,方便持续的迭代和改进。此外,这样也是符合直觉的:首先,通过感知模块得到周围环境和交通参与者的当前状态;然后,通过预测模块预判其它交通参与者未来一段时间的行为;最后,基于对环境的感知和预测,自车做出合理的决策和轨迹规划。可见,行为预测类似于一个隐含层,通过它可以衔接上下游,也就是综合当前和历史的环境信息给出对于未来的预测,为下游的决策和规划提供及时和准确的信息。


行为预测的基本方法和框架


▍1. 行为预测方法从简单到复杂的演进过程


图 2. 行为预测方法从简单到复杂的演进过程示意²


行为预测方法从简单到复杂的演进过程基本包括图 2 所示的几个阶段。其中最简单和直接的预测方法是基于运动学模型,采用外推的方法预测未来轨迹。也就是基于物体当前的运动状态(朝向、速度、加速度、角速度等),假设物体会按照某种物理规律运动(例如常速度和常角速度假定),从而推导出未来的运动轨迹。但是,这种方法对于中长期时间尺度的预测显然是不适用的。原因在于基于运动学模型的方法,只考虑了物体自身的运动学特征,并且实际物体的运动方式也很可能不符合运动学模型的假设。


所以,一种比较自然的扩展思路,就是需要引入地图的辅助和约束,例如车道线、道路可行驶区域以及道路的连接关系等几何和拓扑信息。然后,从语义的层面对物体的运动模式进行描述,例如变道、左转、直行、右转等,并通过引入一些先验假设(例如车辆会尽快回到道路中心线以及遵从道路连接关系等),最后基于拟合、差值或者优化等方法生成预测轨迹。例如图 3 所示,为了能够准确预判自车右前方摩托车从自行车道切入机动车道的行为,我们需要知道自行车道、机动车道以及花坛之间的几何关系。


图 3. 需要引入地图相关信息

才能准确理解和预测摩托车的切入行为


再更进一步,为了能够预测更复杂的交互行为,我们还需要考虑除地图以外的更多场景信息,例如红绿灯、车流、各种交通参与者之间的交互,以及基于交通规则形成的特定驾驶行为习惯。例如图 4 所示,为了正确预测自车右前方车辆的右转同时避让直行自车的行为,我们需要引入红绿灯、路权等信息以及一些先验假设(直行车辆路权高于右转车辆)。


从上面的讨论可以看到,在行为预测方法中,我们需要引入很多假设和规则。可以想象,当物体的行为不符合这些假设时,我们的预测很可能失效。因此,我们还需要引入数据驱动的方法,从真实的驾驶行为数据中,提取各种可能的行为模式,作为某种先验,帮助完善行为预测。


▍2. 行为预测的基本框架


图 5. 行为预测框架的基本思路


在预测方法从简单到复杂的演进过程中,基于行为预测问题本身的特点,其框架设计逐步形成并遵循以下基本思路:


首先,判断交通参与者大致的行为目的或者意图,例如是否会进入某个车道或从某个出入口驶进或驶出,是否有变道、左转等意图。也就是粗粒度地对意图或者目的地进行预测。具体的实现算法有多种选择,例如基于启发式规则的运动目标关联。如图 6 所示,前方对向来车突然违规驶入马路对面的停车场(高精地图有标注该区域)。为了及时预测该行为,我们可以基于该车的运动状态和场景信息,将其与停车场区域关联。


图 6. 运动目标关联:对向来车进入停车场/工厂等区域


另外,我们还可以基于机器学习模型做意图分类。例如图 7 所示,我们可以基于历史数据,训练模型识别行人的横穿马路意图。当然,这种粗粒度的行为目的或意图的预测,不一定需要在语义层面进行描述,也可以表达为地图中的某个地点或区域³。


图 7. 意图分类:行人从被遮挡区域

快速跑出并横穿马路的意图


其次,在大致目的或意图的约束下,做更详细的轨迹预测。这一步骤可以采用几何的、优化的或者基于机器学习的方法,通过生成或预测具体行驶轨迹来描述交通参与者具体如何实现该意图。


最后,对所有可能的候选轨迹进行评估,输出可能性最高的一条或若干条轨迹给下游进行决策和规划。轨迹的评估也有多种不同的方法,比如基于运动学可行性和碰撞风险,计算候选预测轨迹的代价,或者基于机器学习模型估计预测轨迹的概率。


基于以上步骤,预测模块能够在意图和轨迹层面,对交通参与者的未来行为进行描述。


行为预测的不确定性


▍1. 不确定性的刻画:基于行为规划的预测 vs. 基于机器学习的预测


基于上述基本思路,实现预测方法的过程中,最具挑战的是对人的行为的不确定性的刻画和处理。交通参与者未来的行为本质上是多模态的 。也就是说,我们观察到的实际发生的未来行为(轨迹),不一定是此刻唯一的解,尤其考虑到我们的观测是不充分的。这是预测问题与大部分感知问题根本不同的一点。所以,预测模块如何刻画这种不确定性,以及决策与控制模块如何处理这种不确定性,是实现自动驾驶的关键。


行为预测中大致可以按照两种思路来刻画不确定性。一种是规划式预测,即把预测问题变成一个对其他交通参与者的规划问题。如图 8 所示,自车右后方车辆快速超车并变道进入自车车道。考虑到其车道前方有一辆慢速大货车,为了避免追尾,其最优轨迹是通过自车与大货车中间的空档进行变道。因此,基于规划的预测能够刻画这种可能性,从而实现正确的预测。再如图 9 所示,大货车打右转向灯逆行从停车位驶出,基于该场景的识别以及转向灯,我们需要首先判断其从停车位驶出的意图,然后规划出一条合理可行的轨迹,从而自车能够及时合理避让。


当然,我们也必须考虑到,其它交通参与者未必会按照规划的最优轨迹行驶。因此,我们还需要结合另一种思路来准确预测更多可能性,也就是数据驱动的方法。我们可以从实际驾驶数据中抽象出可能的行为模式,利用机器学习、深度学习的方法来进行预测。如图 10 所示,从辅路右转进入主路的车辆,其转弯半径是有不确定性的。在大量观测数据中,我们能够发现各种不同转弯半径的驾驶行为,基于机器学习的方法,我们能够以可能行驶区域分布的方式,刻画转弯半径的不确定性,从而为自车在这种场景下减速慢行、谨慎驾驶提供信息。


 图 10. 轨迹的不确定性:车辆转弯的半径


▍2. 不确定性的处理:与行为决策的关系


假定我们能够及时准确地刻画交通参与者未来行为的不确定性,对于实现自动驾驶而言,另一个巨大的挑战是如何处理这种不确定性,尤其是涉及自车与其它交通参与者强交互的场景。当自车面对不确定性环境的时候,往往需要做出相对保守的决策,例如减速慢行,增加观测时间,使得上游感知和预测有足够的信息得到相对确定的结果,从而自车能够进一步动态地调整自身的决策。


如图 11 所示,行人从绿化带穿出,然后急转向沿路边行走。在行人从绿化带穿出的过程中,我们对其未来行为是难以预测的,无论是在意图还是轨迹层面。这也就意味着,对于该行人,我们给出的意图和轨迹预测都具有很大的不确定性(置信度低、方差大)。下游的决策模块就需要基于这样的不确定性,做出合理的自车行为决策,例如适当减速,待感知和预测结果足够置信以后再加速通过。


图 11. 不确定性的行为:行人穿越绿化带进入路面


再比如图 12 所示自车与自行车强交互的场景。对于左前方横穿马路的自行车是否会避让自车,在其明显停车之前,也是高度不确定的。考虑到其切入自车道的可能性,以及碰撞后果的严重性,自车合理的行为决策是减速避让,待其明显具有避让行为时(此时预测具有较大的确定性),再加速通过。


从以上讨论可以看出,如何准确地刻画周围环境的不确定性,并且在决策和规划层面处理好这种不确定性,是实现智能化自动驾驶系统的关键。


探索与展望


在算法层面,实现自动驾驶系统最具挑战的问题是,如何在一个高度不确定性的环境中进行安全的驾驶决策和规划。而其必不可少的一环是及时和准确地对环境的不确定性进行描述和预测。近几年来,有越来越多的学术文章给出了一些探索和尝试。总结起来,解决行为预测问题的重点、难点方向包括:


  • 特征工程:如何更好地提取、组织⁵和利用历史特征、场景特征(场景理解)、交互特征等进行预测

  • 非结构化行为的预测:如何描述和预测那些未遵循道路结构或者交通规则的交通行为,尤其是稀疏的、异常的长尾行为

  • 不确定性:如何能够以决策和规划模块方便处理的方式,及时和准确地刻画不确定性


以上这些方向的探索和突破,需要大量的数据,尤其是长尾数据的收集(例如通过滴滴网约车平台部署大量具有数据收集能力的车辆),稳定的线上、线下系统的搭建,以及能够充分利用海量数据的创新算法的研发。在探索的过程中,一点点突破的累加,能够帮助我们逐渐消除不确定性,确定实现自动驾驶的最佳方案。就像不确定性世界中的行为预测,需要在不确定性中寻找确定性。只有这样,才能最终实现任意复杂交通环境下的自动驾驶。


头图:Unsplash

作者:滴滴自动驾驶

原文:https://mp.weixin.qq.com/s/L0eJouA9Xp6lWreLlBjfSw

原文:不确定性世界中的行为预测

来源:滴滴技术 - 微信公众号 [ID:didi_tech]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-06-27 08:001365

评论

发布
暂无评论
发现更多内容

【CSS】内圆角(box-shadow、outline)

德育处主任

html5 大前端 Web CSS小技巧 28天写作

连云港:“云底座”构建智慧教育的未来图景

浪潮云

深度解读设备的“万能语言”鸿蒙系统的分布式软总线能力

华为云开发者联盟

鸿蒙 操作系统 智能设备 HarmonyOS 分布式软总线

MDF智能合约APP开发|MDF智能合约软件系统开发

系统开发

Linux:为什么性能工具需要 BPF 技术

博文视点Broadview

如何理解新技术带来的新资产类别?

CECBC

区块链

点位盘,点位盘开发,点位盘合约交易。

v16629866266

Nine Ring九环智能合约软件开发|Nine Ring九环智能合约APP系统开发

系统开发

联动链金-魔方支付体系整理

2020年终总结:回顾、反思、期待

书旅

年终总结

2021年数字货币时代加速到来

CECBC

数字人民币

基于用户画像/AB测试的产品定价

无誉

美团图数据库平台建设及业务实践

NebulaGraph

图数据库

第一周

Richard

数字货币交易所系统开发|数字货币交易所软件APP开发

系统开发

HPC on Volcano:容器在气象行业HPC高性能计算场景的应用

华为云原生团队

大数据 容器 云原生 k8s 分布式计算

一文带你搞懂从动态代理实现到Spring AOP

华为云开发者联盟

spring jdk 容器 aop 动态代理

Spring Boot 中集成ActiveMQ

武哥聊编程

Java springboot SpringBoot 2 28天写作 Activemq

AWS CDK | IaC 何必只用 Yaml

郭旭东

AWS 基础设施即代码 IaC

图说丨京东《技术重构社会供应链——未来科技趋势白皮书》

京东科技开发者

京东 智能供应链

基于机器学习的逻辑回归模型

无誉

人类为啥要睡觉?

Justin

心理学 28天写作 睡眠

懂分析、会预测,你见过这样的华为云DAS吗?

华为云开发者联盟

人工智能 sql 数据管理系统 智能运维 华为云DAS

刷屏的微信8.0(文末附安卓下载链接) | 视频号 28 天 (15)

赵新龙

28天写作

数字货币呼之欲出,但这些套路须警惕!

CECBC

数字货币

软件测试--cookie学习

测试人生路

软件测试

接到需求,你要先做哪件事?

熊斌

学习 需求分析 28天写作

Soul 学习笔记---使用 nacos 实现数据同步上篇(七)

fightingting

Soul网关

Elasticsearch document 的 _source 元数据

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器

华为云开发者联盟

数据 GaussDB 数据迁移 gds FDW

悟透前端 | ECMAScript 6的Map映射

devpoint

json 大前端 map ES6

不确定性世界中的行为预测_架构_滴滴技术_InfoQ精选文章