在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

  • 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:002157

评论

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

基于MySQL数据库,Redis缓存,MQ消息中间件,ES搜索引擎的高可用方案解析

Java永远的神

Java 数据库 redis ES 消息中间件

HarmonyOS分布式协同演奏技术实现路线(Java)

程序员啊叶

Java 编程 程序员 架构 java面试

六面蚂蚁金服,唬住了面试官要了30K;其实Java面试也没那么难

程序知音

Java 程序员 后端技术 秋招 Java面试八股文

手慢无!阿里亿级流量高并发系统设计核心原理全彩笔记现实开源

Java全栈架构师

Java 面试 程序人生 分布式锁 架构师

一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?

鳄鱼视界

数据中台建设(五):打破企业数据孤岛和提取数据价值

Lansonli

数据中台 7月月更

蓦然回首,“工厂、构造、原型”设计模式,正在灯火阑珊处

掘金安东尼

JavaScript 前端 7月月更

4位资深专家多年大厂经验分享出Flink技术内幕架构设计与实现原理

程序员啊叶

Java 编程 程序员 架构 java面试

如何写一份高可读性的软件工程设计文档

C++后台开发

数据库 软件工程 后端开发 C/C++后台开发 C/C++开发

CMake库搜索函数居然不搜索LD_LIBRARY_PATH

华为云开发者联盟

后端 开发

真香!180页100+题15W+字解析的《Java高级面试指南》,果断收下

程序员啊叶

Java 编程 程序员 架构 java面试

备战金九银十!2022面试必刷大厂架构面试真题汇总+阿里七面面经+架构师简历模板分享

Java永远的神

Java 程序员 面试 程序人生 简历模板

十月阿里社招Java面试题:数据库+分布式+高并发+JVM+Spring

程序知音

Java 阿里巴巴 程序员面试 后端技术 八股文

《SpringBoot 手册》:国际化组件 MessageSource

看山

springboot MessageSource

[ Kitex 源码解读 ] 熔断机制是如何实现的

baiyutang

Go 微服务 微服务架构 kitex CloudWeGo

五面阿里,终拿offer,不明白为什么面试官总喜欢问Java这种问题

程序知音

Java 阿里 后端技术 八股文 Java面试八股文

太牛了,百度这份开发手册几乎涵盖了Spring Cloud所有操作

程序猿阿宇

架构 java程序员 java面试 秋招 程序员‘

只分享这一次!阿里软件架构师深入底层手写JDK源码

程序猿阿宇

架构 Java 面试 大厂技能 后端技术 秋招

备战金九银十,两份JAVA面试题2022最新整合版,祝你脱颖而出

王小凡

Java MySQL spring 面试 springboot

横向对比5种常用的注册中心,无论是用于面试还是技术选型,都非常有帮助

程序员小毕

Java 程序员 面试 微服务 后端

上天入地Hadoop——使用高性能分布式技术完成大数据处理任务

程序猿阿宇

大数据 架构 Java 面试 java程序员 编程、

京东发布这份SpringBoot实战手册带你从0手动搭建企业级商城项目

程序猿阿宇

程序员 面试 java程序员 Spring Boot CLI 秋招

腾讯被裁,转头去字节!Java后端核心面试题在手,怎能进不去大厂

程序员啊叶

Java 编程 程序员 架构 java面试

大厂面试突击必备:“网络编程”高频八连击,扛得住吗?

程序员啊叶

Java 编程 程序员 架构 java面试

历时两月,终拿字节跳动offer,算法面试题分享「带答案」

程序知音

Java 字节跳动 算法 程序员面试 八股文

时序数据库在船舶风险管理领域的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

Kubernetes应用管理深度剖析

Bob

云原生 容器化 后端技术 Kubernetes 集群

干货来袭!2022阿里巴巴全新出品Spring全家桶全栈笔记(终极版)奉上

程序员小毕

Java spring 程序员 面试 微服务

想用K8s,还得先会Docker吗?其实完全没必要

程序员啊叶

Java 编程 程序员 架构 java面试

我给大家免费公开五份阿里Java架构师学习手册!助力金九银十

程序猿阿宇

架构 Java 面试 大厂面试 大厂技能 秋招

难道Redis真的变慢了吗?

程序员啊叶

Java 编程 程序员 架构 java面试

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