长文预警:自动驾驶の核燃料库!Tesla数据标注系统解析

news2024/11/17 5:33:18

长文预警:自动驾驶の核燃料库!Tesla数据标注系统解析

在这里插入图片描述

前言

本文整理自原文链接,写的非常好,给了博主很多启发,投原创是因为平台机制,希望能被更多人看到。

掐指一算,又到了该学习的时间!

前几天刚与各位小伙伴分享了Tesla的纯视觉方案,主要介绍了用于Tesla FSD的感知模型是如何搭建的,这几天我奋笔疾书、马不停蹄(划掉,并没有……),今天终于可以分享一下Tesla的数据标注系统啦。

如果不太清楚Tesla纯视觉方案的可以去看看我之前整理的文章:

MarkAI:九头蛇的进化:Tesla AutoPilot 纯视觉方案解析

言归正传,Andrej Karpathy博士说,模型需要数据来驱动,模型决定上限,而数据帮助模型到达这个上限!

有的小伙伴可能会问,不就是标个数据么,有什么好讲的???找几个小学生100块一天,点点鼠标也能干!(小学生OS:我不干,我要忙着上王者!)

Attention!都已经2021年了,L4的自动驾驶都已经开始讨论量产了,中国的空间站都已经上天了,数据标注当然也不再是点点鼠标就OK的了!!

数据标注里面有什么明堂,容我慢慢讲来。做深度学习和计算机视觉的同学可能比较熟悉ImageNet,MS COCO,Cityscapes等著名的公共数据集,这些数据集主要面向于2D图像上的感知任务,也是直接在2D图像上直接标注的,确实是点点鼠标的事。

但是到了自动驾驶时代,所有的感知任务最终都要在现实的3D世界中应用,数据集的规模也不再是几万张,几十万张,或者几百万张图片,与之前的情况已不可同日而语,自然面临了更多更复杂的问题。

这不,前面的感知系统,Andrej Karpathy大佬一个人就可以Handle全场,但是到了数据标注这一块,Tesla上了两个大佬来分别介绍。

两个大佬分别是之前介绍过的Andrej Karpathy博士,给大家介绍人工标注;Autopilot Software主管Ashok Kumar Elluswamy介绍4D自动标注,数据仿真以及数据和模型的迭代。

整个数据标注系统分为三个部分进行介绍,依次为:人工标注,自动标注,数据仿真以及大规模数据生成。

1. 人工标注

大概四年前,Tesla的数据标注也跟目前的不少CV公司一样,由第三方负责。第三方数据标注机构可以提供比较基础的数据标注和维护,但是当标注需求复杂的时候,往往会出现标注延迟太大的问题,同时标注质量也不够高。

于是Tesla就建立了自己的标注团队,标注人员规模为一千余人(啊……还是有钱)。专业的标注人员和工程师紧密合作在一起,保证高质量的标注。

Tesla还为此搭建了专用的数据标注系统,有专业团队维护这个标注框架以及背后的数据,能对标注工作流程中的各项数据做出精确的分析,精确到每个人和每一批数据。

在这里插入图片描述

最初Tesla的大多数的标注还是在2D图像上进行,但是不久之后,标注开始转移到4D空间(3D空间+时间维度),直接在Vector Space进行标注,数据以一个Clip为最小标注单位。

在这里插入图片描述

一个Clip由一段路程上的所有相机和传感器数据构成,根据这些数据可以生成一个对应路段的3D重建结果。修改任意图片或是3D重建结果上的标注,都能直接将改变映射到其他数据上。

这样的4D标注相对于2D标注更加接近自动驾驶任务的需要,但是仅仅这样是不够的。

Tesla发现,人类标注人员对于语义信息更加擅长,但是计算机对于几何,重建,三角化,跟踪更加擅长;同时,随着数据规模的增长,不可能无限地扩大标注团队的规模(特斯拉也想省钱)。所以,Vector Space下更加精确的数据标注需要标注人员和计算机协作进行。

自此,标注进入下一个时代:自动标注。

2. 自动标注

从自动标注开始,下面的内容由CMU毕业的Ashok Kumar Elluswamy介绍,尽管咖喱味十足,但是东西真是好东西。(歪个题,此处省略一万字……印度英语听力能力Get!推荐各位想学英语er都来感受下咖喱英语的魅力)

