汽車電子
返回首頁

AI DAY解讀 — 特斯拉 Autopilot的視覺架構

2021-08-26 來源:Astroys

是的,我還在跟特斯拉AI DAY纏斗。AI DAY那天最復雜、也最難懂的恐怕就是Andrej Karpathy發表的視覺架構部分,通過8個攝像頭獲取的圖像到底是如何讓車輛在道路上自動駕駛的?有步驟,有內容。

 

我們都知道特斯拉用8個攝像頭來感知周圍環境。但你不能簡單地把從這8個攝像頭中獲取的所有信息直接輸入給人工智能,讓它來做判斷,因為這會一次處理太多信息,而現在的計算機還沒有這么強大。

 


為了解決這個問題,就必須壓縮數據,同時保留最相關的信息,類似于我們的大腦對眼睛的信息所做的那樣。為了做到這一點,特斯拉將這8個攝像頭的數據轉移到了一個更小的矢量空間(Vector Space)。

 

 

 

這是一個三維空間,包含了環境中所有的相關信息,如路標、汽車、人、車道線等。然后Vector Space就用來實現汽車必須做的許多不同的任務,如物體檢測、交通信號、車道線預測等。

 

但如何從這8個攝像頭組成的三維輸入,變成一個單一的三維輸出呢?這基本上是通過以下步驟實現的,并且所有8個攝像頭都是并行完成的,效率非常高。

 

 

牢記這張圖,下面會反復提及


第1步:Rectify


首先,圖像被送入一個校正模塊(Rectify),該模塊接收圖像,并通過將其轉化為虛擬表示來校準它們。這一步極大地提高了Autopilot的性能,因為它會使圖像在一般情況下(沒有發生事件時)看起來更加相似,使網絡能夠更容易地比較圖像,并聚焦于不屬于典型背景的重要部分。


第2步:RegNet


然后,這些新生成的圖像被送入到RegNet。 這個RegNet只是CNN的一個優化版本。基本上,RegNet會把這些新的圖像,像金字塔一樣反復壓縮信息,網絡的起點由一些神經元組成,這些神經元代表圖像的一些變化集中在特定的物體上,告訴我們它在空間上的位置。越深入,這些圖像就越小,但它們將代表整體圖像,同時也聚焦于特定物體。因此,在這個金字塔的末端,最終會有許多神經元,每個神經元都告訴你關于整體圖像的一般信息,是否包含一輛車、一個路標,等等。

 

為了兩全其美,會在這個金字塔的多個層上提取信息,這也可以看作是不同尺度的圖像表示,側重于原始圖像的特定特征。我們最終得到的是局部的和一般的信息,所有這些信息都告訴我們圖像是由什么組成的,以及在哪里。

 

 


第3步:BiFPN

 

然后,這些信息被送入BiFPN,這個模型會迫使這些來自不同尺度的信息在一起溝通,并在其中包含的一般和特殊信息中提取最有價值的知識。BiFPN的輸出將是來自8個攝像頭的最有趣和有用的信息。因此,它既包含了關于圖像的一般信息,也包含具體信息,如在哪里、什么尺寸等等。例如,它將使用來自金字塔頂端提取的深層特征的一般知識的context理解Karpathy所展示的情況,“因為這兩個模糊的燈光是在兩條車道之間的道路上,它們可能是附著在一個特定的物體上,這個物體是在網絡的早期層中從一個攝像頭中識別出來的。”

 

利用這一context,并知道它是一個單一物體的一部分,就可以成功地猜到這些模糊的燈光是一輛車上的。


第4步:Transformer


所以,現在有了來自所有8個攝像頭的不同比例的最有用的信息。然后需要壓縮這些信息,這樣就不會有8個不同的數據輸入,這是通過Transformer模塊完成的。簡而言之,這個模塊將把8個不同圖片的濃縮信息,轉移到我們想要的Vector Space。它將使用這些一般的和空間信息,這里稱為Key,計算Query,就是Vector Space的維度,并試圖找出什么東西(what)去哪里(where)。例如,一個Query可以被看作是Vector Space的一個像素,尋找前方車輛的一個特定部分。這個值將相應地合并這兩個信息,告訴我們在Vector Space中什么東西(what)在哪里(where)。Transformer可以被看作是8個攝像頭和Vector Space的橋梁,了解各攝像頭之間的所有的相互關系。

 

時間戳問題


現在,終于把數據濃縮成了一個三維表示,可以開始真正的工作了。這是他們用來標注用于訓練導航網絡數據的空間,因為這個空間沒有8個攝像機那么復雜,更容易進行標注。現在有了一個有效的方法來表示所有的8個攝像頭,但仍然有一個問題:單攝像頭的輸入是不智能的。如果對面的一輛車被另一輛車遮擋,就需要Autopilot知道它還在那里,那輛車并沒有因為另一輛車在它前面就消失了。為了解決這個問題,就必須使用時間信息,或者,換句話說,使用多個幀。特斯拉選擇使用“Feature Queue”和“Video Module”。

 


第5步:Feature Queue


Feature Queue將占用一些幀并將其保存在緩存中。然后,每隔一米,或每隔27毫秒,就會把緩存的幀發送給模型。在這里,他們同時使用時間或距離測量來衡量車輛的移動和停止。然后,這些剛剛處理過的幀的三維表示與它們相應的位置和包含車輛加速度和速度的運動學數據合并,告訴我們它在每一幀是如何運動的。


第6步:Video Module


所有這些寶貴的信息隨后被送入Video Module。Video Module利用這些信息來理解車輛本身和它在當前和過去幾幀中的環境。這個理解過程是通過一個RNN完成的,RNN會在所有幀上反復處理所有這些信息,以更好地理解Context,并最終構建出定義明確的地圖。由于使用了過去的幀,RNN現在就有更多的信息來更好地理解當前的狀況,這對臨時遮擋等情況來說是必要的。

 

 

這就是視覺過程的最終架構,它的輸出在下圖的右下,你可以看到其中一些輸出被翻譯回圖像,以顯示車輛在我們對世界的表述中看到的東西,或者說是8個攝像頭的表述。Video Module的輸出,會并行地發送給車輛的所有任務,如物體檢測、車道預測、交通信號等。

 

 


進入汽車電子查看更多內容>>
相關視頻
  • 由內到外的智能網聯車:車聯網現狀及發展

  • labview2016

  • 直播回放: TI DLP? 技術在汽車上的創新及全新應用

  • 回放 : TI mmWave 毫米波雷達在汽車車內的應用

  • Amplifier Protection Series

  • TI Jacinto 系列產品在 ADAS 中的應用

    相關電子頭條文章
萝卜大香蕉