日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

Tesla Autopilot 技術(shù)架構(gòu)解讀

2021-06-03 15:46:22·  來源:汽車電子與軟件  
 
本文來自對Karpathy的幾個技術(shù)分享視頻的分析,其中數(shù)據(jù)和截圖也來自視頻,其中加入作者自己的解讀,所以不一定完全正確,如果有錯誤的地方歡迎大家指正探討。01
本文來自對Karpathy的幾個技術(shù)分享視頻的分析,其中數(shù)據(jù)和截圖也來自視頻,其中加入作者自己的解讀,所以不一定完全正確,如果有錯誤的地方歡迎大家指正探討。

01  FSD Overview

Tesla Autopilot 技術(shù)架構(gòu)解讀
Figure 1 Tesla Autopilot傳感器分布

FSD裝備8臺相機(jī)每臺相機(jī)在36Hz頻率采集960x1280的三通道圖像(相機(jī)參數(shù)Karpathy只是舉例說明,并不一定是Tesla實(shí)際使用的相機(jī)Spec),利用所有8個相機(jī)的圖像,F(xiàn)SD進(jìn)行超過1000種不同任務(wù)的感知預(yù)測(數(shù)字統(tǒng)計(jì)位2020年上半年數(shù)據(jù)現(xiàn)在可能有所增加)。

所有這些感知功能跑在Tesla自研的FSD Computer上,這臺機(jī)器有著兩顆冗余的FSD chip,每個芯片提供72TOPS(int8)的計(jì)算能力,兩顆加起來共提供144TOPS算力,其中自帶的高速圖像處理模塊理論上可以支持8顆攝像頭在60Hz的頻率上傳輸1080P的圖像,其運(yùn)算能力高于目前市場上的其他高端自動駕駛芯片如Xavier, EyeQ5等。

根據(jù)2020年底消息,Tesla將在近期將前向毫米波雷達(dá)更新成具有高度分辨率的4D毫米波雷達(dá)以提高對于靜態(tài)障礙物的檢測能力。

FSD目前包含的1000多項(xiàng)檢測任務(wù)覆蓋面非常廣,包括但不限于下面分類的超過50種Main Task:

·  Moving Objects: Pedestrian, Cars, Bicycles, Animals, etc.

·  
Static Objects: Road signs, Lane lines, Road Markings, Traffic Lights, Overhead Signs, Cross-Walks, Curbs, etc.

·  
Environment Tags: School Zone, Residential Area, Tunnel, Toll booth, etc.

其中每個Main Task下邊還有若干Sub tasks,例如車輛檢測還包括車輛的靜止,朝向,開門等子任務(wù)的檢測,Stop Sign檢測包括如右轉(zhuǎn)無需停車等細(xì)分類檢測等等。

除了檢測任務(wù),F(xiàn)SD還有訓(xùn)練很多功能網(wǎng)絡(luò),包括但不限于下面功能48個子網(wǎng)絡(luò):

·  Depth Network: 用以進(jìn)行稠密的深度估計(jì)

·  
Birdeye View Network: 用以進(jìn)行圖像到Birdeye view的坐標(biāo)投影

·  
Layout Network: 用以推測道路元素的布局情況

·  
Pointer Network: 用以預(yù)測道路元素間的關(guān)聯(lián),例如紅綠燈對應(yīng)車道

另外FSD將基于sampling的輸出變?yōu)榛趓asters的輸出,二者區(qū)別是sampling的輸出來自確定geometry的采樣,rasters則能夠表示uncertainty,more uncertainty意味著輸出更加的diffused。

Tesla Autopilot 技術(shù)架構(gòu)解讀1

02  Model Architecture

為了進(jìn)行如此復(fù)雜的感知任務(wù),特斯拉在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的選擇上做了很多考量。

2.1. Single task network vs Multi tasks network

Tesla Autopilot 技術(shù)架構(gòu)解讀2

Tesla Autopilot 技術(shù)架構(gòu)解讀3

2.2. Loosely coupled heads vs Tightly coupled heads

松耦合指的是每個相機(jī)單獨(dú)進(jìn)行感知,然后將不同相機(jī)的感知結(jié)果利用Filter或其他技術(shù)進(jìn)行拼接(stitch),例如1.0版本的Smart Summon就采用了這一方法,利用不同相機(jī)檢測到的curb進(jìn)行拼接的到停車場的Occupancy Grid的地圖,從而在這個地圖進(jìn)行導(dǎo)航。

Tesla Autopilot 技術(shù)架構(gòu)解讀4
Figure 2 基于Occupancy Grid的老版本Smart Summon

