Tesla AI DAY 深度分析

一頁總結

Tesla對自動標註的技術和要求:

首先是在Vector Space上的標註, 需要對資料做出分析處理,資料標註工具的搭建

一個離線大模型對資料進行標註,車載模型相當於對大模型進行蒸餾;並且擁有強大的資料採集能力

核心技術方面:三維重建與視覺SLAM等演算法

下面我們就來為這三點慢慢展開:

CVPR 2021 WAD Keynote by Andrej Kaparthy

首先我們recall 一下 CVPR 2021 WAD Andrej Kaparthy 提出

Tesla AI DAY 深度分析

能成功訓練出一個網路,對資料有什麼需求呢?

你需要有大量的資料,這裡可以指成千上萬個影片片段

需要有Sanity Check, 需要乾淨的資料,資料的標註需要涵蓋深度、速度、加速度資訊

需要多種多類的資料,即使在同一個簡單場景跑一萬年,實際上的作用也不大,更重要的是需要大量的corner cases。

圖中右手邊解釋著一個粗略的資料閉環體系,資料採集 —— 搭建資料集 —— 自動+人工標註 —— 送入模型訓練 —— 量化部署到車端上

在Data labelling 這一部分,在整個特斯拉自動駕駛裡面,可能比網路部分還要重要,因為資料這一塊容易用一些技巧去提升效果。

我們來看一下四年前特斯拉的資料團隊

Tesla AI DAY 深度分析

一開始tesla適合第三方公司去合作,但很快就發現標註效率很低,並且溝通的成本很高,後來他們選擇自己建立標註團隊,也實現了比較好的產出,我們可以從圖片的下方看到資料標註量在後面時間段產出都比較穩定。我們猜測其中有兩點起到了作用:

Tesla自主開發了一個數據標註平臺,包括資料標註工具與資料分析工具

公司自己組建了一個千人標註團隊,(不確定是否都是全職)專門負責資料的標註。

Tesla AI DAY 深度分析

2D 標註demo

回到最初,Tesla是在2D的平面上對數進行精細的標註, 例如上圖,不僅對車道線+朝向,紅綠燈,行人做標註,連對錐形雪糕筒,左邊路面的拖拉機,大卡車也會去做標註(估計歸類為construction),但是對於這種方法, Tesla就發現這麼一張一張去標註不太work, 並且一直這麼標也不知道什麼時到終點。

4D Space + Time Labelling

Tesla AI DAY 深度分析

接下來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) 的資料,如果單單利用人工勞動力去標註,是不大可能做到如此龐大的資料量的。

我們現在可以來分析一下Tesla 的 auto-labeling

Tesla AI DAY 深度分析

這是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),然後資料是怎麼獲得的呢?

Tesla AI DAY 深度分析

首先會用一個隱式MLP(multilayer perceptron)表示道路,然後給每一個道路(x,y)的request,然後可以收穫 Ground Height, Lane Line, Crub, Asphalt(瀝青), crosswalk 等資訊,可以視為BEV視角下的一個柵格化表示。獲得這些資訊之後,我們可以把他們投影到8個camera上,如上圖右上的地方,相當與對每一個點作分類處理,如車道線。右下的圖片是大模型對右上圖做的一個Segmentation的結果,當3D投影結果跟2D 重合的時候,我們就認為我們道路重建準確。

Tesla AI DAY 深度分析

NeRF ECCV 2020

為了讓大家更加理解這個過程,其實這個過程是基於一篇 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,去表示物體的本身。

Tesla AI DAY 深度分析

