写点什么

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:332369
用户头像
赵钰莹 InfoQ 主编

发布了 882 篇内容, 共 638.0 次阅读, 收获喜欢 2678 次。

关注

评论

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

让你驱动力开机工作了,不是在待机状态。

叶小鍵

力扣每日一练之二分查找Day7

京与旧铺

后端 6月月更

剑指offer系列——剑指 Offer 49. 丑数

未见花闻

6月月更

投稿开奖丨云服务器ECS征文活动(3月)大奖公布

阿里云弹性计算

DNS 云服务器 ECS DoH

Lazada的算法本土化实践:让东南亚没有难投放的广告

科技新知

想学好软件测试,这些软件必不可少

伤心的辣条

Python 程序员 程序人生 软件测试 自动化测试

想秀你就秀!环信MVP招募计划正式启动,诚邀您加入!

环信

IT 即时通讯 IM 技术分享

如何方便的将小程序转换成APP

Geek_99967b

小程序 小程序容器

SQL优化

工程师日月

6月月更

软件测试需要学习什么?好学吗?需要学多久?到底是报班好还是自学好?

伤心的辣条

程序员 程序人生 软件测试 自动化测试 Python自动化

信用卡业务愈卷愈烈,银行机构如何突围?

易观分析

信用卡业务

Executor

急需上岸的小谢

6月月更

用FinClip实现App小程序微信授权登录详解

Geek_99967b

小程序 小程序容器

gRPC C++开发环境搭建

赖猫

c c++ gRPC

三星堆重大发现!信息量巨大

Dylan

三星堆 四川省 文物

快速实现微信登录第三方小程序快捷方式

Geek_99967b

小程序 小程序转app

看完就会,从抓包到接口测试的全过程解析

伤心的辣条

程序员 自动化测试 接口测试 测试开发 Python自动化

实时数仓实战

鲸品堂

数据 实时数仓

Notebook在复现数据科学研究成果中的丝滑使用

Baihai IDP

AI notebook 数据科学 科研成果

华为云Stack首席架构师:打造“称手”的数字化工具,答好政企IT数字化转型这道必选题

华为云开发者联盟

云计算 数字化转型 多云管理 华为云Stack

数据库每日一题---第11天:合作过至少三次的演员和导演

知心宝贝

数据库 前端 后端 6月月更

vue监听器

小恺

6月月更

剑指 Offer 58 - II. 左旋转字符串

未见花闻

6月月更

在万家灯火阑珊处,重新认识平板电脑

脑极体

换掉bpmn-js,让前端更熟悉工作流业务

相续心

前端 流程图 workflow

模块四(千万级学生管理系统的考试试卷存储方案)

Geek_701557

架构实战营模块 8 作业

热猫

ConcurrentHashMap 源码分析-扩容

zarmnosaj

6月月更

一文读懂当今AI圈大热的“MLOps”

澳鹏Appen

人工智能 机器学习 大数据 数据标注 运维开发

静态链接,静态分派,动态链接

北洋

android 6月月更

工业互联网生态建设加速,小程序容器技术跨端开发特性助力突围

Speedoooo

跨端开发 软件安全 降本增效 敏捷迭代 多端运行

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