但是在不同相機(jī)和不同frame間track不同的grid是一件困難的工作。在新版本的Smart Summon中,Tesla采用了對不同相機(jī)Feature層輸入一個Fusion Layer進(jìn)行Feature層面的融合,然后輸入Birdeye View Network,最終在Birdeye的基礎(chǔ)上再分支成不同的heads進(jìn)行如Object Detection, Road Line Segmentation, Road edge detection等輸出。

Tesla Autopilot 技術(shù)架構(gòu)解讀5
Figure 3 利用各相機(jī)直接進(jìn)行Birdeye View輸出,可輸出道路邊緣,隔離帶,通行區(qū)域等分割結(jié)果

最終FSD使用的是一個規(guī)模巨大的Multi-head network,其中主干網(wǎng)絡(luò)采用類似ResNet-50的架構(gòu)用以進(jìn)行Feature的提取,功能分支采用與FPN/DeepLabV3/UNet類似的結(jié)構(gòu)用以實(shí)現(xiàn)不同功能的輸出。

Tesla Autopilot 技術(shù)架構(gòu)解讀6
Figure 4 不同相機(jī)間特征共享的架構(gòu)

Tesla Autopilot 技術(shù)架構(gòu)解讀7
Figure 5 不同相機(jī)負(fù)責(zé)不同的功能分支

最終FSD的網(wǎng)絡(luò)架構(gòu)如上面兩圖所示的共享Backbone加上眾多功能Heads的多任務(wù)HydraNet,不同相機(jī)負(fù)責(zé)不同的功能,且網(wǎng)絡(luò)引入了RNN的結(jié)構(gòu)來進(jìn)行跨時間的感知預(yù)測,例如前向3相機(jī)Main+ Narrow+ Fisheye+ Pillar 相機(jī)的feature負(fù)責(zé)車道線檢測追蹤,Pillar+ Fisheye加上過去時刻的輸出一同負(fù)責(zé)Cut-in(加塞)檢測等。不同功能在不同相機(jī)中共享層次結(jié)構(gòu)是基于一些cross features可以促進(jìn)各自任務(wù)的觀察而設(shè)計(jì)的,同時有些任務(wù)間共享層次結(jié)構(gòu)又會相互影響,應(yīng)以避免。例如動態(tài)物體和紅綠燈就不應(yīng)該共享過于底層的Feature,但是車道線檢測和可通行區(qū)域就應(yīng)共享更多的底層特征。Karpathy還提到他發(fā)現(xiàn)的一些有趣的現(xiàn)象,例如在訓(xùn)練部分網(wǎng)絡(luò)的時候同時使用5個task的loss來獲得更好的features,但是訓(xùn)練得到的網(wǎng)絡(luò)只會用于5個task中的3個任務(wù)的inference使用。

03  Training

訓(xùn)練這樣一個擁有48個網(wǎng)絡(luò),1000多個感知輸出的龐大的Multi-task模型是十分苦難的,單次訓(xùn)練就要花費(fèi)70000GPU小時,更別說模型訓(xùn)練要經(jīng)過多次迭代,調(diào)優(yōu)等過程,雖然為了提高訓(xùn)練效率,Tesla自研了專門用于訓(xùn)練的Dojo Computer,但是訓(xùn)練過程仍充滿了各種挑戰(zhàn)。

3.1. Loss Function

在龐大的HydraNet中,所有的子任務(wù)的Heads最終都通過加權(quán)平均的辦法整合到一個Loss里面,訓(xùn)練的過程就是優(yōu)化這個整合后的Loss。這些不同子任務(wù)的weights則是這個模型的hyperparameter。

學(xué)術(shù)研究中有通過自動的方法找到最優(yōu)的子任務(wù)權(quán)重的辦法,但是當(dāng)子任務(wù)數(shù)量擴(kuò)展到數(shù)百上千后,這樣的自動方法就變得不可使用。

最終這些子任務(wù)權(quán)重的選擇變成一個十分需要謹(jǐn)慎思考,且一旦確定不能輕易更改的超參數(shù)。選擇這些超參數(shù)需要綜合考慮許多因素,例如:

·  不同任務(wù)的Loss有著不同的scale,而且classification和regression也需要不同的權(quán)重

·  不同任務(wù)有著不同的重要性,例如行人檢測就有著比限速標(biāo)志牌更高的優(yōu)先級。

·  有些任務(wù)比較簡單,其他任務(wù)比較困難,例如標(biāo)示牌變化不大,很快模型就能訓(xùn)練到很好的效果,但是車道元素分布網(wǎng)絡(luò)則十分難尋來呢