说到自动标注,很容易让人不明觉厉,我下面用一个简单例子让大家秒懂。

程序猿对AI说:你已经是个成熟的AI了,要学会自己标数据训练自己…

我们都知道,训练数据和训练参数一定的情况下,服务器上能跑的“大模型”,其精度和泛化能力往往强于在车端部署的“小模型”;同时,多个“大模型”做Essemble之后的精度和泛化也往往也强于单个“大模型”。

所以,如果可以获得大量“小模型”表现不好的数据,我们就可以用精度和泛化更好的集成模型帮助我们把这些新数据“标一把”,再用标好的数据来训练小模型。

完全拟合新数据之后,这个小模型就算再差,在这批新数据上的性能也能够逼近之前的集成模型。

所以,Tesla的自动标注系统本质上干的也就是这么个事,只是一贯的,Tesla将它做到了极致。
在这里插入图片描述

前面提到过,一个Clip是Tesla标注系统的最小标注单位,回顾一下Clip的概念:Clip由一段路程上的所有相机和传感器数据构成。一个Clip通常包含时长为45秒到1min的路段数据。

拿到一个Clip,自动标注系统首先使用各种算法模型对数据进行预测,得到分割,目标检测,深度,光流等结果,然后经过一系列算法处理,产生最终用于训练模型的标注。可选的,人类标注人员可以对机器标好的数据做最后的检查和修改。

下面以一个路面标注的例子来说明这一流程。

通常来说我们可以用样条或者是网格来表示路面,但是因为拓扑约束是不可导的,这些表示方式不太好用。为了方便优化,这里选择使用一个神经网络来隐式地对路面建模。

我们query一个路面上的(x, y)点,然后让网络预测路面的高度z,以及一些语义信息,比如车道线,道路边界等。对于每一个(x, y),网络预测一个z,就可以得到一个3D点。我们可以将这个3D点重投影回到各个相机的图像上。

做出百万计这样的query,就能够得到大量的点重投影回各个相机。图4右上角显示了这样重投影回图像的点。

在这里插入图片描述

接下来,我们可以将这些重投影回原图的点与图像空间直接做语义分割的结果进行对比,再在各个相机上,跨过时间和空间维度(across space and time)做联合优化,得到非常高质量的重建结果。
在这里插入图片描述

最后是得到在整个Clip上连续一致的稠密标注结果,如图5所示。这个一致性是指同一个物体的标注在视频序列前后帧,以及不同相机的图像中均保持一致。

这样的一致性是纯人工标注无法达到的。

使用这样的技术,当数据采集车经过一段路的时候就可以采集并标注附近相关的Clip。更进一步,使用一辆车甚至多辆车多次以不同的方式经过同一个地点,能够获得多个相同地点的Clip进行标注。
在这里插入图片描述

这些Clip和对应的标注可以放到一起进行更大规模的优化,得到更加精确和更加详细的标注结果。

图7就是16个Clip对齐到一起,保证车道线等多种特征在Vector Space,及各个相机视角观测下的一致性得到的结果。

在这里插入图片描述

这样的标注方式不仅仅是得到了一个高精地图,还顺带标注了相关的各个Clips,已经有点"众包地图"的味道在里面了。

自动标注完成之后,如果有需要可以再让专业标注人员对

标注结果做校验,顺带去除噪声,或者添加一些其他的标注。

所以车跑一遍,模型跑一遍,再进行联合优化,数据就标好了。

Tesla的自动标注系统用类似的方式,可以完成一个Clip里面所有要素的自动标注,对于静态物体,给出3D重建结果;对于动态障碍物,给出每一时刻具体的位置,姿态,并计算出3D的运动轨迹。

图8展示了由相机生成的高密度3D点云,点云囊括了路面及车辆周边的所有障碍物。前面介绍的方法能够解决静态障碍物的问题,下面介绍一下动态障碍物的处理。

在这里插入图片描述

对于动态障碍物,即运动目标,自动驾驶的感知系统需要给规控提供每个目标的位置,朝向,运动速度,过去时刻的运动轨迹,并估计将来的运动轨迹等信息。标注系统知道这些信息的真值就非常重要。

