首页 > 
新闻中心 > 
资讯聚焦 > >
正文

自动驾驶の核燃料库!Tesla数据标注系统解析

发布日期: 2022-01-12来源: 汽车ECU开发

有的小伙伴可能会问,不就是标个数据么,有什么好讲的???找几个小学生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右上角显示了这样重投影回图像的点。