·  長尾任務(wù)數(shù)據(jù)十分稀少(例如異型車輛,事故等檢測數(shù)據(jù)十分稀有)

·  有些任務(wù)數(shù)據(jù)有著大量的噪聲

為了達(dá)到模型在所有任務(wù)都能取得良好的性能,需要合理的調(diào)節(jié)不同任務(wù)的權(quán)重,并且一旦確定不同權(quán)重的比重,就要在確定的權(quán)重下進(jìn)行任務(wù)的調(diào)優(yōu),而不能頻繁更改權(quán)重,導(dǎo)致其他任務(wù)的性能回退。

3.2. Training Across Different Tasks

因?yàn)槟P驮诓煌蝿?wù)間進(jìn)行不同程度的參數(shù)共享,因此利用不同的數(shù)據(jù)對一些子任務(wù)進(jìn)行訓(xùn)練的時候,并不是整個網(wǎng)絡(luò)模型都會得到訓(xùn)練,而是根據(jù)任務(wù)和數(shù)據(jù)sample整體網(wǎng)絡(luò)的一部分進(jìn)行訓(xùn)練,如下圖所示。

Tesla Autopilot 技術(shù)架構(gòu)解讀8
Figure 6某一項(xiàng)子任務(wù)對應(yīng)的數(shù)據(jù)只對粉色部分的模型進(jìn)行訓(xùn)練

為了避免訓(xùn)練部分網(wǎng)絡(luò)的時候?qū)τ谄渌蝿?wù)的影響,可以采取類似Transfer Learning中的freeze部分參數(shù)的方法。

3.3. Data Balance

為了解決長尾任務(wù)的訓(xùn)練,采用Data Oversampling來保證任務(wù)內(nèi)的Data Balance以及任務(wù)間的Data Balance。下圖是紅綠燈檢測任務(wù)內(nèi)的Data Oversampling的示意圖:

Tesla Autopilot 技術(shù)架構(gòu)解讀9
Figure 7 通過Oversampling使黃燈和藍(lán)色通行等的比例達(dá)到合適程度

在現(xiàn)實(shí)交通燈數(shù)據(jù)中,黃燈和表示通行的藍(lán)燈非常有限,然而過度inbalance的數(shù)據(jù)將使得訓(xùn)練正確識別這些數(shù)據(jù)的模型變得十分困難,通過oversampling達(dá)到在一項(xiàng)任務(wù)內(nèi)基本的一個數(shù)據(jù)分布的平衡。

另外在任務(wù)間也通過不同任務(wù)的優(yōu)先級,重要程度等設(shè)定oversampling rate來調(diào)節(jié)不同任務(wù)的性能。

3.4. Hyper Parameter

除了上面提到的oversampling rates,task loss weights等hyperparameter外不同任務(wù)head的復(fù)雜程度,正則方法等也是hyperparameter調(diào)節(jié)的重要參數(shù)。

例如對于數(shù)據(jù)量不同的任務(wù),應(yīng)該對長尾任務(wù)及噪聲較多的任務(wù)應(yīng)使用較小規(guī)模的head以避免overfitting。

對于常用的正則方法early stopping,由于不同任務(wù)有不同的訓(xùn)練曲線,應(yīng)通過調(diào)節(jié)不同任務(wù)的權(quán)重使得曲線趨勢基本一致,以決定·一個統(tǒng)一的early stopping的條件。

Tesla Autopilot 技術(shù)架構(gòu)解讀10
Figure 8 多任務(wù)的模型在調(diào)節(jié)權(quán)重前無法使用Early Stopping

3.5. Multi-task Training Scheduler

如下圖所示,Tesla利用分布式的訓(xùn)練機(jī)器進(jìn)行多任務(wù)的訓(xùn)練以減少訓(xùn)練時間,Karpathy提到Tesla更多采用后兩種訓(xùn)練任務(wù)安排

Tesla Autopilot 技術(shù)架構(gòu)解讀11
Figure 9 利用分布服務(wù)器對子任務(wù)采取不同的訓(xùn)練流程

04  Workflow & Collaboration

4.1. Data Engine& Active Learning


Tesla利用Shadow Mode來采集數(shù)據(jù),利用Trigger來觸發(fā)主動的數(shù)據(jù)獲取,從而實(shí)現(xiàn)Active Learning。Data Engine的示意圖如下所示:

Tesla Autopilot 技術(shù)架構(gòu)解讀12
Figure 10 Tesla Data Engine示意圖