在这些问题上,自动标注是具有"上帝视角"的。

在这些Clip里面,每一时刻我们不仅知道过去发生了什么,还知道将来会发生什么,以近乎“作弊”的方式得知正确答案。所以我们可以很精确的给出每个目标"将来"运动轨迹的真值。

此外,“上帝视角”还可以解决遮挡问题。因为知道每个运动目标的运动轨迹,所以可以根据目标被遮挡前后的运动轨迹还原出被遮挡状态下的运动轨迹和姿态,因此标注也不再受到遮挡的影响。

在这里插入图片描述

最后得到一个Clip完整的标注结果,如图10。

在这里插入图片描述

以这样的自动标注,Tesla可以轻易地标注百万计的Clips来训练模型。

对于一些模型做的不太好的场景,比如低可视度的恶劣天气,就可以使用大规模的车队采集很多相应场景的数据,然后通过自动标注,迅速地将这些数据用来训练模型,快速提升性能。

自动标注一个星期能够标注1万个clip,纯人工完成相同规模的标注则需要几个月!

3. 数据仿真

完成自动标注之后,尝到了自动化甜头的马老板甚至连数据采集车的电费都不想出了,于是开始琢磨数据仿真。

哈哈,开个玩笑,数据仿真的好处并不仅仅是省钱,还可以解决很多难题,比如很多具有长尾效应的Corner Case就可以用数据仿真采集到数据。

想象一下,如果高速路上突然出现一头牛或是一群大象,让自动驾驶汽车怎么处理?

这样的数据显然非常难以采集,我们不可能真的让一群大象冲到高速路上,然后再开着采集车过去采数据。但如果现实生活中真的遇到了这样的情况,我们依然希望自动驾驶汽车能够处理,所以相应的数据是必须的。

为了解决类似问题,Tesla的下一个撒手锏就是数据仿真。相对于真实数据,仿真数据有以下几方面的优点:

  1. 仿真数据可以提供完美的标注,很多难以标注的场景可以使用仿真数据。
  2. 仿真数据可以在真实数据难以采集的情况下提供优质的数据。
  3. 仿真可以给规控算法提供一个安全的实验环境。
  4. 仿真数据省钱,省钱,省钱!

看样子,仿真数据是真香,不过要搞出能用的仿真数据还是要费一番功夫的。做数据仿真,就是要让虚拟的数据要尽可能真实,Tesla团队为此做出了以下几方面的努力:

1)准确的传感器模拟

数据仿真的第一要务就是让模拟器产生的数据尽可能接近真实相机拍摄的数据。

所以Tesla团队从多个方面做出相应的努力,包括对于相机传感器噪声,运动模糊,光学畸变,以至于挡风玻璃上的衍射斑的仿真。

在这里插入图片描述

2)逼真的渲染

仿真需要实现接近真实的渲染,不能出现类似于游戏中的那种虚假画面。为此,Tesla团队用上了神经渲染(Neural Rendering)来保证渲染效果;用光线追踪(ray tracing)来保证逼真的光照效果。

在这里插入图片描述

3)丰富的场景及演员

为了防止感知模型过拟合到几种车型或是单一的场景,Tesla团队设计了很多的“演员”以及“道具”放到虚拟的世界中,包括形形色色的汽车和穿着各异的行人。

同时还设计了总里程超过2000Miles的虚拟道路,里程相当于美国东西海岸之间的距离。

马老板果然大手笔,有没有感觉像是一个活生生的“西部世界”!

在这里插入图片描述

4)大规模场景生成

前面提到的虚拟数据只是冰山一角,Ashok说到,真实用来训练模型的数据是由这些素材按照一定章程,使用算法生成的。道路的曲率,树木的形状和分布,雪糕筒的摆放,电线杆,以及以各种速度前进的车辆等等各种交通参与物都可以根据需要设置,像天气和光照条件什么的更不在话下。

西部世界 +1!

随机地使用这些素材生成训练数据固然可以,但是大多数生成的场景下模型都可以表现的很好了,所以Tesla团队会使用一些基础的机器学习算法,让模型找到容易出错的场景,然后根据相应的场景生成跟多数据,再来训练模型。

