一文讀懂Tesla數(shù)據(jù)標(biāo)注系統(tǒng)
Andrej Karpathy博士說(shuō),模型需要數(shù)據(jù)來(lái)驅(qū)動(dòng),模型決定上限,而數(shù)據(jù)幫助模型到達(dá)這個(gè)上限!
有的小伙伴可能會(huì)問(wèn),不就是標(biāo)個(gè)數(shù)據(jù)么,有什么好講的???找?guī)讉€(gè)小學(xué)生100塊一天,點(diǎn)點(diǎn)鼠標(biāo)也能干?。ㄐW(xué)生OS:我不干,我要忙著上王者!)
Attention!都已經(jīng)2021年了,L4的自動(dòng)駕駛都已經(jīng)開(kāi)始討論量產(chǎn)了,中國(guó)的空間站都已經(jīng)上天了,數(shù)據(jù)標(biāo)注當(dāng)然也不再是點(diǎn)點(diǎn)鼠標(biāo)就OK的了?。?/span>
數(shù)據(jù)標(biāo)注里面有什么明堂,容我慢慢講來(lái)。做深度學(xué)習(xí)和計(jì)算機(jī)視覺(jué)的同學(xué)可能比較熟悉ImageNet,MS COCO,Cityscapes等著名的公共數(shù)據(jù)集,這些數(shù)據(jù)集主要面向于2D圖像上的感知任務(wù),也是直接在2D圖像上直接標(biāo)注的,確實(shí)是點(diǎn)點(diǎn)鼠標(biāo)的事。
但是到了自動(dòng)駕駛時(shí)代,所有的感知任務(wù)最終都要在現(xiàn)實(shí)的3D世界中應(yīng)用,數(shù)據(jù)集的規(guī)模也不再是幾萬(wàn)張,幾十萬(wàn)張,或者幾百萬(wàn)張圖片,與之前的情況已不可同日而語(yǔ),自然面臨了更多更復(fù)雜的問(wèn)題。
這不,前面的感知系統(tǒng),Andrej Karpathy大佬一個(gè)人就可以Handle全場(chǎng),但是到了數(shù)據(jù)標(biāo)注這一塊,Tesla上了兩個(gè)大佬來(lái)分別介紹。
兩個(gè)大佬分別是之前介紹過(guò)的Andrej Karpathy博士,給大家介紹人工標(biāo)注;Autopilot Software主管Ashok Kumar Elluswamy介紹4D自動(dòng)標(biāo)注,數(shù)據(jù)仿真以及數(shù)據(jù)和模型的迭代。
整個(gè)數(shù)據(jù)標(biāo)注系統(tǒng)分為三個(gè)部分進(jìn)行介紹,依次為:人工標(biāo)注,自動(dòng)標(biāo)注,數(shù)據(jù)仿真以及大規(guī)模數(shù)據(jù)生成。
1 人工標(biāo)注
大概四年前,Tesla的數(shù)據(jù)標(biāo)注也跟目前的不少CV公司一樣,由第三方負(fù)責(zé)。第三方數(shù)據(jù)標(biāo)注機(jī)構(gòu)可以提供比較基礎(chǔ)的數(shù)據(jù)標(biāo)注和維護(hù),但是當(dāng)標(biāo)注需求復(fù)雜的時(shí)候,往往會(huì)出現(xiàn)標(biāo)注延遲太大的問(wèn)題,同時(shí)標(biāo)注質(zhì)量也不夠高。
于是Tesla就建立了自己的標(biāo)注團(tuán)隊(duì),標(biāo)注人員規(guī)模為一千余人(啊……還是有錢(qián))。專業(yè)的標(biāo)注人員和工程師緊密合作在一起,保證高質(zhì)量的標(biāo)注。
Tesla還為此搭建了專用的數(shù)據(jù)標(biāo)注系統(tǒng),有專業(yè)團(tuán)隊(duì)維護(hù)這個(gè)標(biāo)注框架以及背后的數(shù)據(jù),能對(duì)標(biāo)注工作流程中的各項(xiàng)數(shù)據(jù)做出精確的分析,精確到每個(gè)人和每一批數(shù)據(jù)。
圖1,2D圖像上的數(shù)據(jù)標(biāo)注
最初Tesla的大多數(shù)的標(biāo)注還是在2D圖像上進(jìn)行,但是不久之后,標(biāo)注開(kāi)始轉(zhuǎn)移到4D空間(3D空間+時(shí)間維度),直接在Vector Space進(jìn)行標(biāo)注,數(shù)據(jù)以一個(gè)Clip為最小標(biāo)注單位。
圖2,4D空間上的數(shù)據(jù)標(biāo)注
一個(gè)Clip由一段路程上的所有相機(jī)和傳感器數(shù)據(jù)構(gòu)成,根據(jù)這些數(shù)據(jù)可以生成一個(gè)對(duì)應(yīng)路段的3D重建結(jié)果。修改任意圖片或是3D重建結(jié)果上的標(biāo)注,都能直接將改變映射到其他數(shù)據(jù)上。
這樣的4D標(biāo)注相對(duì)于2D標(biāo)注更加接近自動(dòng)駕駛?cè)蝿?wù)的需要,但是僅僅這樣是不夠的。
Tesla發(fā)現(xiàn),人類標(biāo)注人員對(duì)于語(yǔ)義信息更加擅長(zhǎng),但是計(jì)算機(jī)對(duì)于幾何,重建,三角化,跟蹤更加擅長(zhǎng);同時(shí),隨著數(shù)據(jù)規(guī)模的增長(zhǎng),不可能無(wú)限地?cái)U(kuò)大標(biāo)注團(tuán)隊(duì)的規(guī)模(特斯拉也想省錢(qián))。所以,Vector Space下更加精確的數(shù)據(jù)標(biāo)注需要標(biāo)注人員和計(jì)算機(jī)協(xié)作進(jìn)行。
自此,標(biāo)注進(jìn)入下一個(gè)時(shí)代:自動(dòng)標(biāo)注。
2 自動(dòng)標(biāo)注
從自動(dòng)標(biāo)注開(kāi)始,下面的內(nèi)容由CMU畢業(yè)的Ashok Kumar Elluswamy介紹,盡管咖喱味十足,但是東西真是好東西。(歪個(gè)題,此處省略一萬(wàn)字……印度英語(yǔ)聽(tīng)力能力Get!推薦各位想學(xué)英語(yǔ)er都來(lái)感受下咖喱英語(yǔ)的魅力)
說(shuō)到自動(dòng)標(biāo)注,很容易讓人不明覺(jué)厲,我下面用一個(gè)簡(jiǎn)單例子讓大家秒懂。
程序猿對(duì)AI說(shuō):你已經(jīng)是個(gè)成熟的AI了,要學(xué)會(huì)自己標(biāo)數(shù)據(jù)訓(xùn)練自己...
我們都知道,訓(xùn)練數(shù)據(jù)和訓(xùn)練參數(shù)一定的情況下,服務(wù)器上能跑的“大模型”,其精度和泛化能力往往強(qiáng)于在車端部署的“小模型”;同時(shí),多個(gè)“大模型”做Essemble之后的精度和泛化也往往也強(qiáng)于單個(gè)“大模型”。
所以,如果可以獲得大量“小模型”表現(xiàn)不好的數(shù)據(jù),我們就可以用精度和泛化更好的集成模型幫助我們把這些新數(shù)據(jù)“標(biāo)一把”,再用標(biāo)好的數(shù)據(jù)來(lái)訓(xùn)練小模型。
完全擬合新數(shù)據(jù)之后,這個(gè)小模型就算再差,在這批新數(shù)據(jù)上的性能也能夠逼近之前的集成模型。
所以,Tesla的自動(dòng)標(biāo)注系統(tǒng)本質(zhì)上干的也就是這么個(gè)事,只是一貫的,Tesla將它做到了極致。
圖3,Tesla自動(dòng)標(biāo)注系統(tǒng)
前面提到過(guò),一個(gè)Clip是Tesla標(biāo)注系統(tǒng)的最小標(biāo)注單位,回顧一下Clip的概念:Clip由一段路程上的所有相機(jī)和傳感器數(shù)據(jù)構(gòu)成。一個(gè)Clip通常包含時(shí)長(zhǎng)為45秒到1min的路段數(shù)據(jù)。
拿到一個(gè)Clip,自動(dòng)標(biāo)注系統(tǒng)首先使用各種算法模型對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè),得到分割,目標(biāo)檢測(cè),深度,光流等結(jié)果,然后經(jīng)過(guò)一系列算法處理,產(chǎn)生最終用于訓(xùn)練模型的標(biāo)注??蛇x的,人類標(biāo)注人員可以對(duì)機(jī)器標(biāo)好的數(shù)據(jù)做最后的檢查和修改。
下面以一個(gè)路面標(biāo)注的例子來(lái)說(shuō)明這一流程。
通常來(lái)說(shuō)我們可以用樣條或者是網(wǎng)格來(lái)表示路面,但是因?yàn)橥負(fù)浼s束是不可導(dǎo)的,這些表示方式不太好用。為了方便優(yōu)化,這里選擇使用一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)隱式地對(duì)路面建模。
我們query一個(gè)路面上的(x, y)點(diǎn),然后讓網(wǎng)絡(luò)預(yù)測(cè)路面的高度z,以及一些語(yǔ)義信息,比如車道線,道路邊界等。對(duì)于每一個(gè)(x, y),網(wǎng)絡(luò)預(yù)測(cè)一個(gè)z,就可以得到一個(gè)3D點(diǎn)。我們可以將這個(gè)3D點(diǎn)重投影回到各個(gè)相機(jī)的圖像上。
做出百萬(wàn)計(jì)這樣的query,就能夠得到大量的點(diǎn)重投影回各個(gè)相機(jī)。圖4右上角顯示了這樣重投影回圖像的點(diǎn)。
圖4,路面重建流程
接下來(lái),我們可以將這些重投影回原圖的點(diǎn)與圖像空間直接做語(yǔ)義分割的結(jié)果進(jìn)行對(duì)比,再在各個(gè)相機(jī)上,跨過(guò)時(shí)間和空間維度(across space and time)做聯(lián)合優(yōu)化,得到非常高質(zhì)量的重建結(jié)果。
圖5,路面重建結(jié)果,滿足了各個(gè)相機(jī)時(shí)間和空間上的一致性
最后是得到在整個(gè)Clip上連續(xù)一致的稠密標(biāo)注結(jié)果,如圖5所示。這個(gè)一致性是指同一個(gè)物體的標(biāo)注在視頻序列前后幀,以及不同相機(jī)的圖像中均保持一致。
這樣的一致性是純?nèi)斯?biāo)注無(wú)法達(dá)到的。
使用這樣的技術(shù),當(dāng)數(shù)據(jù)采集車經(jīng)過(guò)一段路的時(shí)候就可以采集并標(biāo)注附近相關(guān)的Clip。更進(jìn)一步,使用一輛車甚至多輛車多次以不同的方式經(jīng)過(guò)同一個(gè)地點(diǎn),能夠獲得多個(gè)相同地點(diǎn)的Clip進(jìn)行標(biāo)注。
圖6,可以使用不同車輛多次經(jīng)過(guò)相同地區(qū),得到多個(gè)標(biāo)注結(jié)果
這些Clip和對(duì)應(yīng)的標(biāo)注可以放到一起進(jìn)行更大規(guī)模的優(yōu)化,得到更加精確和更加詳細(xì)的標(biāo)注結(jié)果。
圖7就是16個(gè)Clip對(duì)齊到一起,保證車道線等多種特征在Vector Space,及各個(gè)相機(jī)視角觀測(cè)下的一致性得到的結(jié)果。
圖7,疊加多個(gè)Clip的結(jié)果進(jìn)行聯(lián)合優(yōu)化可以得到更加精確和詳細(xì)的標(biāo)注結(jié)果
這樣的標(biāo)注方式不僅僅是得到了一個(gè)高精地圖,還順帶標(biāo)注了相關(guān)的各個(gè)Clips,已經(jīng)有點(diǎn)"眾包地圖"的味道在里面了。
自動(dòng)標(biāo)注完成之后,如果有需要可以再讓專業(yè)標(biāo)注人員對(duì)標(biāo)注結(jié)果做校驗(yàn),順帶去除噪聲,或者添加一些其他的標(biāo)注。
所以車跑一遍,模型跑一遍,再進(jìn)行聯(lián)合優(yōu)化,數(shù)據(jù)就標(biāo)好了。
Tesla的自動(dòng)標(biāo)注系統(tǒng)用類似的方式,可以完成一個(gè)Clip里面所有要素的自動(dòng)標(biāo)注,對(duì)于靜態(tài)物體,給出3D重建結(jié)果;對(duì)于動(dòng)態(tài)障礙物,給出每一時(shí)刻具體的位置,姿態(tài),并計(jì)算出3D的運(yùn)動(dòng)軌跡。
圖8展示了由相機(jī)生成的高密度3D點(diǎn)云,點(diǎn)云囊括了路面及車輛周邊的所有障礙物。前面介紹的方法能夠解決靜態(tài)障礙物的問(wèn)題,下面介紹一下動(dòng)態(tài)障礙物的處理。
圖8,由圖像數(shù)據(jù)生成的3D點(diǎn)云
對(duì)于動(dòng)態(tài)障礙物,即運(yùn)動(dòng)目標(biāo),自動(dòng)駕駛的感知系統(tǒng)需要給規(guī)控提供每個(gè)目標(biāo)的位置,朝向,運(yùn)動(dòng)速度,過(guò)去時(shí)刻的運(yùn)動(dòng)軌跡,并估計(jì)將來(lái)的運(yùn)動(dòng)軌跡等信息。標(biāo)注系統(tǒng)知道這些信息的真值就非常重要。
在這些問(wèn)題上,自動(dòng)標(biāo)注是具有"上帝視角"的。
在這些Clip里面,每一時(shí)刻我們不僅知道過(guò)去發(fā)生了什么,還知道將來(lái)會(huì)發(fā)生什么,以近乎“作弊”的方式得知正確答案。所以我們可以很精確的給出每個(gè)目標(biāo)"將來(lái)"運(yùn)動(dòng)軌跡的真值。
此外,“上帝視角”還可以解決遮擋問(wèn)題。因?yàn)橹烂總€(gè)運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)軌跡,所以可以根據(jù)目標(biāo)被遮擋前后的運(yùn)動(dòng)軌跡還原出被遮擋狀態(tài)下的運(yùn)動(dòng)軌跡和姿態(tài),因此標(biāo)注也不再受到遮擋的影響。
圖9,自動(dòng)標(biāo)注可以解決運(yùn)動(dòng)目標(biāo)的遮擋問(wèn)題
最后得到一個(gè)Clip完整的標(biāo)注結(jié)果,如圖10。
圖10,自動(dòng)標(biāo)注的完整結(jié)果
以這樣的自動(dòng)標(biāo)注,Tesla可以輕易地標(biāo)注百萬(wàn)計(jì)的Clips來(lái)訓(xùn)練模型。
對(duì)于一些模型做的不太好的場(chǎng)景,比如低可視度的惡劣天氣,就可以使用大規(guī)模的車隊(duì)采集很多相應(yīng)場(chǎng)景的數(shù)據(jù),然后通過(guò)自動(dòng)標(biāo)注,迅速地將這些數(shù)據(jù)用來(lái)訓(xùn)練模型,快速提升性能。
自動(dòng)標(biāo)注一個(gè)星期能夠標(biāo)注1萬(wàn)個(gè)clip,純?nèi)斯ね瓿上嗤?guī)模的標(biāo)注則需要幾個(gè)月!
3 數(shù)據(jù)仿真
完成自動(dòng)標(biāo)注之后,嘗到了自動(dòng)化甜頭的馬老板甚至連數(shù)據(jù)采集車的電費(fèi)都不想出了,于是開(kāi)始琢磨數(shù)據(jù)仿真。
哈哈,開(kāi)個(gè)玩笑,數(shù)據(jù)仿真的好處并不僅僅是省錢(qián),還可以解決很多難題,比如很多具有長(zhǎng)尾效應(yīng)的Corner Case就可以用數(shù)據(jù)仿真采集到數(shù)據(jù)。
想象一下,如果高速路上突然出現(xiàn)一頭?;蚴且蝗捍笙?,讓自動(dòng)駕駛汽車怎么處理?
這樣的數(shù)據(jù)顯然非常難以采集,我們不可能真的讓一群大象沖到高速路上,然后再開(kāi)著采集車過(guò)去采數(shù)據(jù)。但如果現(xiàn)實(shí)生活中真的遇到了這樣的情況,我們依然希望自動(dòng)駕駛汽車能夠處理,所以相應(yīng)的數(shù)據(jù)是必須的。
為了解決類似問(wèn)題,Tesla的下一個(gè)撒手锏就是數(shù)據(jù)仿真。相對(duì)于真實(shí)數(shù)據(jù),仿真數(shù)據(jù)有以下幾方面的優(yōu)點(diǎn):
(1)仿真數(shù)據(jù)可以提供完美的標(biāo)注,很多難以標(biāo)注的場(chǎng)景可以使用仿真數(shù)據(jù)。
(2)仿真數(shù)據(jù)可以在真實(shí)數(shù)據(jù)難以采集的情況下提供優(yōu)質(zhì)的數(shù)據(jù)。
(3)仿真可以給規(guī)控算法提供一個(gè)安全的實(shí)驗(yàn)環(huán)境。
(4)仿真數(shù)據(jù)省錢(qián),省錢(qián),省錢(qián)!
看樣子,仿真數(shù)據(jù)是真香,不過(guò)要搞出能用的仿真數(shù)據(jù)還是要費(fèi)一番功夫的。做數(shù)據(jù)仿真,就是要讓虛擬的數(shù)據(jù)要盡可能真實(shí),Tesla團(tuán)隊(duì)為此做出了以下幾方面的努力:
1)準(zhǔn)確的傳感器模擬:數(shù)據(jù)仿真的第一要?jiǎng)?wù)就是讓模擬器產(chǎn)生的數(shù)據(jù)盡可能接近真實(shí)相機(jī)拍攝的數(shù)據(jù)。
所以Tesla團(tuán)隊(duì)從多個(gè)方面做出相應(yīng)的努力,包括對(duì)于相機(jī)傳感器噪聲,運(yùn)動(dòng)模糊,光學(xué)畸變,以至于擋風(fēng)玻璃上的衍射斑的仿真。
圖11,仿真首先需要準(zhǔn)確模擬相機(jī)各種特性
2)逼真的渲染:仿真需要實(shí)現(xiàn)接近真實(shí)的渲染,不能出現(xiàn)類似于游戲中的那種虛假畫(huà)面。為此,Tesla團(tuán)隊(duì)用上了神經(jīng)渲染(Neural Rendering)來(lái)保證渲染效果;用光線追蹤(ray tracing)來(lái)保證逼真的光照效果。
圖12,渲染效果,你敢相信這個(gè)圖是假的?
3)豐富的場(chǎng)景及演員。為了防止感知模型過(guò)擬合到幾種車型或是單一的場(chǎng)景,Tesla團(tuán)隊(duì)設(shè)計(jì)了很多的“演員”以及“道具”放到虛擬的世界中,包括形形色色的汽車和穿著各異的行人。
同時(shí)還設(shè)計(jì)了總里程超過(guò)2000Miles的虛擬道路,里程相當(dāng)于美國(guó)東西海岸之間的距離。
馬老板果然大手筆,有沒(méi)有感覺(jué)像是一個(gè)活生生的“西部世界”!
圖13,仿真需要多樣的演員和場(chǎng)景
4)大規(guī)模場(chǎng)景生成。前面提到的虛擬數(shù)據(jù)只是冰山一角,Ashok說(shuō)到,真實(shí)用來(lái)訓(xùn)練模型的數(shù)據(jù)是由這些素材按照一定章程,使用算法生成的。道路的曲率,樹(shù)木的形狀和分布,雪糕筒的擺放,電線桿,以及以各種速度前進(jìn)的車輛等等各種交通參與物都可以根據(jù)需要設(shè)置,像天氣和光照條件什么的更不在話下。
隨機(jī)地使用這些素材生成訓(xùn)練數(shù)據(jù)固然可以,但是大多數(shù)生成的場(chǎng)景下模型都可以表現(xiàn)的很好了,所以Tesla團(tuán)隊(duì)會(huì)使用一些基礎(chǔ)的機(jī)器學(xué)習(xí)算法,讓模型找到容易出錯(cuò)的場(chǎng)景,然后根據(jù)相應(yīng)的場(chǎng)景生成跟多數(shù)據(jù),再來(lái)訓(xùn)練模型。
這樣,數(shù)據(jù)和模型的閉環(huán)完成了,隨著不斷迭代,性能會(huì)一路提升。
圖14,通過(guò)調(diào)整各項(xiàng)參數(shù),可以生成各種場(chǎng)景
5)場(chǎng)景重建。Tesla還希望能夠重建真實(shí)場(chǎng)景的自動(dòng)駕駛?cè)蝿?wù)中的Failure Case,這樣能夠方便在模擬器中進(jìn)行復(fù)現(xiàn),找到并解決問(wèn)題。
如圖15,左圖表示一輛真實(shí)的汽車采集的數(shù)據(jù),經(jīng)過(guò)自動(dòng)標(biāo)注系統(tǒng)得到3D重建后的結(jié)果。用這些重建后的結(jié)果結(jié)合視覺(jué)信息,可以重建出完全一樣的虛擬場(chǎng)景。
在這個(gè)虛擬場(chǎng)景中,就可以做各種實(shí)驗(yàn),找到并解決之前的問(wèn)題。
圖15,可以從真實(shí)數(shù)據(jù)中生成虛擬數(shù)據(jù),幫助Debug
當(dāng)前,Tesla車端部署的模型早已用上了虛擬數(shù)據(jù)做訓(xùn)練,虛擬數(shù)據(jù)的規(guī)模為37.1億張圖片,4.8億標(biāo)注。這樣的數(shù)據(jù),用"核燃料庫(kù)"來(lái)比喻毫不為過(guò)。
看到這一數(shù)字,苦苦等數(shù)據(jù)的新生代民工已經(jīng)哭暈在廁所……
圖16,虛擬數(shù)據(jù)真香
Tesla的數(shù)據(jù)標(biāo)注系統(tǒng)經(jīng)歷了這樣由人工標(biāo)注到自動(dòng)標(biāo)注,再到仿真的過(guò)程,確實(shí)給我們提供了很好的借鑒,不僅僅能應(yīng)用在自動(dòng)駕駛領(lǐng)域,也能應(yīng)用到在其他CV相關(guān)的方方面面!
通過(guò)這套系統(tǒng)可以看到Tesla拿掉毫米波雷達(dá),堅(jiān)持純視覺(jué)的底氣。
Tesla的方案除了可供學(xué)習(xí)之外也啟迪我們:在CV算法已經(jīng)比較成熟的今天,單一算法的提升并不能帶來(lái)太多改變,但是算法系統(tǒng)級(jí)別的研究還有很大潛力可以挖掘,硬件,數(shù)據(jù)和算法應(yīng)該融合到一起進(jìn)行設(shè)計(jì)和迭代。
再之后,帶來(lái)的改變就真的是革命性的。
學(xué)習(xí)之余,我們也不必“長(zhǎng)他人志氣,滅自己威風(fēng)”。其實(shí)Tesla并不是一枝獨(dú)秀,國(guó)內(nèi)不少公司也早已在相關(guān)領(lǐng)域進(jìn)行了摸索并有了不錯(cuò)的積累。
接下來(lái),一起加油呀,讓AI的星星之火燒成燎原之勢(shì)!