汽車革命的上半場是電動化,下半場是智能化,電動化只是改變了汽車的動力供給方式,并沒有改變汽車的性質,而智能化才是這場革命的主菜,將對汽車帶來顛覆性變化,汽車將由傳統的機械體,變為擁有強大計算能力的智能體。
在汽車智能化的道路上,有一個擁有絕對實力的引領者,那就是Elon Musk領導下的特斯拉,其打造的自動駕駛體系是全球關注的焦點,馬斯克曾在微博上發文稱特斯拉打造的人工智能是世界上最為先進的。
特斯拉是截止目前全球唯一一家實現了自動駕駛核心領域全棧自研自產的科技公司,在數據、算法、算力等各個層面打造了一套包含感知、規控、執行在內的全鏈路自動駕駛軟硬件架構。
整體而言,特斯拉的自動駕駛架構是采用純視覺方案實現對世界的感知,并基于原始視頻數據通過神經網絡構建出真實世界的三維向量空間,在向量空間中通過傳統規控方法與神經網絡相結合的混合規劃系統實現汽車的行為與路徑規劃,生成控制信號傳遞給執行機構,同時通過完善的數據閉環體系和仿真平臺實現自動駕駛能力的持續迭代。
下面將分別按照感知、規劃與控制、數據與仿真、算力四個部分對特斯拉實現FSD(Full Self-Drive,完全自動駕駛)的核心體系進行全面解析。
01 感知
根據2021年8月Tesla AI Day上的展示,特斯拉最新的感知方案采用純視覺感知方案,完全摒棄掉激光雷達、毫米波雷達等非攝像頭傳感器,僅采用攝像頭進行感知,在自動駕駛領域獨樹一幟。
人類通過眼睛感知世界的原理為:光線通過眼睛被視網膜采集信息,經過傳遞與預處理,信息抵達大腦視覺皮層,神經元從視網膜傳遞的信息中提取出顏色、方向、邊緣等特征結構,再傳遞給下顳葉皮層,然后經過認知神經網絡的復雜處理最終輸出感知結果。
人類視覺感知原理
自動駕駛視覺感知方案是效仿人類視覺系統原理,攝像頭便是“汽車之眼”,特斯拉汽車共計采用八個攝像頭分布在車體四周,車身前部有三個攝像頭,分別為前視主視野攝像頭、前視寬視野攝像頭(魚眼鏡頭)以及前視窄視野攝像頭(長聚焦鏡頭),左右兩側各有兩個攝像頭,分別為側方前視攝像頭和側方后視攝像頭,車身后部有一個后視攝像頭,整體實現360度全局環視視野,最大監測距離可以達到250米。
特斯拉車身攝像頭環視視野
通過“汽車之眼”采集到的真實世界圖像數據,經過復雜的感知神經網絡架構進行處理,構建真實世界的三維向量空間,其中包含汽車、行人等動態交通參與物,道路線、交通標識、紅綠燈、建筑物等靜態環境物,以及各元素的坐標位置、方向角、距離、速度、加速度等屬性參數,這個向量空間不需要和真實世界的模樣完全保持一致,更傾向于是供機器理解的數學表達。
利用攝像頭采集數據通過神經網絡輸出三維向量空間
根據特斯拉在AI DAY的公開信息,經過多輪升級迭代,特斯拉目前所采用的視覺感知框架如下圖所示,這是一套基于視頻流數據的共享特征多任務型神經網絡架構,擁有物體深度識別能力和短時記憶能力。
特斯拉視覺感知網絡架構
網絡基礎結構:HydraNet多頭網絡
特斯拉視覺感知網絡的基礎結構是由主干(Backbone)、頸部(Neck)與多個分支頭部(Head)共同組成,特斯拉取名為“HydraNet”,取意自古希臘神話中的九頭蛇。
主干層將原始視頻數據通過殘差神經網絡(RegNet)及BiFPN多尺度特征融合結構完成端到端訓練,提取出頸部層的多尺度視覺特征空間(feature map),最后在頭部層根據不同任務類型完成子網絡訓練并輸出感知結果,共計支持包括物體檢測、交通信號燈識別、車道線識別在內的1000多個任務。
HydraNet多任務網絡結構
HydraNet網絡的核心特點是多個子任務分支共享同一個特征空間,相比單一任務使用獨立的神經網絡,具有如下優勢:
1)使用同一主干統一提取特征并共享給各任務頭部使用,可以避免不同任務之間重復計算現象,有效提升網絡整體運行效率;
2)不同子任務類型之間可以實現解耦,每項任務獨立運行不會影響到其他任務,因此對單項任務的升級可以不必同時驗證其他任務是否正常,升級成本更低;
3)生成的特征空間可以進行緩存,便于各任務需求隨時調用,具有很強的可擴展性。
數據校準層:虛擬相機構建標準化數據
特斯拉通過不同的汽車采集到的數據共同構建一個通用的感知網絡架構,然而不同汽車由于攝像頭安裝外參的差異,可能導致采集的數據存在微小偏差,為此特斯拉在感知框架中加入了一層“虛擬標準相機”,引入攝像頭標定外參將每輛車采集到的圖像數據通過去畸變、旋轉等方式處理后,統一映射到同一套虛擬標準攝像頭坐標中,從而實現各攝像頭原始數據的“校準(Rectify)”,消除外參誤差,確保數據一致性,將校準后的數據喂養給主干神經網絡進行訓練。
在原始數據進入神經網絡前插入虛擬攝像頭層
空間理解層:Transformer實現三維變換
由于攝像頭采集到的數據為2D圖像級,與現實世界的三維空間不在一個維度上,因此要實現完全自動駕駛能力,需要將二維數據變換至三維空間。
為了構建出三維向量空間,需要網絡能夠輸出物體深度信息,大部分自動駕駛公司采用的方案是使用激光雷達、毫米波雷達等傳感器來獲取深度信息,并與視覺感知結果進行融合,而特斯拉堅持使用純視覺方案獲取的視頻數據來計算深度信息,其思路是在網絡結構中引入一層BEV空間轉換層,用以構建網絡的空間理解能力,BEV坐標系即鳥瞰俯視圖坐標系,是一種忽略高程信息的自車坐標系。
早期特斯拉采取的方案是先在二維圖像空間實現感知,然后將其映射至三維向量空間,再將所有攝像頭的結果進行融合,但圖像層面感知是基于地面平面假說,即把地面想象成為無限大的平面,而實際世界中的地面會有坡度,因此會導致深度信息預測不準確,這也是基于攝像頭的純視覺方案面臨的最大困難,同時也會存在單個攝像頭無法看見完整目標導致“后融合”難以實現的問題。
為了應對這一問題,使感知結果更準確,特斯拉采用“前融合”的思路,將車身四周的多個攝像頭獲得的不同視頻數據直接進行融合,然后用同一套神經網絡進行訓練實現特征從二維圖像空間到三維向量空間的變換。
引入BEV三維空間轉化層
實現三維變換的核心模塊是Transformer神經網絡,這是一種基于注意力機制的深度學習模型,源自于人腦對信息處理的機制,在面對外界大量信息時,人腦會過濾掉不重要的信息,僅將注意力集中在關鍵信息,可以大大提升信息處理效率,Transformer在應對大規模數據量級的學習任務時具有相當出色的表現。
Transformer模型需要的三個核心參數為Query、Key和Value,其中Key和Value由HydraNet主干部分生成的多尺度特征空間經過一層MLP(多層感知機網絡)訓練得到,而通過對特征空間進行池化處理得到全局描述向量(context summary),同時對輸出的BEV空間各柵格進行位置編碼(positional encoder),合成描述向量和位置編碼后再通過一層MLP可以得到Query。
特斯拉通過這種方法,可以將地面坡度、曲率等幾何形狀的變化情況內化進神經網絡的訓練參數中,實現對物體深度信息準確感知和預測,這也是特斯拉敢于放棄雷達融合路線走純視覺路線的底氣。
短時記憶層:視頻時空序列特征提取
引入空間理解層后,感知網絡已經具備對現實世界的三維向量空間描述能力,但仍然是對瞬時的圖像片段進行感知,缺乏時空記憶力,也就是說汽車只能根據當前時刻感知到的信息進行判斷,這會導致世界空間內部分特征感知不到。
例如在行車過程中,如果有行人正在穿過馬路,過程中被靜止的障礙物遮擋,而汽車僅有瞬時感知能力的話,由于在感知時刻行人正好被汽車遮擋了,則無法識別到行人,導致很大的安全風險。而人類司機在面對類似場景時,則會根據之前時刻看到行人在穿越馬路的記憶,預測其當前時刻有很大概率被汽車遮擋,且有繼續穿越馬路的意圖,從而選擇減速或者剎車避讓。
因此自動駕駛感知網絡也需要擁有類似的記憶能力,能夠記住之前某一時間段的數據特征,從而推演目前場景下可能性最大的結果,而不僅僅是基于當前時刻看到的場景進行判斷。
為了解決這一問題,特斯拉感知網絡架構引入了時空序列特征層,通過使用具有時間維度的視頻片段而非靜態的圖像來訓練神經網絡,為自動駕駛增添了短時記憶能力。
引入時空序列特征提取層以實現短時記憶能力
特斯拉同時還引入了IMU傳感器獲取到的包含速度和加速度在內的自車運動信息,結合三維向量空間特征,分別生成基于時間維度和基于空間維度的特征隊列,其中時間維度的特征隊列提供了感知在時間上的連續性,而空間特征隊列的意義是防止由于部分場景等待時間過長導致的時序信息丟失,并利用三維卷積、Transfomer、RNN等方法實現時序信息融合,進而得到多傳感器融合的視頻流時空特征空間。
此外特斯拉還嘗試了一種新的時序信息融合方法——Spatial RNN,可以省略BEV層的位置編碼,直接將視覺特征喂給RNN網絡,通過隱藏層保留多個時刻的狀態編碼,指導應對當前環境需要選取哪些記憶片段使用。
短時記憶層無疑增加了特斯拉感知網絡的魯棒性,針對惡劣天氣、突發事件、遮擋場景等,都能保持良好的感知能力。
以上便構成了特斯拉的感知網絡架構,通過端到端的訓練模型,從視頻數據輸入到向量空間輸出。
據特斯拉AI技術總監Karpathy介紹,基于以上架構的特斯拉視覺感知體系,對于深度信息的感知能力甚至可以超過雷達,同時由于具備短時記憶,特斯拉可以實現局部地圖的實時構建,通過融合多個局部地圖,理論上可以得到任何一個區域的高精地圖,這也是特斯拉目前沒有采用高精地圖作為輸入原因。
02 規劃與控制
人體在感知到周圍世界的信息后,會基于對這些信息的認知做出相應的判斷,來規劃自己的軀體應該作何反應并下發控制指令,汽車也是如此,在完成感知任務后下一步便是對感知到的信息做出決策方案,指導汽車完成相應執行動作,這便是自動駕駛的規劃與控制部分。
特斯拉自動駕駛規控的核心目標是基于感知網絡輸出的三維向量空間,通過規劃汽車行為和行車路徑使汽車到達指定目的地,同時最大化確保行車安全性、效率性及舒適性。
規控是一個非常復雜的問題,一方面汽車的行為空間具有典型的非凸性,同一個目標任務可能對應非常多個解決方案,同時全局最優解難以獲得,具體表現就是汽車可能由于陷入局部最優,無法快速做出準確決策;另一方面行為空間具有多維性,要制定針對目標任務的規劃方案需要在短時間內快速產生速度、加速度等多個維度的參數。
特斯拉采用的解決方案是將傳統規劃控制方法與神經網絡算法相結合,構建一套混合規劃系統,以任務分解的方式分別解決上述兩大難題,其規劃控制邏輯如下圖所示。
混合規劃系統解決方案
在感知獲得的三維向量空間中,基于既定的目標位置,先采用粗搜索的方式找到一條初步的路徑,然后根據安全性、舒適性等指標,圍繞初步路徑進行優化,對與障礙物間距、加速度等參數做持續微調,最終獲得一條最優的時空軌跡。
在大部分結構化場景下,例如高速公路等,粗搜索選取的是經典的A-Star算法(啟發式搜索方法),但針對一些復雜的場景,例如鬧市中心、停車場等,由于場景中非結構化元素比較多,搜索空間大,采用傳統A-Star算法消耗運算節點過多,導致決策速度緩慢。
由此特斯拉引入強化學習方法,強化學習的機制類似于人類學習模式,通過獎賞正確的行為來引導人類習得某項能力,首先利用神經網絡學習全場景特點獲得價值函數,然后通過MCTS算法(蒙特卡洛樹搜索)引導搜索路徑不斷靠攏價值函數,這種方法可以大幅度減少搜索空間,有效提高決策實時性。
MCTS算法規劃停車場行車路線
而在行車過程中,會涉及與其他車輛的博弈問題,例如變道過程、在狹窄路口錯車場景,類似場景下一般需要根據對方車輛的反應變化隨時調整自車的決策方案。
因此除了單車規劃外,特斯拉還做了交通參與者聯合軌跡規劃,根據其他車的狀態參數(速度、加速度、角速度等)規劃其路徑,進而選擇合適的自車方案,待其他車狀態發生變化后,隨時調整自車方案,盡量避免出現自車愣在原地不做反應的情況,提升自車的smart性。
狹窄路口聯合軌跡規劃
至此,特斯拉FSD的最終架構浮出水面,首先通過視覺感知網絡生成三維向量空間,對于僅有唯一解的問題,可直接生成明確的規控方案,而對于有多個可選方案的復雜問題,使用向量空間和感知網絡提取的中間層特征訓練神經網絡規劃器,得到軌跡分布,再融入成本函數、人工干預數據或其他仿真模擬數據,獲得最優的規控方案,最終生成汽車轉向、加速、剎車等控制指令,由汽車執行模塊接受控制指令實現汽車自動駕駛。
特斯拉FSD 感知-規劃-控制整體架構
03 數據標注與仿真
可以看到在特斯拉的自動駕駛方案中,無論是在感知層面還是規控層面,核心算法基本都是由數據驅動的,數據的數量和質量決定了算法的性能,因此構建一套高效獲取、標注及仿真訓練數據的閉環至關重要。
數據標注
特斯拉每年售出近百萬輛汽車,通過這些汽車日常運行,可以采集到超大規模的原始數據集,對這些數據集的標注工作特斯拉最早是外包給合作方,后來發現存在交付延遲和質量不高的情況,因此便在內部發展了上千人的標注團隊并獨立開發標注基礎設施。
特斯拉的標注最初是在二維圖像中進行的,后來發展為四維實現,除了標注三維空間外還有對時間維度的標注,直接在向量空間中完成標注后再反向投影到攝像頭對應的圖像空間中。
特斯拉的四維標注
隨著數據規模的逐漸擴大,人工標注的方式需要消耗大量人力成本,同時人類相對更擅長語義分割之類的標注任務,對于幾何圖形的標注,反倒是機器更擅長,因此特斯拉引入了自動標注的方法,實現人工與機器相結合的數據標注模式。
特斯拉實現自動標注的方案是通過汽車在一段時間內采集到的視頻、IMU、GPS、里程表等數據構成最小標注單元(Clip),由離線神經網絡系統訓練得到中間層結果,如目標物、語義分割、深度、光流等,再通過大量機器算法生成最終用以訓練的標簽集,包括行車軌跡、靜態環境重建、動態物、運動學參數等,人工可以對自動生成的標簽集進行調整干預。
自動標注方案實現過程
對于靜態標注物,例如對于某一段道路的標注,以攝像頭采集到的路面每個點的平面坐標作為輸入,通過神經網絡預測出這個點的高度及相關的語義分割、道路線邊界等三維中間結果,然后將這個三維點反向投影至各個攝像頭的二維空間,并將其與原本在二維圖像空間內直接做語義分割的結果進行對比,再基于各個攝像頭的對比結果進行跨時空維度的聯合優化實現重建,最終得到整個道路在各攝像機畫面內及視頻前后幀時間序列中的一致性標注結果。
通過不同輛車不同時間經過同一路段采集到的視頻數據,按照上述方法進行自動標注,再將所有標注結果進行融合后優化,得到該路段的精確標注結果,實現道路重建。
自動標注實現道路重建
通過這種方式,不僅可以重建道路,還可以重建墻體、屏障、建筑物等所有靜態環境物。
對于動態標注物,核心是要標注其運動學參數及行為軌跡預測,通過不同車輛在同一路段采集的含時間序列的視頻標注單元,我們不僅可以知道每個標注物過去時刻的信息,還可以知道未來時刻的信息,因此可以輕易獲取每個動態標注物運動軌跡和參數的“真值”,即使被遮擋的運動物體也可以標注出來。
動態物體自動標注
通過對靜態物體和動態物體分別標注,最終得到一個最小標注單元的完整標注結果,如下圖所示。
自動標注實現Clip的完整標注
可以看到,只需要汽車在路上行駛采集到的數據作為輸入,然后運行標注模型,再將結果進行融合優化,便可以得到任意場景的標注結果,全過程自動實現,無人工參與。
一萬個標注單元在一周內即可完成自動化標注,而純人工標注則需要幾個月的時間,自動標注大大提升了標注效率。
仿真
由于路測條件的限制,導致積累數據和訓練算法的效率偏低且成本高昂,為了更高效的實現數據訓練,特斯拉構建了一個真實世界的虛擬仿真空間,來加速FSD能力的訓練,仿真對于實現完全自動駕駛的價值如今在行業內已經普遍被認可。
自動駕駛的仿真是在模擬環境中,通過調整各類交通參與物及環境的模型參數以構建各種虛擬場景,以訓練算法應對不同場景的性能。
特斯拉仿真場景
其價值主要體現在以下幾個方面:
1、通過仿真可以建立在現實世界中難以遇到的極端場景(corner case),例如高速公路上一家三口在跑步的場景,類似的場景雖然在現實世界中存在的可能性極低,但考慮到自動駕駛的安全性,必須掌握應對此種極端場景的能力,因此可以在仿真環境下進行模擬訓練;
2、針對部分復雜場景難以直接標注的情況,可以通過仿真進行快速標注,例如在一個路況復雜的十字路口有各種川流不息的汽車、行人,由于元素眾多,要直接進行標注難度很大,而在仿真場景中,由于所有的元素的初始參數都是自行設定的,因此在模擬復雜的運動狀態時,所需要標注的參數很容易就可以通過計算得到,以此實現快速標注;
3、仿真為規控算法的訓練和驗證提供了一個安全的環境,考慮汽車駕駛安全問題的重要性,自動駕駛規控算法訓練和優化過程難以通過實際路測實現,在仿真場景中便具有非常高的自由度;
4、可以用以某些閉環場景算法的長期持續訓練,例如泊車場景,這個場景下空間是閉環的,參與者有限,因此通過仿真持續模擬各種工況,可以有效地對自動駕駛泊車能力進行訓練;
5、對于現實世界中FSD失敗的場景,可以通過仿真重現失敗場景,在仿真環境中尋找失敗原因并進行算法訓練和優化。
一套完整的仿真體系需要包括仿真場景、仿真系統和仿真評估三大部分,這里僅介紹特斯拉在仿真場景層面所做的工作。
自動駕駛的實現首先是基于感知能力,因此對感知系統的準確仿真非常關鍵,特斯拉的感知系統是基于純攝像頭,因此對攝像頭的各種屬性進行軟硬件建模,如傳感器噪聲、曝光時間、光圈大小、運動模糊、光學畸變等,甚至對于擋風玻璃上的衍射斑這種細節,特斯拉也考慮在內,這套準確的傳感器仿真系統不僅可以用以FSD的訓練和驗證,還可以指導攝像頭的硬件選型和設計。
準確的傳感器仿真
為了真實的模擬現實世界場景,要求仿真渲染要盡可能做到逼真,特斯拉利用神經網絡渲染技術來提升視覺渲染效果,同時用光線追蹤的方法來模擬逼真的光照效果。
逼真的視覺渲染
為了避免仿真環境過于單一,導致感知系統過擬合的問題,特斯拉對仿真環境參與物進行了充分的建模,包括多元交通參與者(例如車、行人等)和靜態環境物(例如建筑、樹、道路等)等,截至最新Tesla AI Day公開的信息,特斯拉總共已經繪制了2000+公里的道路環境。
多元交通參與者與地理位置
針對自動駕駛可能遇到的各種場景,構建了大規模的可擴展場景庫,由計算機通過調整參數生成不同的場景形態,例如道路曲度等,同時由于大量的仿真場景可能是無用的,例如實際該場景下汽車的決策已經正確,為了避免計算資源的浪費,特斯拉還引入了MLB等神經網絡用來尋找故障點,重點圍繞故障點進行仿真數據創建,反哺實際規劃網絡,形成閉環。
大規模場景生成
除了直接在虛擬場景中進行仿真訓練,特斯拉還希望可以在仿真環境中重現真實世界場景,以便可以復現FSD失敗的場景,實現在仿真環境下的優化迭代后再反哺汽車算法模型,實現“數據閉環”,因此在完成真實世界片段的自動標注重建后,再疊加視覺圖像信息,生成與真實世界“孿生”的虛擬世界。
場景重現
特斯拉通過仿真獲得的虛擬數據規模已達到37.1億張圖片及4.8億標注,且已實際融入車端模型中,用以提升FSD性能。
04 算力
上面對特斯拉自動駕駛所采用的算法架構和數據閉環進行了介紹,而超大規模的數據和高性能的算法均需要強大的算力支撐,特斯拉為此自研打造了服務于自動駕駛的全球最強超級計算機——Dojo。
Dojo是一種通過網絡結構連接的分布式計算架構,具有大型計算平面、極高帶寬、低延遲、可擴展性極強等特點,去年8月的AI Day,特斯拉公布了為Dojo超算打造的自研AI訓練芯片D1。
Dojo?D1芯片
D1芯片采用分布式結構和7納米制造工藝,單片面積僅645平方毫米,具有500億個晶體管和354個訓練節點,內部電路長達17.7公里,單片FP32算力可達22.6 TOPs,BF16 算力可達362 TOPs,1TOPS代表處理器每秒鐘可進行一萬億次(10^12)操作,同時具有GPU級的計算能力和CPU的連接能力,I/O帶寬是最先進的網絡芯片的2倍。
同時D1芯片之間可以實現無縫連接,特斯拉將25個D1芯片連接起來組成了獨立的訓練模塊,模塊算力高達9 PFLOPs(每秒處理9千萬億次),I/O帶寬最大達每秒36TB。
D1組成的訓練模塊
那么將120個訓練模塊(包含3000顆D1芯片)集成在一塊,就組成了AI訓練計算機柜——Dojo ExaPOD,其包含超過100萬個訓練節點,BF16/CFP8算力高達1.1 EFLOPs(每秒110京次的浮點運算,1京=10^18),超越了當時排名全球第一的日本富士通0.415 EFLOPs,且在相同成本下,ExaPOD具有4倍性能和1.3倍能耗節約,碳排放僅占1/5。
Dojo?ExaPOD 超級計算機
而且由于DI芯片的無限連接特性,理論上由其組成的Dojo計算機性能拓展無上限,因此目前的算力不是終點,特斯拉預計下一代Dojo還會有10倍性能提升。
超強算力將持續服務于特斯拉大規模數據訓練、自動駕駛算法、云計算能力和其他AI方向。
05 寫在最后
特斯拉全棧自研自動駕駛體系在全球已經處于領先地位,卻也仍然有非常大的提升空間,例如:
1、感知層面進一步逼近人類甚至超越人類,馬斯克曾在采訪中提到過特斯拉已經在使用攝像頭采集可見光的光子信息,跳過圖像信號處理階段,直接將最原始的光子數據輸入給神經網絡訓練,這將使純視覺方案獲得遠超人類的夜間視距。
2、規控層面提升自動駕駛的“老司機”屬性,特斯拉目前公開的決策規劃的技術方案并不多,從已公開的部分可以看到整體比較中規中矩,如何進一步發展規控能力,讓人類對自動駕駛擁有更多信任感,是一個非常重要的課題。
3、仿真層面打造自動駕駛“數字孿生”,仿真是實現完全自動駕駛的關鍵一環,主要由于仿真的試錯成本非常低,可以加速自動駕駛能力訓練,促進L4級以上自動駕駛提早到來。
自動駕駛作為人工智能技術的“皇冠”,可以說是智能時代的“核彈”,是全球高科技企業競相追逐的科技高地,自動駕駛的持續發展最終很有可能將引發汽車交通行業乃至整個人類社會運行方式的巨大變革。
數據、算法、算力是驅動自動駕駛的三駕馬車,特斯拉通過大規模汽車生產獲取數據、持續迭代FSD算法反哺汽車性能、自研超級算力服務AI訓練的模式成功打造了實現完全自動駕駛的良性飛輪。
特斯拉正在并將持續引領智能汽車革命。
編輯:黃飛
?
評論