zz在自动驾驶研发中充分发挥数据的潜能
本次分享内容提纲
数据标注
数据驱动开发
数据驱动决策
前言
上图这是我加入小马智行之前的一个小故事。这不断的提醒我,人工智能需要有足够的数据量,并且充分发挥这些数据的潜能,是我们作为人工智能公司的一个非常重要的核心竞争力。
数据的作用
1. 数据驱动开发:提到数据的作用我们首先会想到,数据驱动开发,包括感知领域、行为预测领域、决策领域,需要有数据(标注好的数据)来作为我们模型训练的粮食和作为系统准确度评测的依据。
2. 数据驱动决策:尤其是优先级的决策,作为创业公司我们现在想做的事情,远远多于我们的人力,如何把人力用在我们需要优先解决的问题上,不管在行车安全性、乘坐舒适性、车辆的运营等等,每个方面都有更重要的问题,或者次要一点的问题,需要做优先级的决策,通过对于数据的分析和处理,拿出一些有效的决策。
3. 展现公司实力:通过对数据的分析,展示出来的结果是可以展示公司实力的。
4. 满足监管要求:数据的保存、处理、分析也是为了满足监管的要求。
数据标注
在讲数据驱动开发和决策前,先分享下关于数据标注的一些体会。
1. 评价指标
对于数据标注来说,它的评价指标有:
① 团队规模:只有你有足够大的团队,你才能在单位时间内标注出你所需要的数量的数据。
② 效率和成本:二者间的关系像是硬币的正反两面,效率是指单个人单位时间的产出量,成本是指单位产出的人力、设备、场地开销。
③ 质量:标注的准确度,比如标注一个激光点云里障碍物的尺寸、位置、朝向的准确度,又比如预测下一步行为的准确度。
这是大家通常所关注的三个方面,下面再讲下另外两个很重要的点:
① 能力多样性:能够处理各种不同种类的标注任务的能力,对地图来说我们需要标注车道线,对于感知来说我们需要标交通灯、障碍物,还有行为预测所需要的标注等。
② 标准灵活性:各种长尾场景(如雨点,汽车尾气等)的处理方式在不断的探索和迭代,随之标注的方式也在不断的探索和迭代,如何保证在这些快速探索和迭代过程中标注团队直接的高效沟通,不至于出现混乱,这需要花很多精力去做。
2. 团队构成
如下图所示:
3. 效率提升与成本控制
技术手段:
① 默认障碍物大小:第一帧可以通过一些人机交互的方式默认障碍物大小。
② 自动追踪外推:接下来,比如说标注员跳了一帧到第3帧,然后把车新的位置手工找到了,当再跳到第5帧的时候,系统就可以通过智能算法做到自动的追踪外推来找到车在第5帧中的新位置。
③ 自动插值:当车在第1帧、第2帧、第5帧的位置都标出来之后,系统可以做自动插值,自动找到车在第2帧,第4帧中的位置。
这里大概看下车的整个标注过程,以及人机交互方面的技巧,通过人工智能的方法提高标注员的效率。
相比于车载系统,智能标注系统所受的限制更少:
① 更多的可用信息:比如在尝试智能标注某一帧数据的时候,可以参考其后的数据帧里的信息;
② 更宽松的计算资源和时间限制。
需要注意的问题:
对自动化结果的依赖,可能导致标注结果中产生系统性偏差
如何发现和识别这些系统性偏差
不同的自动化功能,产生系统性偏差的几率和程度各不相同
非技术手段:
① 薪酬激励
② 组织结构设计:这里最主要的是信息流动的结构,比如:具体的某些场景的某个细节如何通过标注平台的某些技巧去标注,如何促进这些技巧在标注团队内部被高效地总结、传播。
③ 各工段之间成本平衡:系统化的思考,我们标准的流程分为标注、质检、复检等多个工段,通过各工段的配合达到整体的优化,而不是单纯的只优化某个工段。
当然所有的非技术手段依赖于标注平台对于标注任务生命周期与标注团队架构、绩效的管理。
4. 系统能力
这里的一个核心目标是何如保证系统在大规模标注团队持续高频使用的条件下能保持稳定运行。这里举一个因为平台不稳定性产生的焦虑感,进而导致恶性循环的例子:
保存失败:比如标注了5分钟,尝试保存的时候失败了。
工作成果丢失的焦虑感
更加频繁地尝试保存
系统负载进一步提高
系统稳定性和响应速度进一步下降
而且有些时候牵扯到外部合作商时,会进步一加剧一种情况:信任成本升高,降低长期合作意愿。
这对我们提出的要求是:
① 不断优化、提升效率
② 保持稳定、保障效率:最细微的稳定性问题都可能导致效率下降
③ 良好的工程实践:
与线上系统隔离的完整测试环境,要求能较为准确地重现线上数据规模和数据分布
分级发布流程
线上系统监控及应急处理预案
关于提升效率的 Tips:
开发:实现效率优化方案
测量:在实现方案后,对标注员的操作流程和节奏进行记录和准确复现
提升:在测量和观察中,发现可能的效率提升点,然后再循环到第一点。
数据驱动开发
上图是我们的一个愿景:先是利用机器智能,提高人工标注效率,然后利用人工标注结果,提升机器智能,最后再反过来利用机器智能,提高人工标注效率,达到一个交互促进的过程。
1. 充分利用海量标注数据
① 分布式训练和评测系统
② 人工标注的质量是有极限的,这需要我们:
对标注数据的进一步处理与修正
在设计评测指标时,要考虑到标注数据常见的质量问题。避免设计出的评测指标对于这些常见质量问题过于敏感。
2. 数据索引平台
数据在各个维度上的分布,例如:
时段和天气
道路等级
障碍物种类
住宅、商业区、工业区
当我有了索引平台,可以做的事情有:
① 标注任务筛选:基于分布上不平衡的维度,对路测原始数据的自动化初筛
② 训练数据选取:按照指定的维度检索访问标注数据
③ 评测数据集维护:难度和规模分级
数据驱动决策
1. 路测事件分析
问题路段
问题模块
问题车辆
问题时间段
深入分析的工具
2. 数据展现方式
这里我们主要面临的挑战:
准确性:给的数据要靠谱,有说服力
实时性:每次采集的数据都可以实时更新
易用性:从界面上可以直观的看到关键数据
这需要我们:
① 以用户为中心,依据关键决策流程,不断迭代与优化
② 根据不同受众和使用场景,提供差异化的视图
运营团队周会
公司高管 C-level
团队 tech lead
③ 在每个视图中,提供最简洁实用的图表
在默认视图中,提供刚刚好用户想要的信息,不多不少
对于每一个数据点,提供进一步深入分析的工具
zz在自动驾驶研发中充分发挥数据的潜能的更多相关文章
- zz“老司机”成长之路:自动驾驶车辆调试实践
随着自动驾驶技术的发展,一辆新车从被改装到上路需要经过的调试流程也有了许多提升.今天,我希望结合自己之前的调车经验来跟大家分享一下我们是如何将系统的各个模块逐步上车.调试.集成,进而将一辆“新手”车培 ...
- 自动驾驶缺人才?听听David Silver怎么说!
如今自动驾驶在全球范围内的发展势头愈发“凶猛”,该领域人才也一度被视为“香饽饽”. 即使在美国,自动驾驶工程师的起薪也已经突破了25万美元,我国‘“开价”之高更是令人咋舌. 人才.人才.还是人才!重要 ...
- 自动驾驶汽车数据不再封闭,Uber 开源新的数据可视化系统
日前,Uber 开源了基于 web 的自动驾驶可视化系统(AVS),称该系统为自动驾驶行业带来理解和共享数据的新方式.AVS 由Uber旗下负责自动驾驶汽车研发的技术事业群(ATG)开发,目前该系统已 ...
- Mobileye 自动驾驶策略(二)
Mobileye 自动驾驶策略(二) 与多方都成功进行了合作,其中比较大型的合作包括法雷奥.百度和中国 ITS. 法雷奥是最近的的 Tier 1 合作伙伴,法雷奥和 Mobileye 签署协议,表示未 ...
- 自动驾驶系统 bfs
一家科技公司有一块试验地用于测试自动驾驶系统.试验地由n×m个格子组成,从上到下依次编号为第1到n行,从左到右依次编号为第1到m列.试验车位于其中的某个格子上,每次自动驾驶系统可以控制汽车往上下左右移 ...
- 自动驾驶定位算法-直方图滤波(Histogram Filter)定位
1.直方图滤波(Histogram Filter)的算法思想 直方图滤波的算法思想在于:它把整个状态空间dom(x(t))切分为互不相交的部分\(b_1.b_2....,b_{n-1}\),使得: 然 ...
- 自动驾驶传感器比较:激光雷达(LiDAR) vs. 雷达(RADAR)
自动驾驶传感器比较:激光雷达(LiDAR) vs. 雷达(RADAR) 据麦姆斯咨询报道,2032年全球范围内自动驾驶汽车的产量将高达2310万辆,未来该市场的复合年增长率(CAGR)高达58%.届时 ...
- L3级自动驾驶
L3级自动驾驶 2020年开年 3月9日,工信部在其官网公示了<汽车驾驶自动化分级>推荐性国家标准报批稿,并拟于2021年1月1日开始实施. 按照中国自身标准制定的自动驾驶分级标准,在千呼 ...
- Mobileye 自动驾驶策略(一)
Mobileye 自动驾驶策略(一) 详解 Mobileye 自动驾驶解决方案 Mobileye的自动驾驶解决方案.总得来说,分为四种: Visual perception and sensor fu ...
随机推荐
- SQL Server 创建 修改 删除数据表
1. 图形界面方式操作数据表 (1)创建和修改数据表 列名中如果有两个以上单词时,最好用下划线连接,否则可能会给将来的查询维护带来不便.我们公司美国佬做的数据库就很烦,所有列名都有空格,一旦忘记用方括 ...
- Codeforces Round #553 (Div. 2) E 贡献
https://codeforces.com/contest/1151/problem/E 题意 一条长n的链,每个点上有值\(a[i]\),定义\(f(l,r)\)为该区间的\(值\)所代表的点留下 ...
- [转]numpy的getA()/getA1()/getH()/getI()函数
转自https://blog.csdn.net/weixin_42906066/article/details/82625779 1.mat.getA() 将自身矩阵变量转化为ndarray类型的变量 ...
- Unreal Engine 4 系列教程 Part 9:AI教程
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- redis命令之 ----String(字符串)
SET SET key value [EX seconds] [PX milliseconds] [NX|XX] 将字符串值 value 关联到 key . 如果 key 已经持有其他值, SET 就 ...
- python yield from (一)
1. yield from 会抛出iterator中所有的值:而yield只是抛出传进来的值,如果是值,就抛出值,如果是iterator对象,抛出iterator对象 def g1(iterable) ...
- 基于Spring Cloud Netflix的TCC柔性事务和EDA事件驱动示例
Solar Spring Cloud为开发者提供了快速构建分布式系统中的一些常见工具,如分布式配置中心,服务发现与注册中心,智能路由,服务熔断及降级,消息总线,分布式追踪的解决方案等. 本次实战以模拟 ...
- Java学习——包装类
Java学习——包装类 摘要:本文主要介绍了Java中常用的包装类和基本类型之间的转换,包装类或基本类型和String之间的转换. 部分内容来自以下博客: https://www.cnblogs.co ...
- java 的11个特性
以下11个特性来自于著名的"java白皮书"中,博主会针对这些特性一一进行粗略的解释.相信看完博主的这篇文章,以后在和小伙伴们吹牛逼,可就有了切实可靠的理论依据了. 11个特性分别 ...
- Java之路---Day16(泛型)
2019-11-02-23:25:26 目录 1.泛型的概念: 2.泛型的定义和使用: 2.1定义和使用含有泛型的类: 2.2定义和使用含有泛型的方法: 2.3定义和使用含有泛型的接口: 泛型的概念: ...