特斯拉Ai系統(Day最硬核的解讀來了)
2023-04-28 12:05:44 1
車東西(公眾號:chedongxi)
作者 | 趙行
編輯 | 曉寒
在剛剛過去的國慶節,特斯拉舉辦了第二屆 AI Day活動,在活動上除了展示了其人形機器人Optimus的原型機、自研的Dojo超算之外,還重點介紹了其自動駕駛FSD的更多細節。
其自動駕駛相關負責人非常深入的介紹了特斯拉在感知、規劃、矢量地圖、自動標註、仿真和基礎設施等方面的布局,非常全面的展示了特斯拉FSD算法進展。
發布會結束後,也引起了國內眾多自動駕駛相關專家學者的關注。清華大學清華大學交叉信息研究院助理教授,博士生導師趙行博士也非常細緻的梳理的特斯拉AI Day上展示的一些關鍵技術和進展。
趙行2015年在MIT聯合開發了第一門自動駕駛課程,後被推廣到全世界十餘所高校進行應用教學,並在2015年獲得ICCP最佳論文獎。其在2019年博士畢業於麻省理工學院。博士期間師從MIT AI 決策系主任Antonio Torralba教授,主要研究方向為計算機視覺,多模態和多傳感器的機器學習。
清華大學清華大學交叉信息研究院助理教授,博士生導師趙行博士
也是在2019年,趙行加入Waymo擔任研究科學家,提出了自動駕駛行為預測中一系列框架型的工作,為行業大多數公司所使用或借鑑。其本人也入選2020年福布斯中國U30科學精英榜。
2021年加入清華大學擔任助理教授,研究涵蓋自動駕駛的整個算法棧,以及多模態和多傳感器的機器學習。在自動駕駛方面,提出了「以視覺為中心的自動駕駛VCAD」方案,被業界廣泛採納,並落地應用。目前在清華大學組建和指導MARS Lab課題組,主要研究興趣為自動駕駛,多模態學習和計算機視覺。在國際頂級期刊和會議發表論文共計40餘篇,Google Scholar引用共計8000餘次。研究工作曾被BBC,NBC, 麻省理工科技評論等多家主流科技媒體報導。
可以說,趙行博士對於自動駕駛方面有非常深入的研究,對於特斯拉AI Day上展示的技術也有非常深刻的認知。在獲得了趙行博士的同意後,我們轉載其關於特斯拉AI Day活動的分析文章。
以下為趙行博士原文,為方便理解,車東西做了一些編輯:
9月30日(美國時間)的Tesla AI Day,特斯拉發布了初版的Optimus機器人,自動駕駛FSD的更多細節也慢慢浮現在大眾的眼前。我整理了Tesla FSD算法方面值得重點關注的進展與大家分享。
Ashok在一開場就講到,特斯拉是一個典型的AI公司,過去一年訓練了75000個神經網絡,意味著每8分鐘就要出一個新的模型,共有281個模型用到了特斯拉的車上。接下來我們分幾個方面來解讀特斯拉FSD的算法和模型進展。
1、感知 Occupancy Network
2、規劃 Interactive Planning
3、矢量地圖 Lanes Network
4、自動標註 Autolabeling
5、仿真 Simulation
6、基礎設施 Infrastructure
一、感知 Occupancy Network
特斯拉今年在感知方面的一個重點技術就是Occupancy Network (佔據網絡)。研究機器人技術的同學肯定對occupancy grid不會陌生,occupancy表示空間中每個3D體素(voxel)是否被佔據,可以是0/1二元表示,也可以是[0, 1]之間的一個概率值。
為什麼估計occupancy對自動駕駛感知很重要呢?因為在行駛中,除了常見障礙物如車輛、行人,我們可以通過3D物體檢測的方式來估計他們的位置和大小,還有更多長尾的障礙物也會對行駛產生重要影響。例如:1.可變形的障礙物,如兩節的掛車,不適合用3D bounding box來表示;2.異形障礙物,如翻倒的車輛,3D姿態估計會失效;3.不在已知類別中的障礙物,如路上的石子、垃圾等,無法進行分類。因此,我們希望能找到一種更好的表達來描述這些長尾障礙物,完整估計3D空間中每一個位置的佔據情況(occupancy),甚至是語義(semantics)和運動情況(flow)。
特斯拉用下圖的具體例子來展現Occupancy Network的強大。不同於3D的框,occupancy這種表徵對物體沒有過多的幾何假設,因此可以建模任意形狀的物體和任意形式的物體運動。圖中展示了一個兩節的公交車正在啟動的場景,藍色表示運動的體素,紅色表示靜止的體素,Occupancy Network精確地估計出了公交車的第一節已經開始運動,而第二節還處於靜止狀態。
對正在啟動的兩節公交車的occupancy估計,藍色表示運動的體素,紅色表示靜止的體素
Occupancy Network的模型結構如下圖所示。首先模型利用RegNet和BiFPN從多相機獲取特徵,這個結構跟去年的AI day分享的網絡結構一致,說明backbone變化不大。然後模型通過帶3D空間位置的spatial query對2D圖像特徵進行基於attention的多相機融合。如何實現3D spatial query和2D特徵圖之間的聯繫呢?具體融合的方式圖中沒有細講,但有很多公開的論文可以參考。我認為最有可能採取的是兩種方案之一,第一種叫做3D-to-2D query,即根據每個相機的內外參將3D spatial query投影到2D特徵圖上,提取對應位置的特徵。該方法在DETR3D[1]中提出,BEVFormer[2]和PolarFormer[3]也採取了該思想。第二種是利用positional embedding來進行隱式的映射,即將2D特徵圖的每個位置加上合理的positional embedding,如相機內外參、像素坐標等,然後讓模型自己學習2D到3D特徵的對應關係,該方法在論文PETR中提出[4]。再接下來模型進行時序融合,實現的方法是根據已知的自車位置和姿態變化,將3D特徵空間進行拼接。
Occupancy Network結構
特徵融合後,一個基於deconvolution的解碼器會解碼出每個3D空間位置的occupancy,semantics以及flow。發布會中強調,由於這個網絡的輸出是稠密(dense)的,輸出的解析度會受到內存的限制。我相信這也是所有做圖像分割的同學們遇到的一大頭疼的問題,更何況這裡做的是3D分割,但自動駕駛對於解析度度的要求卻很高(~10cm)。因此,受到神經隱式表示(neural implicit representation)的啟發,模型的最後額外設計了一個隱式queryable MLP decoder,輸入任意坐標值(x,y,z),可解碼出該空間位置的信息,即occupancy,semantics,flow。該方法打破了模型解析度的限制,我認為是設計上的一個亮點。
學術界在視覺occupancy方面的工作不多,我關注到的最相關的一篇論文是CVPR2022上的MonoScene[5],從單目重建三維體素並且估計出被遮擋的部分,感興趣的可以去精讀。
二、規劃 Interactive Planning
規劃是自動駕駛的另一個重要模塊,特斯拉這次主要強調了在複雜路口對交互(interaction)進行建模。為什麼交互建模如此重要呢?因為其他車輛、行人的未來行為都有一定的不確定性,一個聰明的規劃模塊要在線進行多種自車和他車交互的預測,並且對每一種交互帶來的風險進行評估,並最終決定採取何種策略。
特斯拉把他們採用的規劃模型叫做交互搜索(Interaction Search),它主要由三個主要步驟組成:樹搜索,神經網絡軌跡規劃和軌跡打分。
1、樹搜索是軌跡規劃常用的算法,可以有效地發現各種交互情形找到最優解,但用搜索的方法來解決軌跡規劃問題遇到的最大困難是搜索空間過大。例如,在一個複雜路口可能有20輛與自車相關,可以組合成超過100種交互方式,而每種交互方式都可能有幾十種時空軌跡作為候選。因此特斯拉並沒有採用軌跡搜索的方法,而是用神經網絡來給一段時間後可能到達的目標位置(goal)進行打分,得到少量較優的目標。
2、在確定目標以後,我們需要確定一條到達目標的軌跡。傳統的規劃方法往往使用優化來解決該問題,解優化並不難,每次優化大約花費1到5毫秒,但是當前面步驟樹搜索的給出的候選目標比較多的時候,時間成本我們也無法負擔。因此特斯拉提出使用另一個神經網絡來進行軌跡規劃,從而對多個候選目標實現高度並行規劃。訓練這個神經網絡的軌跡標籤有兩種來源:第一種是人類真實開車的軌跡,但是我們知道人開的軌跡可能只是多種較優方案中的一種,因此第二種來源是通過離線優化算法產生的其他的軌跡解。
3、在得到一系列可行軌跡後,我們要選擇一個最優方案。這裡採取的方案是對得到的軌跡進行打分,打分的方案集合了人為制定的風險指標,舒適指標,還包括了一個神經網絡的打分器。
通過以上三個步驟的解耦,特斯拉實現了一個高效的且考慮了交互的軌跡規劃模塊。基於神經網絡的軌跡規劃可以參考的論文並不多,我有發表過一篇與該方法比較相關的論文TNT[5],同樣地將軌跡預測問題分解為以上三個步驟進行解決:目標打分,軌跡規劃,軌跡打分。感興趣的讀者可以前往查閱細節。此外,我們課題組也在一直探究行為交互和規劃相關的問題,也歡迎大家關注我們最新的工作InterSim[6]。
Interaction Search規劃模型結構
三、矢量地圖 Lanes Network
個人覺得本次AI Day上另一大技術亮點是在線矢量地圖構建模型Lanes Network。有關注去年AI Day的同學們可能記得,特斯拉在BEV空間中對地圖進行了完整的在線分割和識別。那麼為什麼還要做Lanes Network呢?因為分割得到的像素級別的車道不足夠用於軌跡規劃,我們還需要得到車道線的拓撲結構,才能知道我們的車可以從一條車道變換到另一條車道。
我們先來看看什麼是矢量地圖,如圖所示,特斯拉的矢量地圖由一系列藍色的車道中心線centerline和一些關鍵點(連接點connection,分叉點fork, 並道點merge)組成,並且通過graph的形式表現了他們的連接關係。
矢量地圖,圓點為車道線關鍵點,藍色為車道中心線
Lanes Network在模型結構上,是感知網絡backbone基礎上的一個decoder。相比解碼出每個體素的occupancy和語義,解碼出一系列稀疏的、帶連接關係的車道線更為困難,因為輸出的數量不固定,此外輸出量之間還有邏輯關係。
特斯拉參考了自然語言模型中的Transformer decoder,以序列的方式自回歸地輸出結果。具體實現上來說,我們首先要選取一個生成順序(如從左到右,從上到下),對空間進行離散化(tokenization)。然後我們就可以用Lanes Network進行一系列離散token的預測。如圖所示,網絡會先預測一個節點的粗略位置的(index:18),精確位置(index:31),然後預測該節點的語義(」Start」,即車道線的起點),最後預測連接特性,如分叉/並道/曲率參數等。網絡會以這樣自回歸的方式將所有的車道線節點進行生成。
Lanes Network網絡結構
我們要注意到,自回歸的序列生成並不是語言Transformer模型的專利。我們課題組在過去幾年中也有兩篇生成矢量地圖的相關論文,HDMapGen[7]和VectorMapNet[8]。HDMapGen採用帶注意力的圖神經網絡(GAT)自回歸地生成矢量地圖的關鍵點,和特斯拉的方案有異曲同工之妙。而VectorMapNet採用了Detection Transformer(DETR)來解決該問題,即用集合預測(set prediction)的方案來更快速地生成矢量地圖。後續我們會有更詳細的解讀文章放出,也歡迎大家關注。
HDMapGen[7] 矢量地圖生成結果
VectorMapNet[8] 矢量地圖生成結果
四、自動標註 Autolabeling
自動標註也是特斯拉在去年AI Day就講解過的一種技術,今年的自動標註著重講解了Lanes Network的自動標註。特斯拉的車每天就能產生500,000條駕駛旅程(trip),利用好這些駕駛數據能夠更好地幫助進行車道線的預測。 特斯拉的自動車道線標註有三個步驟:
1、通過視覺慣性裡程計(visual inertial odometry)技術,對所有的旅程進行高精度軌跡估計。
2、多車多旅程的地圖重建,是該方案中的最關鍵步驟。該步驟的基本動機是,不同的車輛對同一個地點可能有不同空間角度和時間的觀測,因此將這些信息進行聚合能更好地進行地圖重建。該步驟的技術點包括地圖間的幾何匹配和結果聯合優化。
3、對新旅程進行車道自動標註。當我們有了高精度的離線地圖重建結果後,當有新的旅程發生時,我們就可以進行一個簡單的幾何匹配,得到新旅程車道線的偽真值(pseudolabel)。這種獲取偽真值的方式有時候(在夜晚、雨霧天中)甚至會優於人工標註。
Lanes Network自動標註。
五、仿真 Simulation
視覺圖像的仿真是近年來計算機視覺方面的熱門方向。在自動駕駛中,視覺仿真的主要目的,是有針對性地生成一些少見場景,從而免掉到真實路測中去碰運氣的必要。例如,特斯拉常年頭疼的路中央橫著大卡車的場景。但是視覺仿真並不是一個簡單的問題,對於一個複雜的路口(舊金山的Market Street),利用傳統建模渲染的方案需要設計師2周的時間。而特斯拉通過AI化的方案,現在只需要5分鐘。
視覺仿真重建的路口。
具體來說,視覺仿真的先決條件是要準備自動標註的真實世界道路信息 ,和豐富的圖形素材庫。然後依次進行以下步驟:
1、路面生成:根據路沿進行路面的填充,包括路面坡度、材料等細節信息。
2、車道線生成:將車道線信息在路面上進行繪製。
3、植物和樓房生成:在路間和路旁隨機生成和渲染植物和房屋。生成植物和樓房的目的不僅僅是為了視覺的美觀,它也同時仿真了真實世界中這些物體引起的遮擋效應。
4、其他道路元素生成:如信號燈,路牌,並且導入車道和連接關係。
5、加入車輛和行人等動態元素。
六、基礎設施 Infrastructure
最後,我們簡單說說特斯拉這一系列軟體技術的基礎,就是強大的基礎設施。特斯拉的超算中心擁有14,000個GPU,共30PB的數據緩存,每天都有500,000個新的視頻流入這些超級計算機。為了更高效地處理這些數據額,特斯拉專門開發了加速的視頻解碼庫,以及加速讀寫中間特徵的文件格式.smol file format。此外,特斯拉還自研了超算中心的晶片Dojo,我們在這裡不做講解。
視頻模型訓練的超算中心
七、總結
隨著近兩年特斯拉AI Day的內容發布,我們慢慢看清了特斯拉在自動(輔助)駕駛方向上的技術版圖,同時我們也看到特斯拉自己也在不停地自我迭代,例如從2D感知,BEV感知,到Occupancy Network。自動駕駛是一個萬裡長徵,是什麼在支撐特斯拉技術的演進呢?我想是三點:視覺算法帶來的全場景理解能力,強大算力支持的模型迭代速度,海量數據帶來的泛化性。這不就是深度學習時代的三大支柱嗎?
目前,趙行博士的課題組在過去兩年做了一系列視覺為主自動駕駛的工作,簡稱VCAD,Vision-Centric Autonomous Driving(https://vcad-ai.github.io/)。
視覺為中心的自動駕駛VCAD (Vision-Centric Autonomous Driving)是其課題組提出的一個自動駕駛感知技術範式,同時是一個開源開放的研究課題。這個技術範式的特點是,主要利用車載的環視相機來實現自動駕駛對環境的感知和認知,選擇性地融合其他傳感器作為安全性輔助。
相比過分依賴雷射雷達和高精度地圖的自動駕駛感知技術,以視覺為中心的技術有更好的泛化能力,各種規格和價位的車都可以使用。現階段,趙行博士的課題組正在招生。
參考文獻
[1] Wang, Y., Guizilini, V.C., Zhang, T., Wang, Y., Zhao, H. and Solomon, J., 2022, January. Detr3d: 3d object detection from multi-view images via 3d-to-2d queries. In Conference on Robot Learning(pp. 180-191). PMLR.
[2] Li, Z., Wang, W., Li, H., Xie, E., Sima, C., Lu, T., Yu, Q. and Dai, J., 2022. BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers. arXiv preprint arXiv:2203.17270.
[3] Jiang, Y., Zhang, L., Miao, Z., Zhu, X., Gao, J., Hu, W. and Jiang, Y.G., 2022. PolarFormer: Multi-camera 3D Object Detection with Polar Transformers. arXiv preprint arXiv:2206.15398.
[4] Liu, Y., Wang, T., Zhang, X. and Sun, J., 2022. Petr: Position embedding transformation for multi-view 3d object detection. arXiv preprint arXiv:2203.05625.
[5] Cao, A.Q. and de Charette, R., 2022. MonoScene: Monocular 3D Semantic Scene Completion. InProceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(pp. 3991-4001).
[6] Zhao, H., Gao, J., Lan, T., Sun, C., Sapp, B., Varadarajan, B., Shen, Y., Shen, Y., Chai, Y., Schmid, C. and Li, C., 2020. Tnt: Target-driven trajectory prediction. In Conference on Robot Learning 2020, arXiv:2008.08294
[7] InterSim, https://tsinghua-mars-lab.github.io/InterSim/
[8] Mi, L., Zhao, H., Nash, C., Jin, X., Gao, J., Sun, C., Schmid, C., Shavit, N., Chai, Y. and Anguelov, D., 2021. HDMapGen: A hierarchical graph generative model of high definition maps. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(pp. 4227-4236).
[9] Liu, Y., Wang, Y., Wang, Y. and Zhao, H., 2022. VectorMapNet: End-to-end Vectorized HD Map Learning. arXiv preprint arXiv:2206.08920.
,