特斯拉的計算機視覺
點擊上方“小白學(xué)視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達

根據(jù)埃隆·馬斯克(Elon Musk)的說法,截至2020年7月初,特斯拉接近于自動駕駛汽車,也稱為5級自動駕駛。無論是真的還是假的,一件事情變得越來越清晰:特斯拉已準備好在其他任何人之前實現(xiàn)完全的自主權(quán)。一旦他們這樣做,其他人可能很快就會跟進。

特斯拉實現(xiàn)了5級自主權(quán),相當于運動員羅杰·班尼斯特(Roger Bannister)首次在4分鐘內(nèi)跑了一英里。直到羅杰·班尼斯特(RogerBannister)做到了,然后所有人突然跟隨,這項任務(wù)才被認為是可能完成的。
特斯拉汽車有什么作用?
包括特斯拉在內(nèi)的任何自動駕駛汽車的主要功能是保持在正確的車道上,然后改變車道以遵循正確的軌跡。顯然,諸如障礙物檢測之類的任務(wù)占了很大一部分。Smart Summon等其他功能使汽車可以在停車場找到駕駛員。這些額外的任務(wù),除其他外,加入了主要的車道和軌跡功能,以朝著長期目標邁進:全面的自動駕駛功能。

特斯拉需要處理的所有情況
特斯拉的任務(wù)今天眾所周知。從自動駕駛汽車的最重要功能-車道檢測到行人跟蹤,它們必須涵蓋一切并預(yù)測每種情況。為此,他們使用傳感器。
特斯拉正在使用8個攝像頭來運行。這樣,它們可以覆蓋車輛周圍的所有區(qū)域,因此不會出現(xiàn)盲區(qū)。8臺攝像機與其他RADAR融合在一起,因此它們可以有效地定位并識別障礙物。RADAR是非常好的互補傳感器,因為它們可以直接估計速度。
這些相機圖像如何處理?使用神經(jīng)網(wǎng)絡(luò)。
在車輛,車道線,路緣,人行橫道以及所有其他特定的環(huán)境變量之間,特斯拉還有很多工作要做。實際上,他們必須至少同時運行50個神經(jīng)網(wǎng)絡(luò)才能使其正常運行。這在標準計算機上是不可能的。特斯拉使用稱為HydraNets的特定架構(gòu),在該架構(gòu)中共享主干。
與轉(zhuǎn)移學(xué)習類似,在這里您有一個通用塊并為特定的相關(guān)任務(wù)訓(xùn)練特定的塊,HydraNets的骨干網(wǎng)針對所有對象進行了培訓(xùn),而負責人則針對特定任務(wù)進行了培訓(xùn)。這提高了推理速度以及訓(xùn)練速度。
使用PyTorch(您可能熟悉的深度學(xué)習框架)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
每個尺寸為(1280,960,3)的圖像都將通過此特定的神經(jīng)網(wǎng)絡(luò)傳遞。
骨干網(wǎng)是經(jīng)過修改的ResNet 50 —具體的修改是使用“ Divolution卷積”。
這些頭基于語義分段-FPN / DeepLab / UNet體系結(jié)構(gòu)。但是,這似乎并不是“最終任務(wù)”,因為2D像素和3D之間的轉(zhuǎn)換容易出錯。
同時,特斯拉使用的其他東西是鳥瞰圖,因為有時候i必須以3D形式解釋神經(jīng)網(wǎng)絡(luò)的結(jié)果。鳥瞰圖可以幫助估計距離并提供對世界的更好更好的了解。
有些任務(wù)在多臺攝像機上運行。例如,深度估計是我們通常在立體攝像機上執(zhí)行的操作。擁有2個攝像頭有助于更好地估計距離。特斯拉使用神經(jīng)網(wǎng)絡(luò)進行深度回歸。


2臺攝像機深度估算
使用這種立體視覺和傳感器融合,特斯拉不需要LiDAR。他們可以僅基于這兩個攝像機進行距離估計。唯一的竅門是相機不使用相同的鏡頭:在右邊,更遠的距離顯得更近。
特斯拉還經(jīng)常進行諸如道路布局估算的工作。這個想法很相似:多個神經(jīng)網(wǎng)絡(luò)分別運行,另一個神經(jīng)網(wǎng)絡(luò)正在建立連接。