这样,数据和模型的闭环完成了,随着不断迭代,性能会一路提升。

在这里插入图片描述

5)场景重建

Tesla还希望能够重建真实场景的自动驾驶任务中的Failure Case,这样能够方便在模拟器中进行复现,找到并解决问题。

如图15,左图表示一辆真实的汽车采集的数据,经过自动标注系统得到3D重建后的结果。用这些重建后的结果结合视觉信息,可以重建出完全一样的虚拟场景。

在这个虚拟场景中,就可以做各种实验,找到并解决之前的问题。

在这里插入图片描述

当前,Tesla车端部署的模型早已用上了虚拟数据做训练,虚拟数据的规模为37.1亿张图片,4.8亿标注。这样的数据,用"核燃料库"来比喻毫不为过。

看到这一数字,苦苦等数据的新生代民工已经哭晕在厕所……

在这里插入图片描述

总结

Tesla的数据标注系统经历了这样由人工标注到自动标注,再到仿真的过程,确实给我们提供了很好的借鉴,不仅仅能应用在自动驾驶领域,也能应用到在其他CV相关的方方面面!

通过这套系统可以看到Tesla拿掉毫米波雷达,坚持纯视觉的底气。

Tesla的方案除了可供学习之外也启迪我们:在CV算法已经比较成熟的今天,单一算法的提升并不能带来太多改变,但是算法系统级别的研究还有很大潜力可以挖掘,硬件,数据和算法应该融合到一起进行设计和迭代。

再之后,带来的改变就真的是革命性的。

学习之余,我们也不必“长他人志气,灭自己威风”。其实Tesla并不是一枝独秀,国内不少公司也早已在相关领域进行了摸索并有了不错的积累。

接下来,一起加油呀,让AI的星星之火烧成燎原之势!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1800022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【权威出版/投稿优惠】2024年机器视觉与自动化技术国际会议(MVAT 2024)

2024 International Conference on Machine Vision and Automation Technology 2024年机器视觉与自动化技术国际会议 【会议信息】 会议简称:MVAT 2024截稿时间:(以官网为准)大会地点:中国重庆会议官网:www.icmvat.co…

北京崇文门中医医院贾英才与行业共进——第二届海峡两岸中西医结合肾脏病学术大会

第二届海峡两岸中西医结合肾脏病学术大会授牌仪式于2024年6月7号在北京前门国医堂举行。 第二届海峡两岸中西医结合肾脏病学术大会的主要议程可能包括以下内容: 学术讲座:来自海峡两岸的专家学者发表演讲,分享肾脏病防治、透析技术等方面的研…

鸿蒙全栈开发-浅谈鸿蒙~线程模型

前言 如果你现在正巧在找工作,或者琢磨着换个职业跑道,鸿蒙开发绝对值得你考虑一下。 为啥?理由很简单: 市场需求大:鸿蒙生态还在持续扩张,应用开发、系统优化、技术支持等岗位需求旺盛,找工作…

【Text2SQL 论文】C3:使用 ChatGPT 实现 zero-shot Text2SQL

论文:C3: Zero-shot Text-to-SQL with ChatGPT ⭐⭐⭐⭐ arXiv:2307.07306,浙大 Code:C3SQL | GitHub 一、论文速读 使用 ChatGPT 来解决 Text2SQL 任务时,few-shots ICL 的 setting 需要输入大量的 tokens,这有点昂贵…

LabVIEW阀性能试验台测控系统

本项目开发的阀性能试验台测控系统是为满足国家和企业相关标准而设计的,主要用于汽车气压制动系统控制装置和调节装置等产品的综合性能测试。系统采用工控机控制,配置电器控制柜,实现运动控制、开关量控制及传感器信号采集,具备数…

计算机SCI期刊,中科院2区,IF=6.9,收稿范围非常广泛

一、期刊名称 Journal of King Saud University—Computer and Information Sciences 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:6.9 中科院分区:2区 三、期刊征稿范围 《沙特国王大学计算机与信息科学杂…

如何让tracert命令的显示信息显示*星号

