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. 一对一关系 USE [Howie] crea ...
- Paper | Toward Convolutional Blind Denoising of Real Photographs
目录 故事背景 建模现实噪声 CBDNet 非对称损失 数据库 实验 发表在2019 CVPR. 摘要 While deep convolutional neural networks (CNNs) ...
- Asp.Net Core AsyncLocal 异步上下文
引子 阅读以下代码,并尝试分析 代码解析 在主线程中,线程Id为1,为线程变量赋值 变量==d6ff 开启一个新的task,此时线程Id为4,变量==d6ff,并调用Task1 开启一个同步Task3 ...
- 解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题
解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题 一.前言 最近在做一点小的实验,用到了Scala,spark这些东西,于是在Linux平台上来完成,结果一个 ...
- Spring框架spring-web模块中的RestTemplate类详解
RestTemplate类是spring-web模块中进行HTTP访问的REST客户端核心类.RestTemplate请求使用阻塞式IO,适合低并发的应用场景. 1. RestTemplate类提供了 ...
- VS 中批量格式化、删除未使用的 using 语句代码的插件
插件名称:Format All Files 插件地址:https://marketplace.visualstudio.com/items?itemName=munyabe.FormatAllFile ...
- Django学习笔记(17)——BBS+Blog项目开发(1)验证码功能的实现
本文主要学习验证码功能的实现,为了项目BBS+Blog项目打下基础. 为了防止机器人频繁登陆网站或者破坏分子恶意登陆,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是“Com ...
- scrapy学习笔记(二)框架结构工作原理
scrapy结构图: scrapy组件: ENGINE:引擎,框架的核心,其它所有组件在其控制下协同工作. SCHEDULER:调度器,负责对SPIDER提交的下载请求进行调度. DOWNLOADER ...
- python3测试网站网速
一.运行环境 1.Windows 10 2.python 3.8 二.安装第三方库pycurl 1.先安装 pip install wheel 2.在安装pycurl https://download ...
- Java学习——String,StringBuffer和StringBuilder
Java学习——String,StringBuffer和StringBuilder 摘要:本文主要介绍了String字符串在内存中的存储情况,以及StringBuffer和StringBuilder的 ...