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