特斯拉自动驾驶如何做数据标注?

汽车电子与软件 2022-10-09 08:53

作者 | PerceptionX

来源 | 计算机视觉life(直接);知乎@PerceptionX

原文 | https://zhuanlan.zhihu.com/p/466426243

Tesla对自动标注的技术和要求:

● 首先是在Vector Space上的标注, 需要对数据做出分析处理,数据标注工具的搭建;
● 一个离线大模型对数据进行标注,车载模型相当于对大模型进行蒸馏;并且拥有强大的数据采集能力;

● 核心技术方面:三维重建与视觉SLAM等算法。


下面我们就来为这三点慢慢展开。


特斯拉高级主管提供的信息

首先我们recall一下特斯拉高级主管Andrej Karpathy在2021 CVPR上对特斯拉自动驾驶现状讲解时提供的信息。

● 要想成功训练出一个网络,对数据的需求特征:
1. 你需要有大量的数据,这里可以指成千上万个视频片段;
2. 需要有Sanity Check, 需要干净的数据,数据的标注需要涵盖深度、速度、加速度信息;
3. 需要多种多类的数据,即使在同一个简单场景跑一万年,实际上的作用也不大,更重要的是需要大量的corner cases。
● 整体的数据闭环体系:

数据采集 → 搭建数据集 → 自动+人工标注 → 送入模型训练 → 量化部署到车端上。

● 重视Data labelling:

在整个特斯拉自动驾驶里面,Data labelling可能比网络部分还要重要,因为数据这一块容易用一些技巧去提升效果。



特斯拉数据标注策略的演变

一开始tesla选择和第三方公司合作,但很快就发现标注效率很低,并且沟通的成本很高,后来他们选择自己建立标注团队,也实现了比较好的产出。

我们可以从图片的下方看到数据标注量在后面时间段产出都比较稳定。

我们猜测其中有两点起到了作用:

1. Tesla自主开发了一个数据标注平台,包括数据标注工具与数据分析工具;
2. 公司自己组建了一个千人标注团队,(不确定是否都是全职)专门负责数据的标注。

 NO.1 

早期的2D平面标注

回到最初,Tesla是在2D的平面上对数进行精细的标注, 例如上图,不仅对车道线+朝向,红绿灯,行人做标注,连对锥形雪糕筒,左边路面的拖拉机,大卡车也会去做标注(估计归类为construction)。

但是对于这种方法, Tesla就发现这么一张一张去标注不太work, 并且一直这么标也不知道什么时到终点。

2D 标注demo

 NO.2 

4D Space + Time Labelling

接下来Tesla马上转变到一个4D Space + Time Labelling 的标注模式,在我们看来其实像一个vector space 下 3D 标注 + 时间序列,加入时间序列主要作用是知道前面发生了什么,把前面的东西保留,可以将信息投到后面,例如3D版的CVAT。

整个思想是,在3D空间下标注,然后再投到8个摄像机里面,简单来说,可以理解为 amount of the labels in 3D space (vector space) = ⅛ amount of labels in 8 camera views (image space)。这里可能会涉及到2D标注与3D标注之前的成本问题,很明显我们都知道标注一张2D的图像会比标注一张3D的图像成本低,但如果是 8张2D的图像对比1张3D的图像,从Tesla 的做法来看,是标注1张3D图像的成本效果要比较好。

但其实即使你标注获得了8倍的数据,对自动驾驶而言也还是不够用的。我们在之前的图片也看到,在CVPR2021 WAD的时候, Tesla 有60亿个标注,和1.5 Pentabytes (PB) 的数据,如果单单利用人工劳动力去标注,是不大可能做到如此庞大的数据量的。


特斯拉的auto-labeling分析


这是Tesla Auto-Labelling 的整个pipeline, 它会有视频片段,大概就是10s到60s的视频,这些视频来源可以是他们车队采集,或者是shadow mode 上传的,这些视频片段包括了图像,IMU,GPS,Odometry(里程计)的数据,压缩成一个个packages,传到服务器上面。

然后服务器上面会有Offline Neural Networks, 离线神经网络,这里相当于一个大规模模型,是他们针对图像上的物体做的。

检测识别精度会比较准,会对不同的camera输出的图像做预处理,可以输出semantic segmentation, depth estimation,还可以多帧之间点matching的结果;

