鏖戰智慧輔助駕駛:毫末智行苦修“Transformer架構”武功

作為在自然語言處理(NLP)領域應用廣泛的深度學習模型,Transformer 近兩年強勢來襲,不僅橫掃 NLP 領域,而且在 CV 上也鋒芒畢露。江湖傳言,Transformer 架構就像是絕世高手的武林秘籍,得秘籍者得天下!

毫末智行作為國內首先大規模使用 Vision Transformer 技術的公司,正在練就獨門絕學,力求在智慧駕駛的賽道上搶佔先機。

Transformer 的殺手鐧

我們知道,最初的 Transformer 來自於 NLP,它的出現將 NLP 領域向前推動了一大步。其中的關鍵要素就是Transformer 具備:超強的序列建模能力、全域性資訊感知能力。

得益於這兩點優勢,Transformer 幾乎取代了基於 RNN 的演算法在 NLP 中的地位,也被引入到 CV 領域。但值得我們深入思考的是,Transformer 如何利用優勢在視覺領域發揮作用呢?

我們知道 NLP 中處理的是語句,句子是天然的序列資料,所以我們很容易理解 Transformer 是如何處理它們的。可在視覺領域,“序列”的概念並不是顯式的,因此我們可以從空間和時間兩個維度去理解。

首先是空間維度,靜態影象從空間上可以被劃分成多個區域(block),一種典型的劃分方式就是按照高和寬進行劃分,例如,一幅影象的高和寬分別是 H 和 W,我們要求 block 的長寬均為 M,那麼最終我們會得到 (H/M ×W/M) 個 block。

事實上,我們可以把 block 看成是 NLP 句子中的詞,這裡的只不過是“視覺詞”(visual words)。這樣一來,就可以將一幅影象轉化成一個按照空間順序排列的 block 集合,一方面這樣的視角轉換保證了不丟失視覺資訊,另一方面讓應用 Transformer 變得非常容易。

另一種則是透過時間維度去理解視覺中的序列,即影片。影片是由靜態的影象幀組成,把每一幀看成是一個基本單元(同樣可以類別成句子中的詞),那麼我們就可以很自然地按照時間序列把一個片段組織起來,從而應用 Transformer 進行後續的特徵提取。

鏖戰智慧輔助駕駛:毫末智行苦修“Transformer架構”武功

圖引自論文《An Image is Worth 16x16 Words Transformer for Image Recognition at scale”》

除了強大的序列建模能力,Transformer 的主要模組 Multi-Head Self-Attention 可以同時感知到輸入序列的全域性資訊,這是 Transformer 相比於 CNN 的巨大優勢。在 CNN 中,資訊只能從區域性開始,隨著層數的增加,能夠被感知到的區域逐步增大。然而

Transformer 從輸入開始,每一層結構都可以看到所有的資訊,並且建立基本單元之間的關聯,也意味著Transformer 能夠處理更加複雜的問題。

Transformer 的最佳化升級

目前處於 Transformer 在視覺中應用的早期,大家使用 Transformer 的方式主要參考了其在 NLP 中的應用經驗。但是,如果直接將 Transformer 應用到視覺上,也會存在一些難題。

其一,核心模組多頭注意力機制(Multi-Head Self-Attention )的計算量與 block 的個數成正比,因此在視覺中 block 數量要遠多於 NLP 中句子的詞數,這就造成了計算量的陡增。

其二,Transformer 擅長全域性關係的學習,對於區域性細節資訊關注有限,然而視覺中很多工需要足夠豐富的細節資訊做判斷,比如語義分割。

針對上述的問題,

毫末智行人工智慧研發團隊對核心模組多頭注意力機制(Multi-Head Self-Attention)進行了最佳化,同時採用了金字塔的結構增強 Transformer 對於細節資訊的感知。

鏖戰智慧輔助駕駛:毫末智行苦修“Transformer架構”武功

圖引自論文《LeViT a Vision Transformer in ConvNet Clothing for Faster Inference》

Transformer 的未來演化

儘管我們在上面提到了 Transformer 的一些不盡如意之處,但隨著研究的深入,大家逐步發現在同一結構中結合 CNN 和 Transformer 各自的優勢,即可做到相互的揚長避短。在未來,把CNN 和 Transformer 進行整合將成為 Transformer 的演化路徑之一。

具體來說,主幹網使用 CNN,Head 使用 Transformer 結構,可以有效提升網路的速度(相比純使用 Transformer);相反,主幹網使用 Transformer 結構,Head 使用 CNN 的結構,可以有效提升結果精度(相比於純使用 CNN)。

其次,核心模組 Multi-Head Self-Attention 內部也可以透過降低子空間的維度、對輸入 block 進行分組等手段降低其計算量且不至於損失過多精度。

最後,透過控制 block 的粒度,使 Transformer 能夠感知到不同尺度的資訊,從而達到區域性和全域性的資訊融合。

毫末智行團隊已經將上述的改進逐步新增到了毫末智行自己的模型中。未來,我們將不斷在提升速度的同時保證出色的精度,讓 Transformer 在實際的業務中生根發芽。

鏖戰智慧輔助駕駛:毫末智行苦修“Transformer架構”武功

圖引自論文《End to End Object Detection with Transformers》

基於 Transformer 的感知演算法表現出了極強的泛化性和魯棒性,我們堅定認為,Transformer 的優秀特性極有可能在智慧駕駛的場景中發揮出傳統 CNN 演算法所不能企及的感知能力。

鑑於此,

毫末智行的人工智慧團隊正在逐步將基於 Transformer 的感知演算法應用到實際的道路感知問題,例如車道線檢測、障礙物檢測、可行駛區域分割、紅綠燈檢測&識別、道路交通標誌檢測、點雲檢測&分割等。

未來,相關 Transformer 感知演算法更加和穩定成熟後,逐步替換基於 CNN 的感知演算法。

Transformer 技術的進一步應用,不僅為毫末智行在各條智慧駕駛產品線上的視覺演算法落地帶來成倍的效率提升,還能夠讓各項視覺效能指標快速達到業內領先水平。