tracert命令如果在中间某一个节点超时,只会在显示信息中标识此节点信息超时“ * * * ”,不影响整个tracert命令操作。 如上图所示,在DeviceA上执行tracert 10.1.2.2命令,缺省情况下,DeviceA上的显示信息为:…

吊车报警的工作原理和使用场景_鼎跃安全

在现代建筑施工过程中,经常使用大型机械设备,如挖掘机、吊车、打桩机等,这些设备在施工过程中发挥着越来越重要的作用;同时,这些设备的作业频繁进行作业,对于接触到高压电线的风险也随之增加。大型机械设备…

【Text2SQL 论文】MAC-SQL:多个 Agents 合作来解决 Text2SQL

论文:MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL ⭐⭐⭐⭐ arXiv:2312.11242, 北航 & Tencent Code: MAC-SQL | GitHub 文章目录 一、论文速读二、MAC-SQL2.1 Selector agent2.2 Decomposer agent2.3 Refiner agent 三、指令微调的 SQL-L…

企业费用标准如何制定?

在当前宏观经济环境和市场竞争日益激烈的背景下,国内很多企业的费用管理流程依旧面临诸多挑战。特别是制造业、零售业等人员众多的企业,如何通过制定精细化、自动化的企业费用标准来实现降本增效,已经成为企业财务流程优化的首要目标。 企业…

【Microelectronic Systems】期末速通

PART1 嵌入式系统概述与玩转mbed 1 嵌入式系统,微控制器,与ARM 1.1什么是嵌入式系统? 微处理器不仅仅存在于通用计算机中,也可以安置在一些不需要计算的设备内部,比如洗衣机,摄像机。微处理器常常可以控制…

k8s小型实验模拟

(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。(5分) (2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPat…

Ubuntu 20.04安装CMake 3.22.6版本

Ubuntu 20.04通过apt安装的cmake版本是3.16.3,默认安装到/usr/bin/cmake路径。 $ cmake Command cmake not found, but can be installed with:sudo snap install cmake # version 3.29.3, or sudo apt install cmake # version 3.16.3-1ubuntu1.20.04.1See sna…

AI做的2024年高考数学试卷,答案对吗?

2024年高考数学考试已经结束,现在呈上数学真题及AI给出的解答。供各位看官欣赏。 总的来说,人工做题两小时,AI解答两分钟。 但是,AI做的答案是否正确,那就要各位看官来评判了! 注:试卷来源于…

MTK联发科MT6897(天玑8300)5G智能移动处理器规格参数

天玑 8300 采用台积电第二代 4nm 制程,基于 Armv9 CPU 架构,八核 CPU 包含 4 个 Cortex-A715 性能核心和 4 个 Cortex-A510 能效核心,CPU 峰值性能较上一代提升 20%,功耗节省 30%。 此外,天玑 8300 搭载 6 核 GPU Mal…

【Linux】Centos7升级内核的方法:yum更新(ELRepo)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

【面试八股总结】内存页面置换算法

参考资料:小林coding、阿秀 缺页中断 在 CPU 里访问一条 Load M 指令,然后 CPU 会去找 M 所对应的页表项。如果该页表项的状态位是「有效的」,那 CPU 就可以直接去访问物理内存了,如果状态位是「无效的」,则 CPU 则会…

OceanBase 4.3 特性解析:列存技术

在涉及大规模数据的复杂分析或即时查询时,列式存储是支撑业务负载的关键技术之一。相较于传统的行式存储,列式存储采用了不同的数据文件组织方式,它将表中的数据以列为单位进行物理排列。这种存储模式允许在分析过程中,查询计算仅…

Qt之QGraphicsView —— 笔记3:矩形图元连接(附完整源码)

效果 完整源码 注意:在ui文件中拖入一个QGraphicsView类窗口控件,然后用MyGraphicsView提升该类。 main.cpp #include "widget.h" #include <QApplication>int main(

SpringCloud Consul基础入门与使用实践总结

【1】Consul简介 官网地址&#xff1a;https://www.consul.io/intro/index.html 下载地址&#xff1a;https://www.consul.io/downloads.html 中文文档&#xff1a;https://www.springcloud.cc/spring-cloud-consul.html ① 基础概念 Consul 是一套开源的分布式服务发现和…