写点什么

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:333297
用户头像
赵钰莹 极客邦科技 总编辑

发布了 916 篇内容, 共 715.8 次阅读, 收获喜欢 2713 次。

关注

评论

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

Prompt learning 教学[最终篇]:Chatgpt使用场景推荐、优秀学习资料推荐、AI工具推荐

汀丶人工智能

人工智能 自然语言处理 ChatGPT 人工智能ChatGPT 吗? prompt learning

2023-05-14:你的赛车可以从位置 0 开始,并且速度为 +1 ,在一条无限长的数轴上行驶, 赛车也可以向负方向行驶, 赛车可以按照由加速指令 ‘A‘ 和倒车指令 ‘R‘ 组成的指令序列自动行驶

福大大架构师每日一题

Go 算法 rust 福大大

如何使用Go语言实现LSP原则

Jack

Unity3D 对接 workerman 实现联机游戏

北桥苏

php socket Gateway Unity3D workerman

定风波、渡重山、至未来:2023中国数字能源生态大会开启的新旅程

脑极体

新能源

聊一聊模板方法模式

设计模式 模板方法模式

你管这破玩意叫缓存穿透?还是缓存击穿?

Java你猿哥

redis 缓存 缓存穿透 缓存击穿 缓存雪崩

KubeCon EU 2023 落幕,哪些技术趋势值得关注?

SEAL安全

云原生 KubeCON FinOps 平台工程

背靠香港影视集团星光文化,StarNFT问世了

西柚子

C语言编程-程序结构

芯动大师

C语言 结构 三周年连更

Java Web实战 | 设计一个监听器

TiAmo

JDBC 事件监听 监听

从原理到实战,手把手教你在项目中使用RabbitMQ

Java你猿哥

Java ssm RabbitMQ 消息队列 RabbitMQ延时队列

设计模式之美--应用LOD法则实现“高内聚低耦合”

GalaxyCreater

设计模式

Zabbix电话短信报警技巧

外滩运维专家

zabbix电话报警 zabbix短信报警 zabbix飞书报警 zabbix钉钉报警 zabbix微信报警

ui设计软件Sketch 96.3中文激活版~ 支持m1

真大的脸盆

Mac ui设计 矢量设计

AI DevOps | ChatGPT 与研发效能、效率提升(中)

laofo

DevOps 研发效能 ChatGPT

用友BIP成功入围工信部《2022年信息技术应用创新解决方案》

用友BIP

Tensorflow.js 多分类,机器学习区分企鹅种类

北桥苏

JavaScript 深度学习 tensorflow

软件测试|不会Python RPC,一篇文章教你入门

霍格沃兹测试开发学社

什么是好代码/坏代码?给普通人的图解示例

越长大越悲伤

后端 好代码的衡量标准

Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题

汀丶人工智能

人工智能 自然语言处理 ChatGPT prompt learning

深入浅出解析JVM中的Safepoint | 得物技术

得物技术

CSS小技巧之圆形虚线边框

南城FE

CSS css3 前端开发

Nacos必知必会:这些知识点你一定要掌握!

王中阳Go

Go 微服务 nacos 服务治理 配置管理

软件测试|Pytest的必会技巧(一)

霍格沃兹测试开发学社

Orillusion引擎开源一周,荣登Github Trending榜单

Orillusion

开源 3D 渲染引擎 元宇宙 #WebGPU

MySql 索引的失效与优化

Andy

Django笔记二十八之数据库查询优化汇总

Hunter熊

Python django 查询优化

workerman 自定义的协议如何解决粘包拆包

北桥苏

php Unity3D workerman GatewayWorker

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