CVPR 2023 落下帷幕,Best Paper 之一花落上海人工智能實驗室 OpenDriveLab 團(tuán)隊和武漢大學(xué)聯(lián)合團(tuán)隊的工作 UniAD。
UniAD 獲得了多個首次:
CVPR 首次將最佳論文授予純自動駕駛領(lǐng)域。
自動駕駛界首個開源具備全棧關(guān)鍵任務(wù)的端到端自動駕駛模型,統(tǒng)一了多個自動駕駛子任務(wù)。
十年來首次中國本土團(tuán)隊獲得 CVPR Best Paper。
UniAD 統(tǒng)一自動駕駛關(guān)鍵任務(wù),但是端到端的訓(xùn)練難度極大,對數(shù)據(jù)的要求和工程能力的要求比常規(guī)的技術(shù)棧要高,但是由此帶來的全局一致性讓整個系統(tǒng)變得更加簡潔,也能夠防止某個模塊進(jìn)入局部最優(yōu),而不是全局最優(yōu)。
雖然整體稱為端到端,但是各個模塊直接確實有著明顯的界限和區(qū)隔,并非一個整體黑盒網(wǎng)絡(luò)。
各個模塊間有了相當(dāng)?shù)目山忉屝?,也有利于?xùn)練和 Debug,為自動駕駛端到端的設(shè)計提供了一個很好的范本,也期待在工業(yè)界的應(yīng)用。
在正式討論這篇論文前,其實有一個問題,端到端自動駕駛到底是什么?
01
端到端自動駕駛到底是什么?
經(jīng)典的自動駕駛系統(tǒng)有著相對統(tǒng)一的系統(tǒng)架構(gòu):
探測(detection)
跟蹤(tracking)
靜態(tài)環(huán)境建圖(mapping)
高精地圖定位
目標(biāo)物軌跡預(yù)測
本車軌跡規(guī)劃
運(yùn)動控制
幾乎所有的自動駕駛系統(tǒng)都離不開這些子系統(tǒng),在常規(guī)的技術(shù)開發(fā)中,這些模塊分別由不同的團(tuán)隊分擔(dān),各自負(fù)責(zé)自己模塊的結(jié)果輸出。
這樣的好處是,每一個子系統(tǒng)都能夠有足夠好的可解釋性,在開發(fā)時能夠獨立優(yōu)化。
與此同時,為了保證整體自動駕駛的性能,每一個模塊都需要保證給出穩(wěn)定的表現(xiàn)。
所以事實上在一個 Bug 出現(xiàn)時,需要巨大的 Triage 團(tuán)隊對 Bug 進(jìn)行分析,然后將具體的 Bug 來源分配給責(zé)任團(tuán)隊。
據(jù)說在 Waymo,甚至有超過 200 人的團(tuán)隊,對 Bug 進(jìn)行分析和責(zé)任分配。
那找 Bug 來源和 Bug 優(yōu)化的任務(wù)就不能自動化嗎?
當(dāng)然可以, 如果我們能將各個模塊用可微分的方式連接起來。類似于傳統(tǒng)深度學(xué)習(xí),出現(xiàn)誤差時,深度自動回傳進(jìn)行權(quán)重更新。
某種程度上,這就是端到端自動駕駛的概念。
02
理想化的端到端自動駕駛
事實上,從自動駕駛開始發(fā)展,就一直伴隨一個看似幼稚但是非常復(fù)雜的疑問:
為什么我們不能開發(fā)一個系統(tǒng),輸入時是傳感器信號(攝像頭,激光雷達(dá)),輸出是控制指令(轉(zhuǎn)向,剎車,加速)?
這個問題,實際上,業(yè)界也一直有人在探討,甚至于國內(nèi) 2018 年還有一家公司給出了這樣計劃:
其方案
輸入為視覺信號,輸出為 Steering,Brake,Accelerate,而真值為真實人類司機(jī)的上述動作。
輸入輸出都有了,真值數(shù)據(jù)也有了,接下來就是塞進(jìn)看不太懂的膠囊神經(jīng)網(wǎng)絡(luò)里進(jìn)行全局優(yōu)化訓(xùn)練,最后就能給出結(jié)果。
這個方案好在沒有吸引到什么大手筆投資,很快就銷聲匿跡了。
不過這兩天,大模型出來之后,我甚至也看到了一模一樣的計劃,只不過網(wǎng)絡(luò)換成了大模型。
03
為什么完全端到端目前不可行?
神經(jīng)網(wǎng)絡(luò)的黑盒效應(yīng)讓完全端到端自動駕駛無法找到正確優(yōu)化方向。
本質(zhì)上又回到了最初的問題,模塊解耦讓多模塊單獨優(yōu)化成為可能,讓每一個模塊擁有獨立的可解釋性。
而如果變成一個巨大的神經(jīng)網(wǎng)絡(luò)模塊,這種基于統(tǒng)計學(xué)的神經(jīng)網(wǎng)絡(luò)是無法保證在正確的道路上持續(xù)優(yōu)化的,因為無法保證對未見過的物體的魯棒性,也無法對某一個具體的 Bug 進(jìn)行定向改進(jìn)。
可能會有人會問,那語言大模型表現(xiàn)可以遷移嗎?
泛化性的遷移是可行的, 根據(jù) Google 的研究結(jié)果,他們基于語言大模型的抓取機(jī)器人,已經(jīng)可以做到對沒有見過的物體有直接的泛化能力,例如他們要求從未見過烏龜?shù)臋C(jī)器人抓取一只烏龜,任務(wù)能夠被很好地完成。
因為很好地使用了大語言模型的泛化能力,但是這件事情在自動駕駛上,尚未得到驗證。
但是如何對一個具體的 Bug 進(jìn)行改進(jìn)?
假設(shè)出現(xiàn)了一次誤剎,經(jīng)典的自動駕駛技術(shù)棧會分析:
剎車指令的來源,是前方動態(tài)障礙物,還是靜態(tài)物體?
或者是規(guī)劃模塊的速度規(guī)劃出現(xiàn)問題?
或者是控制模塊在輸出正確的情況下,控制指令出現(xiàn)了問題?
根據(jù)這些然后再進(jìn)行定向優(yōu)化。
但是,完全端到端,就失去了這種定向優(yōu)化的能力,甚至都無法知道,具體應(yīng)該提供哪種數(shù)據(jù)進(jìn)行定向優(yōu)化。
而理想在上周提到的紅綠燈意圖網(wǎng)絡(luò)(TIN)也同樣是一個視覺輸入到轉(zhuǎn)向意圖的整體設(shè)計創(chuàng)新,令人印象深刻。
但是對于具體如何應(yīng)用到量產(chǎn)中我其實并不樂觀,一個這樣的網(wǎng)絡(luò)硬件部署難度和實際效用的收益比尚且不論,而優(yōu)化過程是一個更加大的命題。
如果答案是加上所有的量產(chǎn)數(shù)據(jù),顯然不能說服工程界,期待之后有更加深入的介紹。
當(dāng)然,Elon Musk 在上個月的 Twitter 中,畫了一個巨大的視覺到控制指令的餅,但是我也絕不認(rèn)為他們正在研究的模型內(nèi)部是一個完全黑盒的網(wǎng)絡(luò)。
04
工程派的端到端自動駕駛 UniAD
整體自動優(yōu)化,可解釋性我統(tǒng)統(tǒng)都要
為了解決整體優(yōu)化問題,UniAD 使用了一個巨大的 Transformer 網(wǎng)絡(luò),但是為了保證每個模塊有足夠的可解釋性并能夠被獨立優(yōu)化,這個網(wǎng)絡(luò)被分割成多個共享 BEV 特征的 Transformer 網(wǎng)絡(luò)。
首次將跟蹤、建圖、軌跡預(yù)測、占據(jù)柵格預(yù)測統(tǒng)一到一起,并且使用不依賴高精地圖的 Planner 作為一個最終的目標(biāo)輸出,同時使用 Plan 結(jié)果作為整體訓(xùn)練的 loss 來源。
也就是說,UniAD 并沒有完全拋棄原有的自動駕駛技術(shù)棧,而是改變了子模塊連接的方式,傳統(tǒng)可能是靠規(guī)則和顯式連接,例如先從檢測網(wǎng)絡(luò)拿到目標(biāo)物體的位置和速度,再喂給下一個模塊。
這種規(guī)則和顯式連接的方式無法完成梯度傳播(神經(jīng)網(wǎng)絡(luò)的自我迭代方式),只能靠人工優(yōu)化。
但是 UniAD 共享了 BEV 特征,將子模塊用神經(jīng)網(wǎng)絡(luò)的方式連接起來。這樣就保證了整體網(wǎng)絡(luò)的一致性,能夠完成梯度的前向傳播,也就有了自動優(yōu)化的能力。
整體流程
從流程上看,首先將環(huán)視的圖片以 Transformer 映射到 BEV 空間供后續(xù)模塊使用。
TrackFormer 根據(jù) BEV 信息進(jìn)行推理,融合了檢測和跟蹤任務(wù),輸出為目標(biāo)檢測和跟蹤的信息;
MapFormer 根據(jù) BEV 信息給出實時地圖構(gòu)建結(jié)果;
之后 Motion Former 將 TrackerFormer 的結(jié)果和 MapFormer 的結(jié)果和 BEV 結(jié)果進(jìn)行融合,最后得出周圍物體整體軌跡和預(yù)測。
這些信息會作為 OccFormer 的輸入,再次與 BEV 特征融合作為占據(jù)柵格網(wǎng)絡(luò)預(yù)測的輸入。Planner 的目標(biāo)是防止本車與占據(jù)柵格碰撞,作為整個大模塊的最終輸出。
前景
面對一個巨大的,并且分模塊的任務(wù),訓(xùn)練過程一定是非常不穩(wěn)定的。
文章中提到,根據(jù)他們的經(jīng)驗,他們會先訓(xùn)練 6 次 Percecption(Track 和 Map )部分,再訓(xùn)練 20 次整體,最后得到比較好的結(jié)果。
這種訓(xùn)練方式也是得益于整體設(shè)計的相對解耦,感知模塊可以被單獨訓(xùn)練。能夠在獲得一個相對已經(jīng)穩(wěn)定的感知結(jié)果的基礎(chǔ)上,進(jìn)行后續(xù)模塊的訓(xùn)練,同時也對感知模塊進(jìn)行優(yōu)化。
這種設(shè)計為工業(yè)界使用提供了一定的便利,多個模塊之間的輸出可以被單獨 debug,也能被統(tǒng)一優(yōu)化。
而在工業(yè)界相對比較多的本車 Plan 相關(guān)數(shù)據(jù)也為整個網(wǎng)絡(luò)的訓(xùn)練提供了保證。
UniAD 的輸出到了Planning 就截止了,確實因為后面控制的內(nèi)容就不屬于計算機(jī)視覺領(lǐng)域了,并且其實控制模塊用 Learning 的方式其實并沒有的得到承認(rèn) 期待一些公司的部署結(jié)果。
寫在最后
關(guān)于自動駕駛的未來,各個模塊之間的界限越來越模糊,與此同時,配套的開發(fā)工具鏈也需要從模塊解耦轉(zhuǎn)換到模塊融合。
有意思的是,恰逢其時,來自 Waabi 創(chuàng)始人,著名研究學(xué)者 Raquel 的一篇文章 CVPR Highlight UniSim 也非常值得一讀。
使用 NeRF 相關(guān)技術(shù),統(tǒng)一了場景編輯、Camera 仿真、Lidar 仿真、交通仿真多個任務(wù)。
這篇文章為高效端到端的仿真訓(xùn)練提供了可能性。
雖然從算法創(chuàng)新的角度看,太陽底下沒有什么新鮮事,UniAD 是 Tranformer 的工程化創(chuàng)新,UniSim 是 NeRF 的工程化創(chuàng)新。
但是自動駕駛本身就是一個工程問題,工程化和快速迭代的能力會越來越重要。
學(xué)術(shù)界已經(jīng)有了非常明顯的轉(zhuǎn)變,國內(nèi)工業(yè)界某些公司卻似乎還在每天宣傳自家算法的巨大創(chuàng)新。
甚至在這次 Best Paper 發(fā)布之后, 知乎上很多人詬病 UniAD 算法不夠創(chuàng)新。
可是自動駕駛作為一個巨大的工程問題,為了創(chuàng)新而創(chuàng)新是無法帶來真正量產(chǎn)可用的系統(tǒng)的。
這種反差倒也是一件非常有意思的事情。
編輯:黃飛
評論
查看更多