2025 年技术指引:让真实案例和经验为开发者开路 了解详情
写点什么

在自动驾驶研发中充分发挥数据的潜能

  • 2019-06-23
  • 本文字数:2513 字

    阅读完需:约 8 分钟

在自动驾驶研发中充分发挥数据的潜能

本次分享内容提纲

  • 数据标注

  • 数据驱动开发

  • 数据驱动决策

前言


上图这是我加入小马智行之前的一个小故事。这不断的提醒我,人工智能需要有足够的数据量,并且充分发挥这些数据的潜能,是我们作为人工智能公司的一个非常重要的核心竞争力。

数据的作用

  1. 数据驱动开发:提到数据的作用我们首先会想到,数据驱动开发,包括感知领域、行为预测领域、决策领域,需要有数据(标注好的数据)来作为我们模型训练的粮食和作为系统准确度评测的依据。

  2. 数据驱动决策:尤其是优先级的决策,作为创业公司我们现在想做的事情,远远多于我们的人力,如何把人力用在我们需要优先解决的问题上,不管在行车安全性、乘坐舒适性、车辆的运营等等,每个方面都有更重要的问题,或者次要一点的问题,需要做优先级的决策,通过对于数据的分析和处理,拿出一些有效的决策。

  3. 展现公司实力:通过对数据的分析,展示出来的结果是可以展示公司实力的。

  4. 满足监管要求:数据的保存、处理、分析也是为了满足监管的要求。

数据标注

在讲数据驱动开发和决策前,先分享下关于数据标注的一些体会。


  1. 评价指标



对于数据标注来说,它的评价指标有:


① 团队规模:只有你有足够大的团队,你才能在单位时间内标注出你所需要的数量的数据。


② 效率和成本:二者间的关系像是硬币的正反两面,效率是指单个人单位时间的产出量,成本是指单位产出的人力、设备、场地开销。


③ 质量:标注的准确度,比如标注一个激光点云里障碍物的尺寸、位置、朝向的准确度,又比如预测下一步行为的准确度。


这是大家通常所关注的三个方面,下面再讲下另外两个很重要的点:


① 能力多样性:能够处理各种不同种类的标注任务的能力,对地图来说我们需要标注车道线,对于感知来说我们需要标交通灯、障碍物,还有行为预测所需要的标注等。


② 标准灵活性:各种长尾场景(如雨点,汽车尾气等)的处理方式在不断的探索和迭代,随之标注的方式也在不断的探索和迭代,如何保证在这些快速探索和迭代过程中标注团队直接的高效沟通,不至于出现混乱,这需要花很多精力去做。


  1. 团队构成


如下图所示:



  1. 效率提升与成本控制


技术手段:


① 默认障碍物大小:第一帧可以通过一些人机交互的方式默认障碍物大小。



② 自动追踪外推:接下来,比如说标注员跳了一帧到第 3 帧,然后把车新的位置手工找到了,当再跳到第 5 帧的时候,系统就可以通过智能算法做到自动的追踪外推来找到车在第 5 帧中的新位置。



③ 自动插值:当车在第 1 帧、第 2 帧、第 5 帧的位置都标出来之后,系统可以做自动插值,自动找到车在第 2 帧,第 4 帧中的位置。



这里大概看下车的整个标注过程,以及人机交互方面的技巧,通过人工智能的方法提高标注员的效率。


相比于车载系统,智能标注系统所受的限制更少:


① 更多的可用信息:比如在尝试智能标注某一帧数据的时候,可以参考其后的数据帧里的信息;


② 更宽松的计算资源和时间限制。


需要注意的问题:


  • 对自动化结果的依赖,可能导致标注结果中产生系统性偏差

  • 如何发现和识别这些系统性偏差

  • 不同的自动化功能,产生系统性偏差的几率和程度各不相同


非技术手段


① 薪酬激励


② 组织结构设计:这里最主要的是信息流动的结构,比如:具体的某些场景的某个细节如何通过标注平台的某些技巧去标注,如何促进这些技巧在标注团队内部被高效地总结、传播。


③ 各工段之间成本平衡:系统化的思考,我们标准的流程分为标注、质检、复检等多个工段,通过各工段的配合达到整体的优化,而不是单纯的只优化某个工段。


当然所有的非技术手段依赖于标注平台对于标注任务生命周期与标注团队架构、绩效的管理。


  1. 系统能力



这里的一个核心目标是何如保证系统在大规模标注团队持续高频使用的条件下能保持稳定运行。这里举一个因为平台不稳定性产生的焦虑感,进而导致恶性循环的例子:


  • 保存失败:比如标注了 5 分钟,尝试保存的时候失败了。

  • 工作成果丢失的焦虑感

  • 更加频繁地尝试保存

  • 系统负载进一步提高

  • 系统稳定性和响应速度进一步下降


而且有些时候牵扯到外部合作商时,会进步一加剧一种情况:信任成本升高,降低长期合作意愿。


这对我们提出的要求是:


① 不断优化、提升效率


② 保持稳定、保障效率:最细微的稳定性问题都可能导致效率下降


③ 良好的工程实践:


  • 与线上系统隔离的完整测试环境,要求能较为准确地重现线上数据规模和数据分布

  • 分级发布流程

  • 线上系统监控及应急处理预案


关于提升效率的 Tips:


  • 开发:实现效率优化方案

  • 测量:在实现方案后,对标注员的操作流程和节奏进行记录和准确复现

  • 提升:在测量和观察中,发现可能的效率提升点,然后再循环到第一点。

数据驱动开发