接着通过一个机器人行业流行的AI 算法,在我们看来就是利用nerf,SLAM等算法,把整个三维场景重建出来,然后构建出不同的label, 有道路的重建,动态/静态物体的重建,这样就可以打包成不同的labels,其实label这一模块是依托于大模型的输出的,所以tesla 在整个autolabelling 和网络训练的过程,其实是让车端运行的neural network去蒸馏大网络的输出,是这样的一个过程。

接着我们会有一个问题:tesla是怎么重建道路的呢?或者会有疑问,检测网络是有了(HydraNet),然后数据是怎么获得的呢?

首先会用一个隐式MLP(multilayer perceptron)表示道路,然后给每一个道路(x,y)的request,然后可以收获 Ground Height, Lane Line, Crub, Asphalt(沥青), crosswalk 等信息,可以视为BEV视角下的一个栅格化表示。


获得这些信息之后,我们可以把他们投影到8个camera上,如上图右上的地方,相当于对每一个点作分类处理,如车道线。右下的图片是大模型对右上图做的一个Segmentation的结果,当3D投影结果跟2D 重合的时候,我们就认为我们道路重建准确。

为了让大家更加理解这个过程,其实这个过程是基于一篇 paper,ECCV 2020 NeRF的 paper, (Mildenhall, Ben, et al. "Nerf: Representing scenes as neural radiance fields for view synthesis." ECCV, 2020.)

Nerf 所解决的是一个什么问题呢?可以看到图片中下放nearest input 这一部分,有一些离散的,不同视角下的一些输入,然后我们的目的是输出一个三维重建的图,作为物体的重建。

然后nerf对物体的重建的过程也比较有意思,一般我们表示一个物体,例如会用match去表示,或者用各种显式去表示,但这篇文章并没有用一种显式的方式去表示,而是用一个多层神经网络,即MLP,去表示物体的本身。

如上图左边,当我们有(x,y,z,θ,ϕ),即三维空间点x,y,z,以及视角θ,ϕ;如图(a),在每条射线上的每个点,都带着(x,y,z),以及(θ,ϕ)信息,通过MLP后输出RGB信息,如果我们采集的点越来越多,我们得到更多不同的RGB,这样我们就可以把整个物体重建出来,也就是说我们要让这个网络过拟合某一个特殊的场景,其实这个MLP表示的就是这个场景本身。

在图(b)中,我们在不同视角下会有一ground truth(真值),即不同视角下的图片。然后当图(b) output 中 2D 的投影与我们的真值吻合的时候,我们就可以认为这3D的modelling 建立得比较好。然后从input隐式3D,通过MLP,到2D的过程,这一流程其实也就是一个渲染的过程。用到了Volume Rendering, 并且整个pipeline是可导的,保证了rendering loss function 可以把梯度反向传播回到MLP,不断地去优化我们的模型,模型就会逐渐贴近我们的这个三维物体。

这个过程里面,有一点很重要,就是MLP这个模型,可以理解为物体本身,如果对应到Tesla 方案上,MLP就是道路本身(一个隐式表示)。

可能说的有点散了,我们现在来梳理一下,具体来说:

为什么要这么做呢?因为我们需要一ground truth 来给Tesla vision去训练, 然而我们又怎么去建立这个ground truth 呢?

答案:借鉴NeRF的思想,这过程有几处具有挑战的地方:

1. 在场景重建的时候,我们需要获得每一个摄像头的位置信息,比如说我们需要知道每个摄像头的外参,这里TESLA可能是通过SLAM(camera+IMU)来获得相机在帧与帧之间的转移矩阵;

2. 第二个挑战是要保证渲染的过程是一个可微渲染,这样才能对道路模型进行梯度优化。

Restructuring the Road 结果:重建的结果还是挺好的。

Restructuring the Road 结果


● Static Objects 静态物体标注


整个静态物体的构建过程,其实就是一个SLAM,然后把地图重建出来。建完图后,我们可以把地图当作psudo lidar了,可以用lidar算法去做目标检测等任务。当然,也可以人工去标注,但tesla 大概率是大模型做auto labeling, 然后人工去做refine。

● Dynamic Objects 动态物体标注