該神經(jīng)網(wǎng)絡(luò)可以是遞歸的,特斯拉的主要問題是它使用8個攝像頭,16個時間步長(循環(huán)體系結(jié)構(gòu))和32個批處理量。
這意味著每向前通過,將處理4096張圖像。實際上,一個GPU無法做到這一點-甚至沒有兩個GPU!為了解決這個問題,特斯拉將賭注押在HydraNet架構(gòu)上。 每個攝像機都通過單個神經(jīng)網(wǎng)絡(luò)進行處理。然后將所有內(nèi)容組合到中間神經(jīng)網(wǎng)絡(luò)中。令人驚奇的是,每個任務(wù)僅需要這個龐大網(wǎng)絡(luò)的幾個部分。
例如,對象檢測可以只需要前置攝像頭,前置主干和第二個攝像頭。并非所有內(nèi)容都以相同的方式處理。

特斯拉使用的8個主要神經(jīng)網(wǎng)絡(luò)
網(wǎng)絡(luò)培訓(xùn)是使用PyTorch完成的。需要執(zhí)行多個任務(wù),并且在所有48個神經(jīng)網(wǎng)絡(luò)頭上進行訓(xùn)練都可能要花費大量時間。實際上,培訓(xùn)需要70,000個小時的GPU才能完成。差不多8年了。
特斯拉正在將培訓(xùn)模式從“輪循”轉(zhuǎn)變?yōu)椤肮と顺亍?。這是想法:左側(cè)-長而不可能的選擇。在中間和右邊,它們使用的替代方案。

在那部分上,我們沒有太多細節(jié)要分享,但是從本質(zhì)上講,這些工人池會并行執(zhí)行任務(wù)以使網(wǎng)絡(luò)更快。
我們希望您現(xiàn)在對它在那里的工作方式有一個清晰的認識。這不是不可能理解的,但是我們可能有些不同。因為它涉及非常復(fù)雜的現(xiàn)實世界問題。在理想的世界中,您將不需要HydraNet架構(gòu)-您只需為每個圖像和每個任務(wù)使用一個神經(jīng)網(wǎng)絡(luò)即可,但是今天這是不可能的。
除此之外,特斯拉還必須不斷改進其軟件。他們必須收集和利用用戶的數(shù)據(jù)。畢竟,他們有成千上萬的車輛駛出那里,如果不使用他們的數(shù)據(jù)來改進他們的模型,那將是愚蠢的。每個數(shù)據(jù)都被收集,標記并用于訓(xùn)練;與稱為主動學(xué)習的過程類似
讓我們從底部到頂部定義堆棧。數(shù)據(jù)-特斯拉從車輛收集數(shù)據(jù),并由團隊標記。
GPU集群— Tesla使用多個GPU(稱為集群)來訓(xùn)練其神經(jīng)網(wǎng)絡(luò)并運行它們。DOJO —特斯拉使用一種稱為dojo的東西來僅訓(xùn)練整個體系結(jié)構(gòu)的一部分來完成特定任務(wù)。這與他們的推論非常相似。
PyTorch分布式培訓(xùn)—特斯拉使用PyTorch進行培訓(xùn)。評估—特斯拉使用損失函數(shù)評估網(wǎng)絡(luò)培訓(xùn)。云推理—云處理使特斯拉可以同時改善其車隊。@FSD推理—特斯拉建立了自己的計算機,該計算機具有自己的神經(jīng)處理單元(NPU)和GPU用于推理。陰影模式-特斯拉從車輛收集結(jié)果和數(shù)據(jù),并將其與預(yù)測結(jié)果進行比較,以幫助改進注釋:這是一個閉環(huán)!
特斯拉正在同時執(zhí)行50個任務(wù),這些任務(wù)必須全部在稱為FSD(完全自駕車)的小型計算機上運行。
為此,他們使用HydraNet體系結(jié)構(gòu),該體系結(jié)構(gòu)使他們可以為每個任務(wù)使用相同的網(wǎng)絡(luò),只是使用不同的主管。所有頭部都涉及圖像分割。特斯拉使用8臺融合在一起的相機。并非每個攝像機都用于單個任務(wù)。訓(xùn)練是使用PyTorch和一組工作人員架構(gòu)完成的(某些任務(wù)是同時進行培訓(xùn)的)。
實現(xiàn)了一個完整的循環(huán):驅(qū)動程序收集數(shù)據(jù),特斯拉標記實際數(shù)據(jù),并在其上訓(xùn)練系統(tǒng)。
?End?
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