上图是我们的一个愿景:先是利用机器智能,提高人工标注效率,然后利用人工标注结果,提升机器智能,最后再反过来利用机器智能,提高人工标注效率,达到一个交互促进的过程。


  1. 充分利用海量标注数据


① 分布式训练和评测系统


② 人工标注的质量是有极限的,这需要我们:


  • 对标注数据的进一步处理与修正

  • 在设计评测指标时,要考虑到标注数据常见的质量问题。避免设计出的评测指标对于这些常见质量问题过于敏感。


  1. 数据索引平台


数据在各个维度上的分布,例如:


  • 时段和天气

  • 道路等级

  • 障碍物种类

  • 住宅、商业区、工业区


当我有了索引平台,可以做的事情有:


① 标注任务筛选:基于分布上不平衡的维度,对路测原始数据的自动化初筛


② 训练数据选取:按照指定的维度检索访问标注数据


③ 评测数据集维护:难度和规模分级

数据驱动决策

  1. 路测事件分析



  • 问题路段

  • 问题模块

  • 问题车辆

  • 问题时间段

  • 深入分析的工具


  1. 数据展现方式


这里我们主要面临的挑战:


  • 准确性:给的数据要靠谱,有说服力

  • 实时性:每次采集的数据都可以实时更新

  • 易用性:从界面上可以直观的看到关键数据


这需要我们:


① 以用户为中心,依据关键决策流程,不断迭代与优化


② 根据不同受众和使用场景,提供差异化的视图


  • 运营团队周会

  • 公司高管 C-level

  • 团队 tech lead


③ 在每个视图中,提供最简洁实用的图表


  • 在默认视图中,提供刚刚好用户想要的信息,不多不少

  • 对于每一个数据点,提供进一步深入分析的工具

作者介绍

宋浩,Pony.ai Tech lead。清华大学交叉信息研究院博士,此前任职于 Facebook 广告分发策略优化部门。目前在 Pony.ai 负责自动驾驶数据平台与应用的技术研发。


本文来自 DataFun 社区


原文链接


https://mp.weixin.qq.com/s/Kgf_aXkx3x-Tv52TmDEZ-g


2019-06-23 08:004793

评论

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

OpenHarmony像素单位

坚果

开源 OpenHarmony 8月月更

SpringBoot实战:国际化组件MessageSource的执行逻辑与源码

看山

源码 spring源码 MessageSource Spring原理 SpringBoot实战

Python爬虫eval混淆,爬虫进阶实战系列

梦想橡皮擦

Python 爬虫 8月月更

Ingress Nginx 接连披露高危安全漏洞,是否有更好的选择?

阿里巴巴云原生

阿里云 Kubernetes 云原生 ingress

梦回战国,领略两千多年前公孙龙如何将面向对象运用得炉火纯青

迷彩

Java 面向对象 签约计划第三季 8月月更 面向过程编程

Python 教程之输入输出(7)—— 如何在 Python 中不使用换行符进行打印?

海拥(haiyong.site)

Python 8月月更

一文带你搞懂OAuth2.0

闫同学

Go 后端 OAuth 2.0

Sass.vs.Less | 简介

Jason199

SaaS 8月月更

MPLS网络向SRv6网络演进

穿过生命散发芬芳

8月月更 SRv6

基于消息中间件开发的优点

阿泽🧸

消息中间件 8月月更

3 款非常实用的 Node.js 版本管理工具

Geek_z9ygea

JavaScript node.js 前端

企业文化如何治好“企业内耗”?

涛哥 数字产品和业务架构

企业文化 企业架构

《编程的原则》读书笔记(一):编程的前提和准则

Chares

软件工程 软件开发 程序开发 编程原理

Spring(四、配置数据源)

开源 MySQ Druid 8月月更

leetcode 232. Implement Queue using Stacks 用栈实现队列(简单)

okokabcd

LeetCode 数据结构与算法 栈和队列

云原生时代下,微服务体系与 Serverless 架构的发展、治理与融合

阿里巴巴云原生

阿里云 Serverless 微服务 云原生

模块九(电商秒杀系统)

Geek_701557

Go-Excelize API源码阅读(三)——OpenReader()

Regan Yue

Go 开源 源码分析 8月日更 8月月更

【LeetCode】算术三元组的数目Java题解

Albert

LeetCode 8月月更

Java+EasyExcel实现文件导入导出

Bug终结者

Java 8月月更

详解中断系统

timerring

8月月更

毕业总结

Geek_701557

低成本、大容量、高交互…Polkadot 引领 GameFi 实现新突破

One Block Community

区块链

即将开幕!阿里云飞天技术峰会邀您一同探秘云原生最佳实践

阿里巴巴云原生

阿里云 云原生 阿里云飞天技术峰会

深入了解 Spring篇之BeanDefinition结构

邱学喆

对象初始化 BeanDefinition 对象创建 属性注入 对象检索

开源一夏 | 对于jQuery选择器和动画效果停止动画的实战心得【前端jQuery框架】

恒山其若陋兮

开源 8月月更

rocketmq整合SpringCloudStream

急需上岸的小谢

8月月更

关于架构的认知

yuexin_tech

架构

C++对象模型和this指针实例分析(二)

CtrlX

c++ 后端 面向对象思想 热门活动 8月月更

测试也应该具备的项目管理能力

老张

项目管理 质量保障

生于云、长于云,RocketMQ 5.0 再出发

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

在自动驾驶研发中充分发挥数据的潜能_AI&大模型_DataFunTalk_InfoQ精选文章