使用Data Engine來完成一項(xiàng)新任務(wù)的流程如下:

Tesla Autopilot 技術(shù)架構(gòu)解讀13

其中Trigger是利用高recall低precision的粗分類器來識別特定需要訓(xùn)練的場景來達(dá)到對上傳數(shù)據(jù)進(jìn)行篩選的機(jī)制,以提取rare cases從而提高數(shù)據(jù)的獲取率。同時利用不同任務(wù)trigger的sampling rate可以控制不同任務(wù)占用的訓(xùn)練資源,從而平衡不同任務(wù)的訓(xùn)練效果。之所以trigger可以工作是因?yàn)閠rigger本質(zhì)上是一個簡化了的模型,同時data engine獲取的數(shù)據(jù)量已經(jīng)大大精簡,因此后面還可以再利用人工進(jìn)行一輪篩選來剔除trigger獲取的的false positive的訓(xùn)練數(shù)據(jù)。

通過不斷主動向Tesla超過1百萬在全球行駛的車輛索取數(shù)據(jù),Tesla得以獲得大量所需的特定類型的數(shù)據(jù)以訓(xùn)練龐大的HydraNet模型。

4.2. Collaboration

由于Tesla Autopilot Team是一個規(guī)模很小的團(tuán)隊(duì),而龐大復(fù)雜的模型功能使得每個人經(jīng)常負(fù)責(zé)不同的任務(wù),因此一個標(biāo)準(zhǔn)的團(tuán)隊(duì)合作流程就成了如何調(diào)優(yōu)模型同時不使得模型退化的關(guān)鍵。

Karpathy的報(bào)告中提到幾點(diǎn)在多人合作的AI項(xiàng)目中合作的經(jīng)驗(yàn),值得工業(yè)界團(tuán)隊(duì)借鑒。

- Hyperparameter不能夠隨意更改以改進(jìn)自己的工作任務(wù)性能

因?yàn)門esla FSD要處理復(fù)雜的任務(wù),進(jìn)行1000+項(xiàng)感知任務(wù),因此即使FSD使用一個極其巨大的HydraNet模型,該模型的表達(dá)能力也是有限的(Finite Model Capacity),每個團(tuán)隊(duì)成員在優(yōu)化自己任務(wù)的時候應(yīng)選用正確的方法,而不損害已有的模型性能。例如通過提高自己sub task在Data Engine里的sampling rate,或者提高sub task在整體Loss中的權(quán)重,甚至簡單提高自己sub task loss function的scale,就可以使訓(xùn)練資源,模型capacity向自己sub task傾斜已獲得虛假的性能提升,這種行為是容易實(shí)施的投機(jī)取巧,要嚴(yán)格杜絕。

- 要盡量避免Finetune歷史記錄復(fù)雜化

通過Finetune,可以獲得更好的模型參數(shù),然而不像傳統(tǒng)軟件有著像git一樣的版本控制軟件去記錄代碼的更改,neural network的finetune歷史往往難以追蹤。如果放任復(fù)雜的finetune歷史交織在一起,所導(dǎo)致的問題是可能最終獲得了一個很好的模型參數(shù),但這樣的參數(shù)是強(qiáng)依賴于復(fù)雜的finetune順序而獲得的,因?yàn)閒inetune順序不可追蹤,因此這樣的模型參數(shù)即使性能優(yōu)秀,但是其缺點(diǎn)是不能復(fù)現(xiàn),因此實(shí)際工作中要盡量避免復(fù)雜的finetune疊加。

05  evaluation & Test

Karpathy將以Neural Network為主實(shí)現(xiàn)功能的軟件稱為Software2.0,與依賴邏輯,數(shù)據(jù)結(jié)構(gòu),算法的傳統(tǒng)軟件不同,Software2.0缺乏業(yè)界共識的Best Practice。為此Tesla在開發(fā)過程中借鑒了很多傳統(tǒng)軟件中Test Driven的思路思路。

Tesla利用強(qiáng)大的Data Engine獲取大量的Corner case的數(shù)據(jù)生成Unit Tests/Regression Tests for neural networks,例如下圖所示就是特斯拉Stop Signs的CT流程,所有對于模型的更新必須保證模型的性能不發(fā)生回退,才能夠提交更改,而保證不回退的辦法就是所有Unit tests必須通過。

Tesla Autopilot 技術(shù)架構(gòu)解讀14
Figure 11 Tesla Stop Sign Regression Test示意圖 
分享到:
 
反對 0 舉報(bào) 0 收藏 0 評論 0
滬ICP備11026917號-25