我們研究了特斯拉、毫末智行「自動(dòng)駕駛算法」的秘密
目前,自動(dòng)駕駛技術(shù)已經(jīng)走出實(shí)驗(yàn)室,進(jìn)入量產(chǎn)落地的階段,也成為了各大車企,零部件供應(yīng)商,高科技公司爭(zhēng)相進(jìn)入的領(lǐng)域,競(jìng)爭(zhēng)空前激烈。
自動(dòng)駕駛駕駛技術(shù)這一輪的爆發(fā),很大程度上取決于兩點(diǎn):
- 大算力計(jì)算平臺(tái)在消費(fèi)端取得的突破,為人工智能領(lǐng)域提供了基礎(chǔ)算力。
- 深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域取得的突破,這也是自動(dòng)駕駛視覺(jué)感知的基礎(chǔ)。
目前,基于英偉達(dá)、高通、Mobileye、地平線、華為的自動(dòng)駕駛芯片,做多芯片集成開(kāi)發(fā)出來(lái)的計(jì)算平臺(tái)整體算力最高已經(jīng)達(dá)到上千 Tops,這為高階自動(dòng)駕駛提供了算力保障。
但在算法和算力之間,技術(shù)既深度耦合又相互促進(jìn),安霸半導(dǎo)體中國(guó)區(qū)總經(jīng)理馮羽濤說(shuō)過(guò):
「自動(dòng)駕駛所需要的算力不會(huì)無(wú)限擴(kuò)展下去,算力要隨著算法和數(shù)據(jù)的能力增長(zhǎng)而增長(zhǎng),以目前各家算法技術(shù)來(lái)說(shuō),市面上主流的大算力芯片已經(jīng)足夠,而算法才是接下來(lái)競(jìng)爭(zhēng)的重點(diǎn),除非算法和數(shù)據(jù)與算力之間的耦合達(dá)到一個(gè)瓶頸點(diǎn),那再去做更大算力的平臺(tái)才有意義。」
在 1 月 27 日,中金發(fā)布了一份名為《人工智能十年展望(三):AI 視角下的自動(dòng)駕駛行業(yè)全解析》的研究報(bào)告。報(bào)告指出,「深度學(xué)習(xí)是自動(dòng)駕駛技術(shù)發(fā)展的分水嶺及底層推動(dòng)力,算法是各廠商接下來(lái)應(yīng)該重點(diǎn)布局的核心能力,同時(shí),數(shù)據(jù)是決定自動(dòng)駕駛量產(chǎn)能力的勝負(fù)手」。
也就是說(shuō),算力性能已經(jīng)到了階段性的平穩(wěn)發(fā)展期,「算法能力 + 數(shù)據(jù)能力」會(huì)成為自動(dòng)駕駛領(lǐng)域里的各個(gè)公司之間競(jìng)爭(zhēng)誰(shuí)能勝出的關(guān)鍵。
01 多層神經(jīng)網(wǎng)絡(luò)的技術(shù)趨勢(shì)
視覺(jué)感知的技術(shù)突破,進(jìn)一步推動(dòng)了其他傳感器(比如激光雷達(dá)和毫米波雷達(dá))的感知算法以及多傳感器融合算法的進(jìn)步。另一方面,深度學(xué)習(xí)中的強(qiáng)化學(xué)習(xí)算法也在決策系統(tǒng)中起到了非常重要的作用。
對(duì)于深度學(xué)習(xí)算法來(lái)說(shuō),除了算法本身的能力以外,高質(zhì)量,大規(guī)模的訓(xùn)練數(shù)據(jù)也是算法取得成功的關(guān)鍵因素。因此,如何高效地采集和標(biāo)注數(shù)據(jù)對(duì)于每一家自動(dòng)駕駛公司來(lái)說(shuō)都是非常現(xiàn)實(shí)的課題。
在數(shù)據(jù)采集方面,面向量產(chǎn)的公司有著先天的優(yōu)勢(shì)。路面上行駛的數(shù)十萬(wàn),甚至上百萬(wàn)的車輛,每一輛都可以源源不斷地提供豐富的路況數(shù)據(jù),加在一起就是一個(gè)海量的自動(dòng)駕駛數(shù)據(jù)庫(kù)。
相比之下,面向 L4 級(jí)別的公司只能依靠有限的測(cè)試車輛來(lái)采集數(shù)據(jù)。目前路測(cè)規(guī)模最大的 Waymo 也只有幾百輛測(cè)試車,數(shù)據(jù)采集的規(guī)模自然不可同日而語(yǔ)。
有了海量數(shù)據(jù)是不是問(wèn)題就解決了呢?
顯然沒(méi)有那么簡(jiǎn)單。
雖然說(shuō)深度神經(jīng)網(wǎng)絡(luò)依賴于大數(shù)據(jù),但是不同網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)海量數(shù)據(jù)的能力還是有很大差別的。最早出現(xiàn)的多層感知機(jī)結(jié)構(gòu)網(wǎng)絡(luò)只有幾層,只需要很少的數(shù)據(jù)就可以使網(wǎng)絡(luò)的學(xué)習(xí)能力達(dá)到飽和。
近些年來(lái)提出的卷積神經(jīng)網(wǎng)絡(luò)(CNN),深度從十幾層增加到上百層,甚至上千層,這時(shí)就需要大規(guī)模的訓(xùn)練數(shù)據(jù)來(lái)保證網(wǎng)絡(luò)訓(xùn)練的質(zhì)量。
但是簡(jiǎn)單的堆積層數(shù)也是行不通的,這時(shí)深度學(xué)習(xí)領(lǐng)域一個(gè)非常關(guān)鍵的技術(shù) ResNet(深度殘差網(wǎng)絡(luò))出現(xiàn)了,它提出通過(guò)增加額外的連接,使得信息可以從淺層直接傳輸?shù)缴顚?,減少信息在網(wǎng)絡(luò)層之間傳輸時(shí)的損失。通過(guò)這個(gè)技術(shù),卷積神經(jīng)網(wǎng)絡(luò)才能擁有更深的結(jié)構(gòu),從而更好地利用大規(guī)模數(shù)據(jù)。
雖然有了 ResNet 技術(shù),深度卷積神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)規(guī)模增加到一定程度之后,其性能的提升也變得非常有限,也就是說(shuō)存在飽和的趨勢(shì),這說(shuō)明神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力還是存在著一定的瓶頸。
大約從 2017 年開(kāi)始,一種新型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)開(kāi)始引起研究人員的廣泛關(guān)注,那就是大名鼎鼎的基于注意力機(jī)制的 Transformer 網(wǎng)絡(luò)。
Transformer 首先被應(yīng)用在自然語(yǔ)言處理領(lǐng)域(NLP),用來(lái)處理序列文本數(shù)據(jù)。
谷歌團(tuán)隊(duì)提出的用于生成詞向量的 BERT 算法在 NLP 的 11 項(xiàng)任務(wù)中均取得了大幅的效果提升,而 BERT 算法中最重要的部分便是 Transformer。
在自然語(yǔ)言處理領(lǐng)域取得廣泛應(yīng)用后,Transformer 也被成功移植到了很多視覺(jué)任務(wù)上,比如「圖像分類,物體檢測(cè)」等,并同樣取得了不錯(cuò)的效果。Transformer 在海量數(shù)據(jù)上可以獲得更大的性能提升,也就是說(shuō)學(xué)習(xí)能力的飽和區(qū)間更大。
有研究表明,當(dāng)訓(xùn)練數(shù)據(jù)集增大到包含 1 億張圖像時(shí),Transformer 的性能開(kāi)始超過(guò) CNN。而當(dāng)圖像數(shù)量增加到 10 億張時(shí),兩者的性能差距變得更大。
上面是 ResNet(CNN)和 ViT(Transformer)在不同大小訓(xùn)練集上達(dá)到的圖像分類正確率。數(shù)據(jù)量為 1000 萬(wàn)時(shí),Transformer 的正確率遠(yuǎn)低于 CNN,但是當(dāng)數(shù)據(jù)量增加到 1 億時(shí),Transformer 就開(kāi)始超過(guò) CNN。
此外,CNN 網(wǎng)絡(luò)在數(shù)據(jù)量超過(guò) 1 億以后呈現(xiàn)飽和趨勢(shì),而 Transformer 的準(zhǔn)確率還在繼續(xù)增加。
簡(jiǎn)單理解就是,Transformer 在海量數(shù)據(jù)的處理能力上具有巨大冗余優(yōu)勢(shì)。
正是因?yàn)榭吹搅诉@一點(diǎn),面向量產(chǎn)的自動(dòng)駕駛公司在擁有數(shù)據(jù)收集優(yōu)勢(shì)的情況下,自然就會(huì)傾向于選擇 Transformer 作為其感知算法的主體。
2021 年夏天,特斯拉的自動(dòng)駕駛技術(shù)負(fù)責(zé)人 Andrej Karpathy 博士在 AI Day 上,公開(kāi)了 FSD 自動(dòng)駕駛系統(tǒng)中采用的算法,而 Transformer 則是其中最核心的模塊之一。在國(guó)內(nèi)方面,毫末智行也同樣提出將 Transformer 神經(jīng)網(wǎng)絡(luò)與海量數(shù)據(jù)進(jìn)行有效的融合。
在 2021 年底,毫末智行 CEO 顧維灝在毫末 AI Day 上介紹了 MANA(雪湖)數(shù)據(jù)智能體系。除了視覺(jué)數(shù)據(jù)以外,MANA 系統(tǒng)還包含了激光雷達(dá)數(shù)據(jù)。
并基于 Transformer 神經(jīng)網(wǎng)絡(luò)模型來(lái)進(jìn)行空間、時(shí)間、傳感器三個(gè)維度的融合,從而去提升感知算法的準(zhǔn)確率。
了解了目前自動(dòng)駕駛技術(shù)發(fā)展的趨勢(shì)以后,文章接下來(lái)的部分會(huì)首先簡(jiǎn)單介紹一下 Transformer 的設(shè)計(jì)動(dòng)機(jī)和工作機(jī)制,然后詳細(xì)解讀特斯拉和毫末智行的技術(shù)方案。
02 Transformer 神經(jīng)網(wǎng)絡(luò)
在說(shuō) Transformer 之前,要先理解一個(gè)概念:「機(jī)器翻譯、注意力機(jī)制」。
機(jī)器翻譯
機(jī)器翻譯可以粗暴理解成 「由現(xiàn)代化計(jì)算機(jī)模擬人類的智能活動(dòng),自動(dòng)進(jìn)行語(yǔ)言之間的翻譯」。
說(shuō)起翻譯,不得不提自然語(yǔ)言處理(NLP)領(lǐng)域的機(jī)器翻譯應(yīng)用,簡(jiǎn)單說(shuō)就是「輸入一句話,輸出另一句話」,后者可以是前者的其他語(yǔ)種表達(dá),如「自行車翻譯為 Bicycle」;也可以是前者的同語(yǔ)種關(guān)鍵詞表達(dá),如「騎行的兩輪車」。
而工程師把「翻譯」的過(guò)程,用數(shù)學(xué)函數(shù)設(shè)計(jì)了一套模型,這個(gè)模型就是大家通常意義上理解的「神經(jīng)網(wǎng)絡(luò)」。
在 Transformer 到來(lái)之前,大家一般都是使用基于循環(huán)神經(jīng)網(wǎng)絡(luò) RNN 的「編碼器-解碼器」結(jié)構(gòu)來(lái)完成序列翻譯。
所謂序列翻譯,「就是輸入一個(gè)序列,輸出另一個(gè)序列」。例如,漢英翻譯即輸入的序列是漢語(yǔ)表示的一句話,而輸出的序列即為對(duì)應(yīng)的英語(yǔ)表達(dá)。
基于 RNN 的架構(gòu)有一個(gè)明顯弊端就是,RNN 屬于序列模型,需要以一個(gè)接一個(gè)的序列化方式進(jìn)行信息處理,注意力權(quán)重需要等待序列全部輸入模型之后才能確定,簡(jiǎn)單理解就是,需要 RNN 對(duì)序列「從頭看到尾」。
例如:
面對(duì)翻譯問(wèn)題「A magazine is stuck in the gun」,其中的「Magazine」到底應(yīng)該翻譯為「雜志」還是「彈匣」?
當(dāng)看到「gun」一詞時(shí),將「Magazine」翻譯為「彈匣」才確認(rèn)無(wú)疑。在基于RNN的機(jī)器翻譯模型中,需要一步步的順序處理從 Magazine 到 gun 的所有詞語(yǔ),而當(dāng)它們相距較遠(yuǎn)時(shí) RNN 中存儲(chǔ)的信息將不斷被稀釋,翻譯效果常常難以盡人意,而且效率非常很低。
這種架構(gòu)無(wú)論是在訓(xùn)練環(huán)節(jié)還是推理環(huán)節(jié),都具有大量的時(shí)間開(kāi)銷,并且難以實(shí)現(xiàn)并行處理。而這個(gè)時(shí)候,工程師又想到了一個(gè)方案,就是在標(biāo)準(zhǔn)的 RNN 模型中加入一個(gè)「注意力機(jī)制」。
什么是注意力機(jī)制?
「深度學(xué)習(xí)中的注意力機(jī)制,源自于人腦的注意力機(jī)制,當(dāng)人的大腦接受外部信息時(shí),如視覺(jué)信息,聽(tīng)覺(jué)信息時(shí),往往不會(huì)對(duì)全部信息處理和理解,而只會(huì)將注意力集中在部分顯著或者感興趣的信息上,這樣有利于濾除不重要的信息,而提升的信息處理效率?!?/span>
加入注意力機(jī)制的模型會(huì)一次性的「看見(jiàn)」所有輸入的詞匯,利用注意力機(jī)制將距離不同的單詞進(jìn)行結(jié)合,為序列中每個(gè)元素提供全局的上下文。
谷歌團(tuán)隊(duì)賦予新模型一個(gè)大名鼎鼎的名字:「Transformer」。
Transformer 與處理序列數(shù)據(jù)常用的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)不同,Transformer 中的注意力機(jī)制并不會(huì)按照順序來(lái)處理數(shù)據(jù),也就是說(shuō),每個(gè)元素和序列中的所有元素都會(huì)產(chǎn)生聯(lián)系,這樣就保證了不管在時(shí)序上相距多遠(yuǎn),元素之間的相關(guān)性都可以被很好地保留。
而這種長(zhǎng)時(shí)相關(guān)性對(duì)于自然語(yǔ)言處理的任務(wù)來(lái)說(shuō)通常都是非常重要。比如下圖中,句子中的「it」所指的是「The animal」,但是這兩個(gè)元素之間相距較遠(yuǎn),如果用 RNN 來(lái)順序處理的話很難建立起兩者之間的聯(lián)系。
一個(gè)句子中各個(gè)單詞之間的相關(guān)性
Transformer 并不關(guān)心順序,在計(jì)算相關(guān)性時(shí),每個(gè)元素的重要性是根據(jù)數(shù)據(jù)本身的語(yǔ)義信息計(jì)算出來(lái)的。因此,可以輕松地提取任意距離元素之間的相關(guān)性。
為什么要說(shuō)這些?
因?yàn)樵谝曈X(jué)任務(wù)圖像分類和物體檢測(cè)上,通過(guò)帶有注意力機(jī)制的 Transformer 模型其結(jié)果出乎意料的好。
為什么源自自然語(yǔ)言領(lǐng)域的算法,在視覺(jué)上同樣適用呢?
原因主要有兩點(diǎn):
- 雖然圖像本身不是時(shí)間序列數(shù)據(jù),但可以看作空間上的序列,視覺(jué)任務(wù)一個(gè)關(guān)鍵的步驟就是要提取像素之間的相關(guān)性,普通的 CNN 是通過(guò)卷積核來(lái)提取局部的相關(guān)性(也稱為:局部感受野)。與 CNN 的局部感受野不同,Transformer 可以提供全局的感受野。因此,特征學(xué)習(xí)能力相比 CNN 要高很多。
- 如果進(jìn)一步考慮視頻輸入數(shù)據(jù)的話,那么這本身就是時(shí)序數(shù)據(jù),因此,更加適合Transformer 的處理。
Transformer 在圖像分類中的應(yīng)用
在圖 3 的例子中,Transformer 被用來(lái)進(jìn)行圖像分類的任務(wù)。圖像被均勻地分成若干小塊,按照空間排列的順序組成了一個(gè)圖像塊的序列。每個(gè)圖像塊的像素值(或者其他特征)組成了該圖像塊的特征向量,經(jīng)過(guò) Transformer 編碼在進(jìn)行拼接后就得到整幅圖像的特征。
上圖的右側(cè),給出了編碼器的具體結(jié)構(gòu),其關(guān)鍵部分是一個(gè) 「多頭注意力模塊」。
簡(jiǎn)單來(lái)說(shuō),多頭注意力其實(shí)就是多個(gè)注意力機(jī)制模塊的集成,這些模塊各自獨(dú)立的進(jìn)行編碼,提取不同方面的特征,在增加編碼能力的同時(shí),也可以非常高效的在計(jì)算芯片上實(shí)現(xiàn)并行處理。
綜上所述,這也就是中金《人工智能十年展望(三):AI 視角下的自動(dòng)駕駛行業(yè)全解析》這份報(bào)告里說(shuō)的:
由于 Transformer 可以很好地在 「空間-時(shí)序」 維度上進(jìn)行建模,目前特斯拉和毫末智行等行業(yè)龍頭通過(guò) Transformer 在感知端提升模型效果。
特斯拉從安裝在汽車周圍的八個(gè)攝像頭的視頻中用傳統(tǒng)的 ResNet 提取圖像特征,并使用 Transformer CNN、3D 卷積中的一種或者多種組合完成跨時(shí)間的圖像融合,實(shí)現(xiàn)基于 2D 圖像形成具有 3D 信息輸出。
毫末智行的 AI 團(tuán)隊(duì)正在逐步將基于 Transformer 的感知算法應(yīng)用到實(shí)際的道路感知問(wèn)題,如車道線檢測(cè)、障礙物檢測(cè)、可行駛區(qū)域分割、紅綠燈檢測(cè)&識(shí)別、道路交通標(biāo)志檢測(cè)、點(diǎn)云檢測(cè)&分割等。
03 特斯拉的 FSD 系統(tǒng)解讀
Andrej 博士在特斯拉 AI Day 上首先提到,五年前 Tesla 的視覺(jué)系統(tǒng)是先獲得單張圖像上的檢測(cè)結(jié)果,然后將其映射到向量空間(Vector Space)。
這個(gè)「向量空間」則是 AI Day 中的核心概念之一。其實(shí),它就是環(huán)境中的各種目標(biāo),在世界坐標(biāo)系中的表示空間。
比如,「對(duì)于物體檢測(cè)任務(wù),目標(biāo)在 3D 空間中的位置、大小、朝向、速度等描述特性組成了一個(gè)向量,所有目標(biāo)的描述向量組成的空間就是向量空間?!?/p>
視覺(jué)感知系統(tǒng)的任務(wù)就是,將圖像空間中的信息轉(zhuǎn)化為向量空間中的信息。
一般可以通過(guò)兩種方法來(lái)實(shí)現(xiàn):
- 先在圖像空間中完成所有的感知任務(wù),然后將結(jié)果映射到向量空間,最后融合多攝像頭的結(jié)果;
- 先將圖像特征轉(zhuǎn)換到向量空間,然后融合來(lái)自多個(gè)攝像頭的特征,最后在向量空間中完成所有的感知任務(wù)。
Andrej 舉了兩個(gè)例子,說(shuō)明為什么第一種方法是不合適的。
一,由于透視投影,圖像中看起來(lái)不錯(cuò)的感知結(jié)果在向量空間中精度很差,尤其是遠(yuǎn)距離的區(qū)域。如下圖所示,車道線(藍(lán)色)和道路邊緣(紅色)在投影到向量空間后位置非常不準(zhǔn),無(wú)法用支持自動(dòng)駕駛的應(yīng)用。
圖像空間的感知結(jié)果(上)及其在向量空間中的投影(下)
二,在多目系統(tǒng)中,由于視野的限制,單個(gè)攝像頭可能無(wú)法看到完整的目標(biāo)。比如,在下圖的例子中,一輛大貨車出現(xiàn)在了一些攝像頭的視野中,但是很多攝像頭都只看到了目標(biāo)的一部分,因此無(wú)法根據(jù)殘缺的信息做出正確的檢測(cè),后續(xù)的融合效果也就無(wú)法保證。這其實(shí)是多傳感器決策層融合的一個(gè)一般性問(wèn)題。
單攝像頭受限的視野
綜合以上分析,圖像空間感知 + 決策層融合并不是一個(gè)很好的方案。
進(jìn)而直接在向量空間中完成融合和感知可以有效地解決以上問(wèn)題,這也是 FSD 感知系統(tǒng)的核心思路。
為了實(shí)現(xiàn)這個(gè)思路,需要解決兩個(gè)重要的問(wèn)題:一,如何將特征從圖像空間變換到向量空間;二,如何得到向量空間中的標(biāo)注數(shù)據(jù)。
特征的空間變換
對(duì)于特征的空間變換問(wèn)題,一般性的做法就是:「利用攝像頭的標(biāo)定信息將圖像像素映射到世界坐標(biāo)系」。
但這有一些條件上的問(wèn)題,需要有一定的約束,自動(dòng)駕駛應(yīng)用中通常采用的是地平面約束,也就是目標(biāo)位于地面,而且地面是水平的,這個(gè)約束太強(qiáng)了,在很多場(chǎng)景下無(wú)法滿足。
Tesla 的解決方案,核心有三點(diǎn):
一,通過(guò) Transformer 和自注意力的方式建立圖像空間到向量空間的對(duì)應(yīng)關(guān)系。簡(jiǎn)單說(shuō)就是,向量空間中每一個(gè)位置的特征都可以看作圖像所有位置特征的加權(quán)組合。
當(dāng)然對(duì)應(yīng)位置的權(quán)重肯定大一些,但這個(gè)加權(quán)組合的過(guò)程通過(guò)自注意力和空間編碼來(lái)自動(dòng)的實(shí)現(xiàn),不需要手工設(shè)計(jì),完全根據(jù)需要完成的任務(wù)來(lái)進(jìn)行端對(duì)端的學(xué)習(xí)。
二,在量產(chǎn)車中,每一輛車上攝像頭的標(biāo)定信息都不盡相同,導(dǎo)致輸入數(shù)據(jù)與預(yù)訓(xùn)練的模型不一致。因此,這些標(biāo)定信息需要作為額外的輸入提供給神經(jīng)網(wǎng)絡(luò)。
簡(jiǎn)單的做法是,將每個(gè)攝像頭的標(biāo)定信息拼接起來(lái),通過(guò)神經(jīng)網(wǎng)絡(luò)編碼后再輸入給神經(jīng)網(wǎng)絡(luò);但更好的做法是將來(lái)自不同攝像頭的圖像通過(guò)標(biāo)定信息進(jìn)行校正,使不同車輛上對(duì)應(yīng)的攝像頭都輸出一致的圖像。
三,視頻(多幀)輸入被用來(lái)提取時(shí)序信息,以增加輸出結(jié)果的穩(wěn)定性,更好地處理遮擋場(chǎng)景,并且預(yù)測(cè)目標(biāo)的運(yùn)動(dòng)。
這部分還有一個(gè)額外的輸入就是車輛自身的運(yùn)動(dòng)信息(可以通過(guò) IMU 獲得),以支持神經(jīng)網(wǎng)絡(luò)對(duì)齊不同時(shí)間點(diǎn)的特征圖,時(shí)序信息的處理可以采用 3D 卷積,Transformer 或者 RNN。
圖像空間感知(左下) vs. 向量空間感知(右下)
通過(guò)以上這些算法上的改進(jìn),F(xiàn)SD 在向量空間中的輸出質(zhì)量有了很大的提升。在下面的對(duì)比圖中,下方左側(cè)是來(lái)自圖像空間感知+決策層融合方案的輸出,而下方右側(cè)上述特征空間變換 + 向量空間感知融合的方案。
向量空間中的標(biāo)注
既然是深度學(xué)習(xí)算法,那么數(shù)據(jù)和標(biāo)注自然就是關(guān)鍵環(huán)節(jié),圖像空間中的標(biāo)注非常直觀,但是系統(tǒng)最終需要的是在向量空間中的標(biāo)注。
Tesla 的做法是利用來(lái)自多個(gè)攝像頭的圖像重建 3D 場(chǎng)景,并在 3D 場(chǎng)景下進(jìn)行標(biāo)注,標(biāo)注者只需要在 3D 場(chǎng)景中進(jìn)行一次標(biāo)注,就可以實(shí)時(shí)地看到標(biāo)注結(jié)果在各個(gè)圖像中的映射,從而進(jìn)行相應(yīng)的調(diào)整。
3D 空間中的標(biāo)注
人工標(biāo)注只是整個(gè)標(biāo)注系統(tǒng)的一部分,為了更快更好地獲得標(biāo)注,還需要借助自動(dòng)標(biāo)注和模擬器。
自動(dòng)標(biāo)注系統(tǒng)首先基于單攝像頭的圖像生成標(biāo)注結(jié)果,然后通過(guò)各種空間和時(shí)間的線索將這些結(jié)果整合起來(lái)。形象點(diǎn)說(shuō)就是 「各個(gè)攝像頭湊在一起討論出一個(gè)一致的標(biāo)注結(jié)果」。
除了多個(gè)攝像頭的配合,在路上行駛的多臺(tái) Tesla 車輛也可以對(duì)同一個(gè)場(chǎng)景的標(biāo)注進(jìn)行融合改進(jìn)。當(dāng)然這里還需要 GPS 和 IMU 傳感器來(lái)獲得車輛的位置和姿態(tài),從而將不同車輛的輸出結(jié)果進(jìn)行空間對(duì)齊。
自動(dòng)標(biāo)注可以解決標(biāo)注的效率問(wèn)題,但是對(duì)于一些罕見(jiàn)的場(chǎng)景,比如,中金《人工智能十年展望(三):AI 視角下的自動(dòng)駕駛行業(yè)全解析》報(bào)告中所演示的在高速公路上奔跑的行人,還需要借助模擬器來(lái)生成虛擬數(shù)據(jù)。
以上所有這些技術(shù)組合起來(lái),才構(gòu)成了 Tesla 完整的深度學(xué)習(xí)網(wǎng)絡(luò)、數(shù)據(jù)收集和標(biāo)注系統(tǒng)。
04 毫末智行的 MANA 系統(tǒng)解讀
依托長(zhǎng)城汽車,毫末智行可以獲得海量的真實(shí)路測(cè)數(shù)據(jù),對(duì)于數(shù)據(jù)的處理問(wèn)題,毫末智行也提出將 Transformer 引入到其數(shù)據(jù)智能體系 MANA 中,并逐步應(yīng)用到實(shí)際的道路感知問(wèn)題,比如障礙物檢測(cè)、車道線檢測(cè)、可行駛區(qū)域分割、交通標(biāo)志檢測(cè)等等。
從這一點(diǎn)上就可以看出,量產(chǎn)車企在有了超大數(shù)據(jù)集作為支撐以后,其技術(shù)路線正在走向趨同。
在自動(dòng)駕駛技術(shù)百花齊放的時(shí)代,選擇一條正確的賽道,確立自身技術(shù)的優(yōu)勢(shì),無(wú)論對(duì)于特斯拉還是毫末智行來(lái)說(shuō),都是極其重要的。
在自動(dòng)駕駛技術(shù)的發(fā)展中,一直就對(duì)采用何種傳感器存在爭(zhēng)論。目前爭(zhēng)論的焦點(diǎn)在于是走純視覺(jué)路線還是激光雷達(dá)路線。
特斯拉采用純視覺(jué)方案,這也是基于其百萬(wàn)量級(jí)的車隊(duì)和百億公里級(jí)別的真實(shí)路況數(shù)據(jù)做出的選擇。
而采用激光雷達(dá),主要有兩方面的考慮:
- 數(shù)據(jù)規(guī)模方面的差距其他自動(dòng)駕駛公司很難填補(bǔ),要獲得競(jìng)爭(zhēng)優(yōu)勢(shì)就必須增加傳感器的感知能力。目前,半固態(tài)的激光雷達(dá)成本已經(jīng)降低到幾百美元的級(jí)別,基本可以滿足量產(chǎn)車型的需求。
- 從目前的技術(shù)發(fā)展來(lái)看,基于純視覺(jué)的技術(shù)可以滿足 L2/L2+ 級(jí)別的應(yīng)用,但是對(duì)L3/4級(jí)的應(yīng)用(比如RoboTaxi)來(lái)說(shuō),激光雷達(dá)還是必不可少的。
在這種背景下,誰(shuí)能夠既擁有海量數(shù)據(jù),又能同時(shí)支持視覺(jué)和激光雷達(dá)兩種傳感器,那么無(wú)疑會(huì)在競(jìng)爭(zhēng)中占據(jù)先發(fā)的優(yōu)勢(shì)。顯然,毫末智行在這個(gè)方向上已經(jīng)占據(jù)了先機(jī)。
根據(jù)毫末智行 CEO 顧維灝的在 AI Day 上的介紹,MANA 系統(tǒng)采用 Transformer 在底層融合視覺(jué)和激光雷達(dá)數(shù)據(jù),進(jìn)而實(shí)現(xiàn)空間、時(shí)間、傳感器三位一體的深層次感知。
下面我就來(lái)詳細(xì)解讀一下 MANA 系統(tǒng),尤其是與特斯拉 FSD 的差異之處。
視覺(jué)感知模塊
相機(jī)獲取原始數(shù)據(jù)之后,要經(jīng)過(guò) ISP(Image Signal Process)數(shù)字處理過(guò)程后,才能提供給后端的神經(jīng)網(wǎng)絡(luò)使用。
ISP 的功能一般來(lái)說(shuō)是為了獲得更好的視覺(jué)效果,但是神經(jīng)網(wǎng)絡(luò)其實(shí)并不需要真正的「看到」數(shù)據(jù),視覺(jué)效果只是為人類設(shè)計(jì)的。
因此,將 ISP 作為神經(jīng)網(wǎng)絡(luò)的一層,讓神經(jīng)網(wǎng)絡(luò)根據(jù)后端的任務(wù)來(lái)決定 ISP 的參數(shù)并對(duì)相機(jī)進(jìn)行校準(zhǔn),這有利于最大程度上保留原始的圖像信息,也保證采集到的圖像與神經(jīng)網(wǎng)絡(luò)的訓(xùn)練圖像在參數(shù)上盡可能的一致。
處理過(guò)后的圖像數(shù)據(jù)被送入主干網(wǎng)絡(luò) Backbone,毫末采用的 DarkNet 類似于多層的卷積殘差網(wǎng)絡(luò)(ResNet),這也是業(yè)界最常用的主干網(wǎng)絡(luò)結(jié)構(gòu)。
主干網(wǎng)絡(luò)輸出的特征再送到不同的頭(Head)來(lái)完成不同的任務(wù)。
這里的任務(wù)分為三大類:全局任務(wù)(Global Task)、道路任務(wù)(Road Tasks)和目標(biāo)任務(wù)(Object Tasks)。
不同的任務(wù)共用主干網(wǎng)絡(luò)的特征,每個(gè)任務(wù)自己擁有獨(dú)立的 Neck 網(wǎng)絡(luò),用來(lái)提取針對(duì)不同任務(wù)的特征。這與特斯拉 HydraNet 的思路是基本一致的。
但是 MANA 感知系統(tǒng)的特點(diǎn)在于 「為全局任務(wù)設(shè)計(jì)了一個(gè)提取全局信息的 Neck 網(wǎng)絡(luò)」。
這一點(diǎn)其實(shí)是非常重要的,因?yàn)槿秩蝿?wù)(比如可行駛道路的檢測(cè))非常依賴于對(duì)場(chǎng)景的理解,而對(duì)場(chǎng)景的理解又依賴于全局信息的提取。
MANA 系統(tǒng)的視覺(jué)和激光雷達(dá)感知模塊
激光雷達(dá)感知模塊
激光雷達(dá)感知采用的是 PointPillar 算法,這也是業(yè)界常用的一個(gè)基于點(diǎn)云的三維物體檢測(cè)算法。這個(gè)算法的特點(diǎn)在于:「將三維信息投影到二維(俯視視圖),在二維數(shù)據(jù)上進(jìn)行類似于視覺(jué)任務(wù)中的特征提取和物體檢測(cè)」。
這種做法的優(yōu)點(diǎn)在于避免了計(jì)算量非常大的三維卷積操作,因此,算法的整體速度非常快。PointPillar 也是在點(diǎn)云物體檢測(cè)領(lǐng)域第一個(gè)能夠達(dá)到實(shí)時(shí)處理要求的算法。
在 MANA 之前的版本中,視覺(jué)數(shù)據(jù)和激光雷達(dá)數(shù)據(jù)是分別處理的,融合過(guò)程在各自輸出結(jié)果的層面上完成,也就是自動(dòng)駕駛領(lǐng)域常說(shuō)的 「后融合」。
這樣做可以盡可能地保證兩個(gè)系統(tǒng)之間的獨(dú)立性,并為彼此提供安全冗余。但后融合也導(dǎo)致神經(jīng)網(wǎng)絡(luò)無(wú)法充分利用兩個(gè)異構(gòu)傳感器之間數(shù)據(jù)的互補(bǔ)性,來(lái)學(xué)習(xí)最有價(jià)值的特征。
融合感知模塊
前面提到了一個(gè)三位一體融合的概念,這也是 MANA 感知系統(tǒng)區(qū)別于其他感知系統(tǒng)的關(guān)鍵之處。正如毫末智行 CEO 顧維灝在 AI Day 上所說(shuō):目前大部分的感知系統(tǒng)都存在「時(shí)間上的感知不連續(xù)、空間上的感知碎片化」的問(wèn)題。
MANA 系統(tǒng)的融合感知模塊
時(shí)間上的不連續(xù):是由于系統(tǒng)按照幀為單位進(jìn)行處理,而兩幀之間的時(shí)間間隔可能會(huì)有幾十毫秒,系統(tǒng)更多地關(guān)注單幀的處理結(jié)果,將時(shí)間上的融合作為后處理的步驟。
比如,采用單獨(dú)的物體跟蹤模塊將單幀的物體檢測(cè)結(jié)果串聯(lián)起來(lái),這也是一種后融合策略,因此無(wú)法充分利用時(shí)序上的有用信息。
空間上的碎片化:是由多個(gè)同構(gòu)或異構(gòu)傳感器所在的不同空間坐標(biāo)系導(dǎo)致的。
對(duì)于同構(gòu)傳感器(比如多個(gè)攝像頭)來(lái)說(shuō),由于安裝位置和角度不同,導(dǎo)致其可視范圍(FOV)也不盡相同。每個(gè)傳感器的 FOV 都是有限的,需要把多個(gè)傳感器的數(shù)據(jù)融合在一起,才可以得到車身周圍 360 度的感知能力,這對(duì)于 L2 以上級(jí)別的自動(dòng)駕駛系統(tǒng)來(lái)說(shuō)是非常重要的。
對(duì)于異構(gòu)傳感器(比如攝像頭和激光雷達(dá))來(lái)說(shuō),由于數(shù)據(jù)采集的方式不同,不同傳感器得到的數(shù)據(jù)信息和形式都有很大差別。
攝像頭采集到的是圖像數(shù)據(jù),具有豐富的紋理和語(yǔ)義信息,適合用于物體分類和場(chǎng)景理解;而激光雷達(dá)采集到的是點(diǎn)云數(shù)據(jù),其空間位置信息非常精確,適合用于感知物體的三維信息和檢測(cè)障礙物。
如果系統(tǒng)對(duì)每個(gè)傳感器進(jìn)行單獨(dú)處理,并在處理結(jié)果上進(jìn)行后融合,那么就無(wú)法利用多個(gè)傳感器的數(shù)據(jù)中包含的互補(bǔ)信息。
如何解決這兩個(gè)問(wèn)題呢?
答案是:用 Transformer 做空間和時(shí)間上的前融合。
先說(shuō)空間的前融合
與 Transformer 在一般的視覺(jué)任務(wù)(比如圖像分類和物體檢測(cè))中扮演的角色不同,Transformer 在空間前融合中的主要作用并不是提取特征,而是進(jìn)行坐標(biāo)系的變換。
這與特斯拉所采用的技術(shù)有異曲同工之處,但是毫末進(jìn)一步增加了激光雷達(dá),進(jìn)行多傳感器(跨模態(tài))的前融合,也就是圖 8 中的 Cross-Domain Association 模塊。
上面介紹了 Transformer 的基本工作原理,簡(jiǎn)單來(lái)說(shuō)就是 「計(jì)算輸入數(shù)據(jù)各個(gè)元素之間的相關(guān)性,利用該相關(guān)性進(jìn)行特征提取」。
坐標(biāo)系轉(zhuǎn)換也可以形式化為類似的流程。
比如,將來(lái)自多個(gè)攝像頭的圖像轉(zhuǎn)換到與激光雷達(dá)點(diǎn)云一致的三維空間坐標(biāo)系,那么系統(tǒng)需要做的是找到三維坐標(biāo)系中每個(gè)點(diǎn)與圖像像素的對(duì)應(yīng)關(guān)系。傳統(tǒng)的基于幾何變換的方法會(huì)將三維坐標(biāo)系中的一個(gè)點(diǎn)映射到圖像坐標(biāo)系中的一個(gè)點(diǎn),并利用該圖像點(diǎn)周圍一個(gè)小的鄰域(比如 3x3 像素)來(lái)計(jì)算三維點(diǎn)的像素值。
而 Transformer 則會(huì)建立三維點(diǎn)到每個(gè)圖像點(diǎn)的聯(lián)系,并通過(guò)自注意力機(jī)制,也就是相關(guān)性計(jì)算來(lái)決定哪些圖像點(diǎn)會(huì)被用來(lái)進(jìn)行三維點(diǎn)的像素值。
如圖 9 所示,Transformer 首先編碼圖像特征,然后將其解碼到三維空間,而坐標(biāo)系變換已經(jīng)被嵌入到了自注意力的計(jì)算過(guò)程中。
這種思路打破的傳統(tǒng)方法中對(duì)鄰域的約束,算法可以看到場(chǎng)景中更大的范圍,通過(guò)對(duì)場(chǎng)景的理解來(lái)進(jìn)行坐標(biāo)變換。同時(shí),坐標(biāo)變換的過(guò)程在神經(jīng)網(wǎng)絡(luò)中進(jìn)行,可以由后端所接的具體任務(wù)來(lái)自動(dòng)調(diào)整變換的參數(shù)。
采用 Transformer 進(jìn)行圖像坐標(biāo)系到三維空間坐標(biāo)系的轉(zhuǎn)換
因此,這個(gè)變換過(guò)程是完全由數(shù)據(jù)驅(qū)動(dòng)的,也是任務(wù)相關(guān)的。在擁有超大數(shù)據(jù)集的前提下,基于 Transformer 來(lái)進(jìn)行空間坐標(biāo)系變換是完全可行的。
再說(shuō)時(shí)間上的前融合
這個(gè)比空間上的前融合更容易理解一些,因?yàn)?Transformer 在設(shè)計(jì)之初就是為了處理時(shí)序數(shù)據(jù)的。
圖 8 中的 Feature Queue 就是空間融合模塊在時(shí)序上的輸出,可以理解為一個(gè)句子中的多個(gè)單詞,這樣就可以自然的采用 Transformer 來(lái)提取時(shí)序特征。相比特斯拉采用 RNN 來(lái)進(jìn)行時(shí)序融合的方案,Transformer 的方案特征提取能力更強(qiáng),但是在運(yùn)行效率上會(huì)低一些。
毫末的方案中也提到了 RNN,相信目前也在進(jìn)行兩種方案的對(duì)比,甚至是進(jìn)行某種程度的結(jié)合,以充分利用兩者的優(yōu)勢(shì)。
除此之外,由于激光雷達(dá)的加持,毫末采用了 SLAM 跟蹤以及光流算法,可以快速的完成自身定位和場(chǎng)景感知,更好的保證時(shí)序上的連貫性。
認(rèn)知模塊
除了感知模塊以外,毫末在認(rèn)知模塊,也就是路徑規(guī)劃部分也有一些特別的設(shè)計(jì)。
顧維灝在 AI Day 上介紹到,認(rèn)知模塊與感知模塊最大的不同在于,認(rèn)知模塊沒(méi)有確定的「尺子」來(lái)衡量其性能的優(yōu)劣,而且認(rèn)知模塊需要考慮的因素比較多,比如安全,舒適和高效,這無(wú)疑也增加了認(rèn)知模塊設(shè)計(jì)的難度。
針對(duì)這些問(wèn)題,毫末的解決方案是場(chǎng)景數(shù)字化和大規(guī)模強(qiáng)化學(xué)習(xí)。
場(chǎng)景數(shù)字化,就是將行駛道路上的不同場(chǎng)景進(jìn)行參數(shù)化的表示。參數(shù)化的好處在于可以對(duì)場(chǎng)景進(jìn)行有效地分類,從而進(jìn)行差異化的處理。
按照不同的粒度,場(chǎng)景參數(shù)分為宏觀和微觀兩種:宏觀的場(chǎng)景參數(shù)包括天氣,光照,路況等;微觀的場(chǎng)景參數(shù)則刻畫了自車的行駛速度,與周圍障礙物的關(guān)系等。
MANA 系統(tǒng)中的宏觀場(chǎng)景聚類
MANA 系統(tǒng)中的微觀場(chǎng)景(例子是跟車場(chǎng)景)
在將各種場(chǎng)景數(shù)字化了以后,就可以采用人工智能的算法來(lái)進(jìn)行學(xué)習(xí)。一般情況下,強(qiáng)化學(xué)習(xí)是完成這個(gè)任務(wù)的一個(gè)比較好的選擇。
強(qiáng)化學(xué)習(xí)就是著名的 AlphaGo 中采用的方法,但是與圍棋不同,自動(dòng)駕駛?cè)蝿?wù)的評(píng)價(jià)標(biāo)準(zhǔn)不是輸和贏,而是駕駛的合理性和安全性。
如何對(duì)每一次的駕駛行為進(jìn)行正確地評(píng)價(jià),是認(rèn)知系統(tǒng)中強(qiáng)化學(xué)習(xí)算法設(shè)計(jì)的關(guān)鍵。毫末采取的策略是模擬人類司機(jī)的行為,這也是最快速有效的方法。
當(dāng)然,只有幾個(gè)司機(jī)的數(shù)據(jù)是遠(yuǎn)遠(yuǎn)不夠的,采用這種策略的基礎(chǔ)也是海量的人工駕駛數(shù)據(jù),而這恰恰又是毫末的優(yōu)勢(shì)所在,這就是基于長(zhǎng)城汽車,毫末在智能駕駛系統(tǒng)上的交付能力會(huì)遠(yuǎn)遠(yuǎn)領(lǐng)先其他對(duì)手,而這背后的核心則是數(shù)據(jù)的收集能力,基于海量的數(shù)據(jù),毫末可以快速迭代算法交付覆蓋更多場(chǎng)景的自動(dòng)駕駛系統(tǒng)。
寫在最后
隨著自動(dòng)駕駛技術(shù)的快速發(fā)展和落地,越來(lái)越多的量產(chǎn)車型上開(kāi)始搭載支持不同級(jí)別自動(dòng)駕駛系統(tǒng)的軟件和硬件。在逐漸向商業(yè)化邁進(jìn)的同時(shí),量產(chǎn)車型的規(guī)模效應(yīng)也可以為自動(dòng)駕駛系統(tǒng)的迭代提供海量的數(shù)據(jù)支持。這也是業(yè)界普遍認(rèn)可的通向高階自動(dòng)駕駛的必經(jīng)之路。
在這種背景下,擁有潛在數(shù)據(jù)優(yōu)勢(shì)的量產(chǎn)車的企業(yè)該如何切入,特斯拉和依托長(zhǎng)城汽車的毫末智行率先給出了方案。兩者的方案既有宏觀的神似之處,也有很多具體策略上的差異,既體現(xiàn)了共識(shí),也展現(xiàn)了個(gè)性。
共識(shí)之處在于,兩家公司都采用了 Transformer 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)提升在超大數(shù)據(jù)集上的學(xué)習(xí)能力,同時(shí)兩家公司也都認(rèn)為數(shù)據(jù)的采集和自動(dòng)標(biāo)注是整個(gè)算法迭代的重要環(huán)節(jié),并為此進(jìn)行了巨大的投入。
個(gè)性方面,特斯拉采用純視覺(jué)的方案,而毫末采用視覺(jué)加激光雷達(dá)的方案。在激光雷達(dá)量產(chǎn)成本不斷降低的背景下,毫末的方案是具有發(fā)展?jié)摿Φ?。此外,毫末?Transformer 的應(yīng)用上更加深入。
除了融合空間信息以外,Transformer 在 MANA 系統(tǒng)中還被用來(lái)融合時(shí)序和多模態(tài)信息,將系統(tǒng)采集的各種離散數(shù)據(jù)統(tǒng)一起來(lái),形成連貫的數(shù)據(jù)流,以更好地支持后端的不同應(yīng)用。
不管采用何種實(shí)現(xiàn)方案,特斯拉和毫末智行在海量數(shù)據(jù)上進(jìn)行的嘗試對(duì)于自動(dòng)駕駛技術(shù)的發(fā)展和最終落地實(shí)現(xiàn)都是意義重大的。
也希望未來(lái)會(huì)有更多的企業(yè)加入進(jìn)來(lái),嘗試更多不同的可能性,互通有無(wú),互相學(xué)習(xí),甚至共享技術(shù)和數(shù)據(jù),讓自動(dòng)駕駛能夠更好更快地為大眾服務(wù)。