写点什么

Uber ATG 数据挖掘:大规模识别真实道路场景用于自动驾驶

  • 2020-07-01
  • 本文字数:4346 字

    阅读完需:约 14 分钟

Uber ATG数据挖掘:大规模识别真实道路场景用于自动驾驶

行人是怎样过马路的?与普遍的看法相反,有时候答案并不像“到对面去”那么简单,Uber 为了实现更加可靠的自动驾驶功能对此数据进行了挖掘研究。



本文最初发表在 Uber 官方博客上,经授权,InfoQ 中文站翻译并分享。

正文

与普遍看法相反,行人过道路有时候并不像“到对面去”那么简单。为了让 Uber 的自动驾驶汽车(SDV)安全可靠的上路,我们的机器学习团队必须能够预测现实世界中行人过马路时可能出现的情况。为了解这种情况可能会以何种形式出现,我们需要根据真实世界里行人的行为度量多种可能的情况变化。这些度量有助于推动以下工作:


  • 感知和预测:使机器学习模型具有全面的、多样化的和持续编策的训练样本(提高精度/召回率,减少训练时间,减少计算)。

  • 动作规划:基于场景需求的能力开发(提高测试通过率,降低干预率)。

  • 标注:使目标标注工作的场景全面、多样且不断更新(提高标注质量,加快标注速度,降低生产成本)。

  • 虚拟仿真:与真实场景相匹配的测试(提高测试质量和测试运行效率,降低计算成本)。

  • 安全性和系统工程:有统计学意义的规范和与现实世界相符的能力需求(改进开发质量,提高开发速度,降低开发成本)。


为了度量现实世界中的场景,让我们到街上研究下行人如何过马路。

驱车观察行人的行为

为了解行人过马路的各种方式,我们首先驾驶一辆 SDV 在一个真实的街区观察行人的行为。当司机在方向盘后坐定,SDV 的感知系统被激活,车载电脑就会检测、跟踪并记录它看到的行人活动。


对于这个案例分析,我们取一段 312 英里的(SDV 在附近 1.7 平方英里范围内非连续行驶超过 26 个小时)样本,如图 1 所示:



图 1 在这个图中,竖条高度表示 SDV 在特定车道上行驶的次数。(查看动图


图 1 中的竖条高度表示 SDV 在特定车道上行驶的次数。交叉路口的“尖峰”是由于 SDV 在“网格覆盖”驾驶模式下多次穿过同一十字路口。


一个理想的驾驶样本在相同天气条件下、每小时、每天、每星期、每月在每条街道上行驶的英里数应该相同。本分析中使用的数据样本为 SDV 在超过 26 小时中行驶的 312 英里,因此,需要特别强调下由此产生的选择偏差。例如,行驶路线并没有同等地覆盖所有街道(如图 1 所示),而时间主要是在工作日的上午 9 点到下午 3 点之间(如图 2 所示)。这告诉我们,关于行人行为的最终度量结果将倾向于描述这些街道和时间。



图 2 这张以小时和天为单位的行程热图显示,在这个样本数据集中,更多的里程数来自上午和下午,主要是在周一和周三之间


“行人过马路”场景数据挖掘


图 3 我们可以在地图上生成 SDV 感知系统收集的单个检测数据的动画,来可视化地验证数据挖掘场景的质量。(查看动图


虽然 SDV 感知系统的设计初衷是检测行人,但实际上只有一小部分行人会过马路。为了识别这一场景,我们对每一份行人检测数据进行了挖掘,以找出那些真正穿过街道的行人,就像开采一座山的钻石一样。这是根据由两部分组成的场景定义完成的:一个是行人进入街道(开始过马路),然后离开街道到达另一侧(结束过马路)。在本例中,在 312 英里的行程中,数据挖掘识别出了 2404 个行人过马路的场景,如下图 4 所示,在地图上显示出了这些观测结果的“开始”和“结束”:



图 4 地图上行人过马路的“始点”和“终点”提供了行人过路地点的重要资料。(查看动图


在我们的分析中,我们有成千上万个行人过马路的样本。下面,让我们更进一步地看下通过数据挖掘得出的度量值,以便更好地理解行人是如何到达马路另一边的。

分析“行人过马路”场景

行人过马路的场景有很多重要的度量值,包括行人过马路的速度、道路宽度、步行距离、过马路时长、在人行横道上行走的距离以及过马路时的红绿灯状态。就像在跑道上观察一个短跑运动员一样,这些度量值描述了该场景的实际情况(例如,短跑运动员 14 秒跑完 100 米)。首先,让我们分析一项指标:过马路的速度。

最快和最慢的行人


图 5 平均过马路速度的散点图突出显示了 SDV 传感和感知系统观测到的最快和最慢平均速度。(查看动图


图 5 描绘了从 2404 个观察样本中得出的平均过马路速度的散点图,右边显示了最快和最慢的行人。总体上,平均过马路速度为 1.39 m/s±0.019(或 3.11 mph±0.042),置信度 99%,这与美国交通部的研究结果一致。最快的过马路速度是 3.6 米/秒(相当于 7 分 28 秒跑完一英里)。箱形图(图 5 中圆点的右测)表明大多数观测值都聚集在平均值附近。


下面我们通过下面的分析更细致地研究下这些值:



图 6 行人过马路平均速度分布图,分为“中等”和“极端”两类,平均而言,行人最有可能以约 1.39 米/秒的速度过马路


从图 6 的分布可以看出,大多数观测值都聚集在均值附近,总体上呈钟形曲线。蓝色和红色分别表示在两个标准差范围内外的值。蓝色表示"中等",在两个标准差内;红色表示"极端",在两个标准差外。


红条显示了轻微的双模态分布(即实际上有“两条”钟形曲线)。蓝色的值(“中等”)表示行人走过马路,红色的值(“极端”)表示行人慢跑过马路(每秒 2.7 米左右,大约是 10 分钟一英里的速度)。


现在,让我们通过添加第二个度量,进入一个二维场景“空间”,进一步研究这个场景的状况。



图 7 包含平均步行速度和行走距离的二维散点图显示,在我们的分析中,大多数行人过马路时以 1.4 m/s 的速度步行了大约 18 米


图 7 是一张二维散点图,包含了与图 6 相同的 2404 个观测值,但现在增加了第二个观测值。在这个图中,x 轴为平均速度观测值,y 轴为行人过马路时的行走距离。


这个图还提供了第二种分类,用于标识经常(“常见”)或不经常(“罕见”)出现的值。该图同时使用了两个分类器(包括前面的量级分类器),蓝色的圆点代表行人过马路的典型方式(“常见和中等”值),黄色的圆点代表非典型但并非明显不常见的过马路方式(“罕见和中等”值),粉色的圆点代表明显不常见的过马路方式(“罕见和极端”值,如快跑通过或慢慢走过一个大的十字路口)。这里的研究发现,有一大群行人以大约 1.4 米/秒的速度步行约 18 米过马路。


让我们再提高下复杂度,增加第三个度量,进入一个三维场景“空间”。



图 8 包含过马路时长的三维散点图,我们从中可以看出行人过马路的速度、行人过马路花费的时间以及马路的宽度。(查看动图


上图包含了和之前一样的 2404 个观测值,但是这次,加上了第三个观测值:行人过马路的时长。增加的 3D 视角提供了我们在之前的分析中没有反映出来的直观知识,比如在较长的距离上以较慢的速度过马路通常需要更多的时间。这也使得场景空间,比如粉色的“罕见和极端”空间,在视觉上更直观。图 9 着重显示了蓝色变化空间(“常见和中等”)中的大量值:



图 9 上面蓝色的“常见和中等”场景使得像仿真这样的团队能够创建“常见和中等”测试集,反映真实的行人过马路情况


仍然,我们还可以采用其他度量来进一步定义“过马路”场景,并提供更丰富的见解。分析四维或四维以上的场景是什么感觉?



图 10 这个七维场景可视化是一个生成更细粒度场景“指纹”、进入到呈现独特观测值过程的窗口。(查看动图


场景可以包含不止三个度量。图 10 的七维“场景空间”可视化包含和之前一样的 2404 个行人过马路场景的观测值,但是这一次,在之前的 3D 可视化图形上增加了其他四个观测值,包括最大步行速度、最小步行速度、行人距离 SDV 的最近距离、行人距离 SDV 的最远距离。“N”维场景空间的形状决定了 SDV 开发工作流的几乎每个阶段,包括为标注和机器学习选择正确的数据,开发反映真实世界的仿真,以及创建数据驱动的安全需求。

一个场景多少观测值就够了?

在你真正知道人们如何过马路之前,你需要观察多少次人们过马路的场景?为了解决这个问题,我们采用置信区间和误差幅度统计。图 11 中的三个图表显示了行人过马路平均速度的统计数据。



图 11 由三个图表构成的演进图记录了观察结果、置信区间和误差幅度,为我们提供了关于“行人过马路”场景更丰富、更细致的统计见解


第一个图表是所有 2404 个行人平均速度观测值的原始图形,数据是按照收集顺序排列的。


图 11 中的第二幅图显示了 95%置信区间内这些速度的累积平均值(粉色虚线)。注意,置信区间随着观察值的增加在均值附近“收敛”。


如第三幅图所示,当置信区间收敛时,估计的误差幅度减小。根据第 2404 次观测,平均过马路速度的估计值为 1.39m/s±0.014,置信度 95%。


给定置信区间和误差统计量,我们如何知道多少观测值就足够了?这取决于度量的内容和要求的误差水平。有趣的是,对平均过马路速度累计观察了大约 1000 次后,误差幅度接近其最低水平,略高于 0.02 米/秒。如果这个误差范围是可以接受的,那么接下来的 1404 次观察就没有必要了。


不过,这个值并不完美。例如,这些度量是基于一个在邻近地区行驶 312 英里的样本,该样本的收集存在地理和时间选择偏差(并没有在所有时间内对邻近地区的所有地点进行同等的观测)。例如,没有观测夜间或周末过马路的情况。此外,“罕见”类过马路的情况对于理解特别重要,但是获取起来特别困难(因为它们……罕见)。但是,“罕见”值的误差幅度也可以计算出来,从而可以得出为建立这些值的统计显著性需要收集的观测数据量。

数据挖掘驱动的自治组织

数据挖掘和分析加速了跨自治组织的开发,在我们的例子中是 SDV。从提供具有系统性、多样性训练样本的机器学习模型到为安全用例和系统工程开发提供统计显著性度量,数据挖掘的场景是一种战略数据资产,为研究人员提供必要的信息,可靠地模拟出真实世界的场景。


数据挖掘在 SDV 开发中的应用不仅限于场景度量。例如,它用于收集对停止标志(不移动的基础设施)的观察,也用于收集对任何移动角色的观察(比如骑摩托车的人)。它还被用于挖掘联网车群中的新数据。设想一下,从数以百万计的车辆中寻找行人过马路的独特样本,直到有足够的观察结果来得出所有地点和时间的每一项度量(包括罕见的和极端的类型)的统计显著性。就像淘金者从沙子中筛选黄金一样,数据挖掘为 SDV 开发筛选数据“黄金”,为开发安全、可靠的自动驾驶交通工具提供便利,助力未来移动工具的发展。


要了解关于 Uber ATG 工程和数据科学的工作,可阅读以下文章:



英文原文:https://eng.uber.com/uber-atg-data-mining


2020-07-01 14:332631
用户头像
赵钰莹 极客邦科技 总编辑

发布了 884 篇内容, 共 652.9 次阅读, 收获喜欢 2681 次。

关注

评论

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

来自大厂 10+ 前端面试题附答案(整理版)

loveX001

JavaScript 前端

校招 | StarRocks首次Open Day报名ING!

StarRocks

数据库

云原生数字化转型与金融信创建设,鱼和熊掌可兼得

BoCloud博云

云计算 云原生 信创

react面试如何回答才能让面试官满意

beifeng1996

React

阿里前端面试题

loveX001

JavaScript 前端

写给自己的react面试题总结

beifeng1996

前端 React

VS Code摸鱼神器,让你快速开发AI模型

华为云开发者联盟

人工智能 企业号九月金秋榜

带你认识全新的华为云IoT路网数字化服务

华为云开发者联盟

云计算 后端 物联网 交通 企业号九月金秋榜

分布式系统中如何实现临界资源的互斥访问

华为云开发者联盟

云计算 后端 开发 企业号九月金秋榜

人脸关键点的应用场景及重难点解析丨Dev for Dev 专栏

声网

算法 Dev for Dev 人工智能’

前端如何学习算法?

大师兄

JavaScript 前端算法 9月月更

算法基础(三)| 二分图解及代码模板

timerring

算法 二分查找 9月月更

慢查询 MySQL 定位优化技巧,从10s优化到300ms

程序知音

Java MySQL 数据库 后端技术 MySQL 数据库

火山语音7篇论文入选国际顶会Interspeech

科技热闻

最新MLPerf基准测试:基于阿里云GPU云服务器的AIACC在图像识别封闭式场景下夺冠

阿里云弹性计算

图像识别 GPU实例 AIACC

一文读懂Jina生态的Dataclass

Jina AI

多模态机器学习 多模态 跨模态

Pipy 同一 IP 多个 SSL 域名

Flomesh

Service Mesh 服务网格

阿里云大数据助力知衣科技打造AI服装行业核心竞争力

阿里云大数据AI技术

人工智能 大数据 模型训练 客户案例

linux入门学第一天

乌龟哥哥

9月月更

传媒产业的数字化怎样被小程序影响

Geek_99967b

小程序

大数据调度平台Airflow(五):Airflow使用

Lansonli

airflow 9月月更

Github上标星103K的Spring Security实战手册,直接霸榜

程序知音

Java spring 程序员 spring security 后端技术

Qt|控件QPushButton讲解

中国好公民st

qt 按钮 9月月更

峰会倒计时3天!硅谷传奇投资人登陆专场,围炉共话分析型数据库的爆发式增长

StarRocks

数据库

RabbitMQ怎么保证消息不被重复消费以及消息的可靠性

知识浅谈

RabbitMQ 9月月更

羊了个羊闯关游戏开发(链改代币分红)

开发微hkkf5566

MySQL DDL执行方式-Online DDL介绍

京东科技开发者

Java MySQL 数据 ddl DML

“密评”,听说过没

华为云开发者联盟

云计算 网络安全 开发 企业号九月金秋榜

如何创建 Angular library 并在生产环境中消费

汪子熙

JavaScript typescript angular library 9月月更

本地服务调用K8S环境中的SpringCloud微服务实战

程序员欣宸

Kubernetes 9月月更

以Vue为代表的提升小程序开发效率框架及工具

Geek_99967b

小程序

Uber ATG数据挖掘:大规模识别真实道路场景用于自动驾驶_语言 & 开发_Steffon Davis_InfoQ精选文章