如上圖左邊,當我們有(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就是道路本身(一個隱式表示)

可能說的有點散了,我們現在來梳理一下,具體來說:

為什麼要這麼做呢?motivation : 我們需要一ground truth 來給Tesla vision去訓練, 然而我們又怎麼去建立這個ground truth 呢?

答案:借鑑NeRF的思想 這過程有幾處具有挑戰的地方:

在場景重建的時候,我們需要獲得每一個攝像頭的位置資訊,比如說我們需要知道每個攝像頭的外參,這裡TESLA可能是透過SLAM(camera+IMU)來獲得相機在幀與幀之間的轉移矩陣,

第二個挑戰是要保證渲染的過程是一個可微渲染,這樣才能對道路模型進行梯度最佳化。

Restructuring the Road 結果:重建的結果還是挺好的

Tesla AI DAY 深度分析

Static Objects 靜態物體標註

Tesla AI DAY 深度分析

整個靜態物體的構建過程,其實就是一個SLAM,然後把地圖重建出來。建完圖後,我們可以把地圖當作psudo lidar了,可以用lidar 演算法去做目標檢測等任務。當然,也可以人工去標註,但tesla 大機率是大模型做auto labeling, 然後人工去做refine。

Dynamic Objects 動態物體標註

Tesla AI DAY 深度分析

對於動態物體的標註,如運動的車輛等

首先第一個,用psudo lidar 的方式,構建出深度資訊。tesla 在這方面估計會有很多大模型,並且利用自監督的深度估計算法去得到距離資訊,據釋出會是說這效果也做得挺好。

利用radar,直接得出深度資訊。因為在auto-labeling 的過程中,其實是離線的,所以可以用到前後幀的資訊,即事件發生之前,與之後的資訊模型都能知道,可以做一個全域性最佳化。並且在離線訓練的狀態下,也沒有實時的要求,tesla 在這過程可以上一些複雜的演算法,來達到更加好的效果。

Tesla AI DAY 深度分析

然後Tesla 透過 Static objects & Dynamic objects 的方法,對路面及行人資訊做出標註。由於離線訓練,可以知道當前幀前後的資訊,所以即使行人被車擋住了,跟進時序資訊,也可以追蹤車後的行人。

Tesla AI DAY 深度分析

車輛自動標註調研

Tesla AI DAY 深度分析

關於車輛標註,我們也找了一些自動化標註的資料:

Zakharov, Sergey, et al。 “Autolabeling 3d objects with differentiable rendering of sdf shape priors。” CVPR 2020

詳情請看youtu: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

Tesla AI DAY 深度分析

我們可以看到整個clip相當於對整個場景做三維重建了,然後最近有一趨勢,即把車身訊號,image,lidar point cloud, prediction, 等資料都整合到一起,形成一段video clip,這我比較方便我們去train multi-task model。 我們可以看到特斯拉的資料集包含了車的位置,行人的位置,以及周圍場景資訊,算是比較豐富的資料集。目前學術界所開源的自動駕駛資料集並沒有這麼豐富,例如waymo open datasets 普遍是一段一段的,perception and prediction模組之間的標註也沒有集合到一起。Nuscene雖然有給到各種資料,但也不是那麼讓人滿意。

Removing radar

Tesla AI DAY 深度分析

這裡仍然不得不提到特斯拉利用autolabeling pipeline在自動駕駛上去雷達的舉措,相信有很多文章也提到過,radar跟camera在一些場景下會產生矛盾,例如在高速透過拱橋的時候,橋是靜態物體,但路面的車是動態物體,radar檢測到的橋容易mismatch並錯誤認為車也是靜態物體,然後tesla自動駕駛在高速上減速了,但這不是重點。重點是右邊的部分,要去掉radar,就需要camera做得比radar要好,但在右邊這種一系列的大霧場景,傳統的相機做的檢測、深度估計任務確實沒有radar好,這種問題可以怎麼解決呢?Tesla 派了一龐大的車隊,採集了1萬+惡劣天氣場景的video clips, 然後透過auto-labeling pipeline,一週內就標註完了,然後送到網路裡面去訓練,最後得到的效果如下所示:

Tesla AI DAY 深度分析

Summary

Tesla AI DAY 深度分析

Tesla對自動標註的技術和要求:

首先是在Vector Space上的標註, 需要對資料做出分析處理,資料標註工具的搭建

一個大規模的離線神經網路,相當於對大模型做蒸餾;並且擁有強大的資料採集能力

核心技術方面:三維重建與視覺SLAM技術

擁有以上三點才可以令Tesla在短時間內收集大量且在特殊場景的資料,對資料進行快速(自動)標註,達到模型快速迭代,快速解決corner cases的效果,應對了第一段我們提到的“打造自動駕駛的資料閉環”中的核心技術。

整理自知乎、智車科技,文中觀點僅供分享交流,不代表本公眾號立場,如涉及版權等問題,請您告知,我們將及時處理。

—— END ——

TAG: 標註Tesla資料模型3D