对于动态物体的标注,如运动的车辆等:
1.首先第一个,用psudo lidar 的方式,构建出深度信息。tesla 在这方面估计会有很多大模型,并且利用自监督的深度估计算法去得到距离信息,据发布会说这效果也做得挺好。
2.利用radar,直接得出深度信息。因为在auto-labeling 的过程中,其实是离线的,所以可以用到前后帧的信息,即事件发生之前,与之后的信息模型都能知道,可以做一个全局优化。
并且在离线训练的状态下,也没有实时的要求,tesla 在这过程可以上一些复杂的算法,来达到更加好的效果。
3. 然后Tesla 通过 Static objects & Dynamic objects 的方法,对路面及行人信息做出标注。由于离线训练,可以知道当前帧前后的信息,所以即使行人被车挡住了,跟进时序信息,也可以追踪车后的行人。



车辆自动标注调研

关于车辆标注,我们也找了一些自动化标注的资料:Zakharov, Sergey, et al. "Autolabeling 3d objects with differentiable rendering of sdf shape priors." CVPR 2020

详情请看:

https://www.youtube.com/watch?v=VQcDcYsWk00

TRI的这篇工作中,首先使用车辆的三维模型训练一个SDF模型(类似Nerf,也是三维场景的一种表示),该SDF模型含有latent code(上图中的SDF vector)。通过修改latent code,可以控制车辆的形状,以生成不同的车型。


当获取到输入图像后,首先进行segmentation,并预估一个车辆的初始位置。根据车辆的初始位置及SDF模型,可以渲染出车辆在图像上的投影。结合车辆的segmentation,车辆位姿及其二维投影,可以构建出2D、3D两个loss。对loss做梯度下降,优化SDF vector及车辆位姿。

当车辆投影在二维上跟分割结果重合、三维上和lidar点重合时,车辆的形状及位姿较为准确,从而获取车辆的三维标注信息。作者使用该方法在KITTI数据集上生成的数据,在BEV指标下达到了人工标注的性能。

● Auto-labeling Datasets 预览



我们可以看到整个clip相当于对整个场景做三维重建了,然后最近有一趋势,即把车身信号,image,lidar point cloud, prediction, 等数据都整合到一起,形成一段video clip,这我比较方便我们去train multi-task model。

特斯拉的数据集包含了车的位置,行人的位置,以及周围场景信息,算是比较丰富的数据集。目前学术界所开源的自动驾驶数据集并没有这么丰富,例如waymo open datasets 普遍是一段一段的,perception and prediction模块之间的标注也没有集合到一起。Nuscene虽然有给到各种数据,但也不是那么让人满意。

这里我们PerceptionX 先宣传一波我们自建的数据集OpenLane,集合了当前自动驾驶数据集未涉及到的标注任务,是 community 首次推出真实场景 3D 车道线标注;同时也是规模最大的、同时包含了车道线和物体检测等内容,方便后续感知任务的扩展。

OpenLanes数据集下载链接:

https://opendatalab.com/OpenLane

(点击阅读原文查看)

● Removing radar:

这里仍然不得不提到特斯拉利用autolabeling pipeline在自动驾驶上去雷达的举措,相信有很多文章也提到过,radar跟camera在一些场景下会产生矛盾,例如在高速通过拱桥的时候,桥是静态物体,但路面的车是动态物体,radar检测到的桥容易mismatch并错误认为车也是静态物体,然后tesla自动驾驶在高速上减速了。

但这不是重点,重点是右边的部分,要去掉radar,就需要camera做得比radar要好,但在右边这种一系列的大雾场景,传统的相机做的检测、深度估计任务确实没有radar好,这种问题可以怎么解决呢?

Tesla 派了一庞大的车队,采集了1万+恶劣天气场景的video clips, 然后通过auto-labeling pipeline,一周内就标注完了,然后送到网络里面去训练,最后得到的效果如下所示:


正是因为特斯拉拥有开篇总结的三点自动标注技术和要求,才在短时间内收集大量且在特殊场景的数据,对数据进行快速(自动)标注,达到模型快速迭代,快速解决corner cases的效果,应对了第一段我们提到的“打造自动驾驶的数据闭环”中的核心技术。

汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功
    coyoo 2024-12-03 12:20 119浏览
  •         温度传感器的精度受哪些因素影响,要先看所用的温度传感器输出哪种信号,不同信号输出的温度传感器影响精度的因素也不同。        现在常用的温度传感器输出信号有以下几种:电阻信号、电流信号、电压信号、数字信号等。以输出电阻信号的温度传感器为例,还细分为正温度系数温度传感器和负温度系数温度传感器,常用的铂电阻PT100/1000温度传感器就是正温度系数,就是说随着温度的升高,输出的电阻值会增大。对于输出
    锦正茂科技 2024-12-03 11:50 112浏览
  • 戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
    电子与消费 2024-11-30 22:03 98浏览
  • 作为优秀工程师的你,已身经百战、阅板无数!请先醒醒,新的项目来了,这是一个既要、又要、还要的产品需求,ARM核心板中一个处理器怎么能实现这么丰富的外围接口?踌躇之际,你偶阅此文。于是,“潘多拉”的魔盒打开了!没错,USB资源就是你打开新世界得钥匙,它能做哪些扩展呢?1.1  USB扩网口通用ARM处理器大多带两路网口,如果项目中有多路网路接口的需求,一般会选择在主板外部加交换机/路由器。当然,出于成本考虑,也可以将Switch芯片集成到ARM核心板或底板上,如KSZ9897、
    万象奥科 2024-12-03 10:24 68浏览
  • 学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&
    youyeye 2024-11-30 14:30 78浏览
  • 《高速PCB设计经验规则应用实践》+PCB绘制学习与验证读书首先看目录,我感兴趣的是这一节;作者在书中列举了一条经典规则,然后进行详细分析,通过公式推导图表列举说明了传统的这一规则是受到电容加工特点影响的,在使用了MLCC陶瓷电容后这一条规则已经不再实用了。图书还列举了高速PCB设计需要的专业工具和仿真软件,当然由于篇幅所限,只是介绍了一点点设计步骤;我最感兴趣的部分还是元件布局的经验规则,在这里列举如下:在这里,演示一下,我根据书本知识进行电机驱动的布局:这也算知行合一吧。对于布局书中有一句:
    wuyu2009 2024-11-30 20:30 125浏览
  • 最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
    刘旷 2024-12-02 09:32 119浏览
  • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
    丙丁先生 2024-12-01 17:37 102浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2024-12-02 10:40 120浏览
  • 当前,智能汽车产业迎来重大变局,随着人工智能、5G、大数据等新一代信息技术的迅猛发展,智能网联汽车正呈现强劲发展势头。11月26日,在2024紫光展锐全球合作伙伴大会汽车电子生态论坛上,紫光展锐与上汽海外出行联合发布搭载紫光展锐A7870的上汽海外MG量产车型,并发布A7710系列UWB数字钥匙解决方案平台,可应用于数字钥匙、活体检测、脚踢雷达、自动泊车等多种智能汽车场景。 联合发布量产车型,推动汽车智能化出海紫光展锐与上汽海外出行达成战略合作,联合发布搭载紫光展锐A7870的量产车型
    紫光展锐 2024-12-03 11:38 103浏览
  • 11-29学习笔记11-29学习笔记习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-02 23:58 73浏览
  • TOF多区传感器: ND06   ND06是一款微型多区高集成度ToF测距传感器,其支持24个区域(6 x 4)同步测距,测距范围远达5m,具有测距范围广、精度高、测距稳定等特点。适用于投影仪的无感自动对焦和梯形校正、AIoT、手势识别、智能面板和智能灯具等多种场景。                 如果用ND06进行手势识别,只需要经过三个步骤: 第一步&
    esad0 2024-12-04 11:20 58浏览
  • 遇到部分串口工具不支持1500000波特率,这时候就需要进行修改,本文以触觉智能RK3562开发板修改系统波特率为115200为例,介绍瑞芯微方案主板Linux修改系统串口波特率教程。温馨提示:瑞芯微方案主板/开发板串口波特率只支持115200或1500000。修改Loader打印波特率查看对应芯片的MINIALL.ini确定要修改的bin文件#查看对应芯片的MINIALL.ini cat rkbin/RKBOOT/RK3562MINIALL.ini修改uart baudrate参数修改以下目
    Industio_触觉智能 2024-12-03 11:28 87浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