写点什么

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

  • 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]

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

2021-06-27 08:001583

评论

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

Leetcode 题目解析:211. 添加与搜索单词 - 数据结构设计

程序员架构进阶

LeetCode Trie 算法题 10月月更

阿里IM技术分享(五):闲鱼亿级IM消息系统的及时性优化实践

JackJiang

架构设计 即时通讯 IM

腾讯云 CIF 工程效能峰会顺利开幕,CODING 发布系列新产品

CODING DevOps

Orbit Nocalhost Compass 研发度量 项目协同

Agora 教程丨如何实现15mins自主搭建一个教育平台?

声网

人工智能 大数据

03-简单工厂模式

千羽的编程时光

设计模式

阿里云盘:慌了....

Jackpop

这款手机浏览器,简直开挂了....

Jackpop

一张通往2030的“高铁票”:从无线网络到智能世界

脑极体

砀山“区块链+农业” 推动产业“提档升级”

CECBC

Github爆款!Aura v2.0.0正式版来了…

Jackpop

数字货币“透明性"将刺激中国富人对身份的需求!

CECBC

架构训练营模块一作业

小何

架构实战营

04-工厂方法模式

千羽的编程时光

设计模式

热点浅谈:与传统IT开发相比,低代码平台有何优势?

优秀

低代码

官方线索|1024“代码急救室”活动来袭!

Changing Lin

1024我在现场

一场穿越千年的智能矿山“梦游记”

脑极体

在线分数约分计算器

入门小站

工具

05-抽象工厂模式

千羽的编程时光

设计模式

行动造就未来,区块链给农产品用上“数字身份证”

CECBC

linux之tar使用技巧

入门小站

Linux

MECE法则在职场中的常见用法

石云升

MECE 职场经验 10月月更

元宇宙:区块链时代的代名词

CECBC

Prometheus 查询操作符(三) 聚合运算符

耳东@Erdong

Prometheus 10月月更

新手 Gopher 如何写出更健壮的 Go 代码

baiyutang

golang 10月月更

⚓⚓⚓| 扬帆!起航!让我们去学习Shell语言 | ⚓⚓⚓

Regan Yue

Linux Shell 10月月更

云原生训练营 20211017- 作业2

笑春风

应区块链而生的元宇宙

CECBC

第一周学习总结

小何

【设计模式】第七篇 - 建造者模式-麦当劳套餐

Brave

设计模式 建造者模式 10月月更

官方线索|1024 源创会回归!

Changing Lin

1024我在现场

docker 系列:底层知识

yuexin_tech

Docker

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