李清格,楊小岡,盧瑞濤,王思宇,謝學立,張 濤
(火箭軍工程大學 導彈工程學院,西安 710025) E-mail:doctoryxg@163.com
2017年,Google研究團隊基于自注意力機制提出了Transformer[1]架構(gòu),隨即在自然語言處理(Natural Language Processing,NLP)領(lǐng)域的序列建模和機器翻譯等任務(wù)上顯示出了巨大優(yōu)勢,目前已經(jīng)成為NLP領(lǐng)域主流的深度學習模型.
Transformer在NLP領(lǐng)域的飛速發(fā)展引起了計算機視覺(Computer Version,CV)領(lǐng)域的廣泛關(guān)注.計算機視覺任務(wù)通常面對的是圖像或視頻數(shù)據(jù),卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)具有平移不變性和局部敏感性等歸納偏置,可以很好地捕捉圖像細粒度特征和局部信息,是計算機視覺領(lǐng)域的主流模型.但是CNN感受野有限,不具備獲取全局信息的能力,且網(wǎng)絡(luò)權(quán)重固定,無法動態(tài)適應(yīng)輸入的變化.且隨著算力的提升,CNN模型對數(shù)據(jù)需求日趨飽和,需要更大體量的模型取代CNN.于是Transformer開始逐漸應(yīng)用于CV領(lǐng)域.
目前,Transformer已經(jīng)成功應(yīng)用于計算機視覺任務(wù)和多模態(tài)任務(wù)當中,發(fā)展歷程和典型模型如圖1所示.2018年Image Transformer[2]首次將Transformer應(yīng)用于計算機視覺領(lǐng)域,2020年目標檢測模型DETR[3]和圖像分類模型ViT[4]的提出是視覺Transformer迅猛發(fā)展的開端,此后,視覺Transformer開始席卷整個計算機視覺領(lǐng)域.但由于Transformer模型參數(shù)量大,計算成本高,于是許多學者開始將CNN中成功的先驗知識引入到Transformer中,包括局部性、層次化、多尺度、殘差連接和歸納偏置等設(shè)計.其中最成功的當屬微軟亞洲研究院提出的Swin Transformer[5],在多個視覺任務(wù)上取得了最先進的結(jié)果,成為ICCV2021的最佳論文.自此視覺Transformer對CNN產(chǎn)生了降維打擊,成為了目前最流行的深度學習算法.
圖1 Transformer發(fā)展歷程Fig.1 Transformer development process
表1 視覺Transformer典型模型Table 1 Typical models of visual Transformers
本文根據(jù)各類視覺任務(wù)對視覺Transformer進行了系統(tǒng)的分類,總結(jié)了Transformer在各類視覺任務(wù)上的典型算法,如表1所示.本文剩余部分組織如下:第2節(jié)介紹了視覺Transformer的結(jié)構(gòu)和原理,并梳理了Transformer在視覺分類任務(wù)上改進方向,同時分析了Transformer的特點和局限性;第3節(jié)總結(jié)了Transformer在目標檢測、圖像分割等高層視覺任務(wù)上的應(yīng)用和發(fā)展;第4節(jié)介紹了Transformer在底層視覺任務(wù)上的應(yīng)用;第5節(jié)總結(jié)了Transformer在多模態(tài)任務(wù)上的應(yīng)用;第6節(jié)對視覺Transformer的發(fā)展趨勢進行了展望并總結(jié)了全文.
ViT模型利用經(jīng)典Transformer編碼器結(jié)構(gòu)實現(xiàn)了圖像分類任務(wù),是視覺Transformer模型的開端,模型結(jié)構(gòu)如圖2所示.首先將輸入圖像轉(zhuǎn)換為無重疊、固定大小的圖像塊,其次將每個圖像塊拉平為一維向量,再通過線性投影壓縮維度.
圖2 ViT模型結(jié)構(gòu)[4]Fig.2 Structure of ViT[4]
此外,圖像序列前端引入可學習的分類標志位,以實現(xiàn)分類任務(wù),再利用位置編碼加入位置信息后輸入到多個串行的標準Transformer編碼器中進行注意力計算和特征提取.
2.1.1 編碼器
圖3 Transformer編碼器結(jié)構(gòu)Fig.3 Structure of Transformer encoder
(1)
(2)
類別預(yù)測結(jié)果見公式(3):
(3)
2.1.2 自注意力機制
自注意力機制模仿了生物視覺的顯著性檢測和選擇性注意,可以建立長距離依賴關(guān)系,解決了CNN感受野有限的問題.ViT中使用的是縮放點積注意力,如圖4(左)所示.用X∈n×d表示包含n個元素的序列(x1,x2,…,xn),其中d表示每個元素的嵌入維數(shù).自注意力機制定義了3個可學習的權(quán)重矩陣:查詢矩陣(WQ∈n×dq)、鍵值矩陣(WK∈n×dk)以及值矩陣(WV∈n×dv).首先將輸入序列X∈n×d投影到這3個權(quán)重矩陣上,得到查詢向量Q、鍵值向量K以及值向量V,計算過程如公式(4)所示:
圖4 自注意力與多頭注意力Fig.4 Self-attention and multi-head self-attention
Q=XWQ,K=XWK,V=XWV
(4)
縮放點積注意力的計算過程如公式(5)所示:
(5)
2.1.3 多頭自注意力
(6)
2.1.4 位置編碼
由于自注意力計算過程中沒有考慮到位置信息,而數(shù)據(jù)之間的關(guān)系又受位置信息的影響,因此將輸入嵌入與一個額外的位置向量相加,得到的結(jié)果作為編碼器的最終輸入,這個過程就是位置編碼.位置編碼后的信息可以并行輸入,計算效率大大提高.ViT模型采用的編碼方式如公式(7)所示:
PE(pos,2i)=sin(pos/100002i/d)
PE(pos,2i+1)=cos(pos/100002i/d)
(7)
Transformer首先應(yīng)用于NLP的機器翻譯任務(wù),是序列-序列的自回歸模型.Transformer利用自注意力、交叉注意力和位置編碼等方法,具備較強的全局信息交互能力,其在計算機視覺領(lǐng)域成功應(yīng)用的原因有以下幾個方面:
1)對圖像的整體感知能力強.長期依賴問題令NLP和CV領(lǐng)域困擾已久,常用于圖像特征提取的CNN感受野有限,更適用于局部信息的提取,因此只能通過設(shè)計更深的網(wǎng)絡(luò)結(jié)構(gòu)來提取圖像的全局特征,導致模型復雜度增加,容易產(chǎn)生模型梯度消失,難以收斂等問題.Transformer由于其自身結(jié)構(gòu),可以獲取上下文信息,具備獲取并存儲長距離依賴信息的能力,能夠?qū)D像實現(xiàn)整體感知和宏觀理解.
2)模型可擴展性強.由于許多視覺任務(wù)缺乏大數(shù)據(jù)量的訓練集,因此難以直接訓練大體量的模型結(jié)構(gòu).Transformer可以在大規(guī)模數(shù)據(jù)集上進行自監(jiān)督訓練,無需人工標簽的同時,在下游任務(wù)上進行微調(diào)即可遷移到所需任務(wù)上,大幅節(jié)省了訓練所需的數(shù)據(jù)量.此外,現(xiàn)有Transformer模型的參數(shù)量最高可達數(shù)十億,但是模型性能隨著模型參數(shù)量的增加還在持續(xù)上升,Transformer模型的性能上限仍然是未知數(shù).
3)對多模態(tài)數(shù)據(jù)的適應(yīng)能力強.CNN擅長處理圖像數(shù)據(jù),遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)擅長處理文本序列,而Transformer模型對于輸入數(shù)據(jù)類型的適應(yīng)更為靈活,只要能將輸入數(shù)據(jù)抽象為序列嵌入,Transformer即可適用于任何類型的數(shù)據(jù).
Transformer編碼器-解碼器結(jié)構(gòu)使并行計算得以實現(xiàn),提高了模型的訓練效率.利用自注意力機制,能夠捕獲數(shù)據(jù)之間的長距離信息和依賴關(guān)系,在數(shù)據(jù)量越大的情況下Transformer的優(yōu)勢更加明顯.但是視覺Transformer也存在如下問題:
1)ViT的訓練成本高,訓練數(shù)據(jù)需求量大.ViT與CNN相比計算復雜度高,導致計算量過于龐大,且ViT的歸納偏置能力比較弱,因此ViT只有在大規(guī)模數(shù)據(jù)集的預(yù)訓練下才能獲得較好的性能,當訓練數(shù)據(jù)或硬件的計算能力有限時,ViT難以發(fā)揮其優(yōu)勢.
2)ViT將輸入圖像切分為圖像塊,一是破壞了圖像的空間結(jié)構(gòu),忽略了圖像的局部信息,特別是圖像塊的邊緣信息.二是ViT無法直接適用于不同尺寸的圖像輸入,因為ViT切分的圖像塊大小是固定的,當圖像尺寸發(fā)生變化時,輸入序列長度就會改變,位置編碼無法直接適用.
本節(jié)針對視覺Transformer模型存在的問題,以圖像分類這一基本視覺任務(wù)為基礎(chǔ),從引入局部性、層次化、與CNN融合和深度Transformer 4個研究方向出發(fā),介紹了目前視覺Transformer模型研究的方向和新進展.
2.3.1 引入局部性計算
針對ViT將輸入圖像簡單切分為圖像塊導致圖像局部信息受損,且自注意力機制計算復雜度高的問題,部分學者引入局部注意力,首先提取圖像的局部特征,再進行局部與全局特征交互.
1)基于局部窗口的特征提取
Swin Transformer[5]引入局部注意力思想,在無重合的窗口區(qū)域內(nèi)進行局部自注意力計算,大幅度降低了計算復雜度,再利用移位窗口多頭注意力(SW-MSA)實現(xiàn)了不重合窗口之間的信息交互.Swin Transformer作為通用的視覺主干網(wǎng)絡(luò),在圖像分類ImageNet-1K數(shù)據(jù)集上達到了86.4%的Top-1準確率,在COCO數(shù)據(jù)集上的目標檢測和實例分割,以及ADE20K數(shù)據(jù)集上的語義分割等視覺任務(wù)上的效果均位列榜首.CSWin Transformer[30]模型將Swin Transformer中W-MSA和SW-MSA模塊用十字形局部窗口的替代,實現(xiàn)了跨窗口的局部注意力計算,不增加計算量的同時大幅提升了精度.
2)基于局部注意力
TNT[6]基于Transformer嵌套結(jié)構(gòu),外部Transformer模塊用于獲取圖像塊之間的關(guān)系,而內(nèi)部Transformer模塊則從各個圖像塊中提取局部特征,通過局部特征和全局特征的交互取得了很好結(jié)果.Twins[31]模型采用空間可分離自注意力計算方法,先對特征空間維度進行分組,再從全局對各組注意力計算的結(jié)果進行融合.VOLO[32]模型中引入了outlook注意力用來提取局部圖像塊的細粒度特征和語義信息,而自注意力機制僅關(guān)注粗粒度的全局依賴關(guān)系.與之思路相似的是Focal Transformer[33],在細粒度特征圖上建立短期依賴,在粗粒度特征圖上建立長期依賴.
2.3.2 基于層次化結(jié)構(gòu)
為了解決純Transformer計算量大,難以應(yīng)用于密集預(yù)測任務(wù)的問題,有學者將層次化結(jié)構(gòu)引入Transformer中,取得了很好的效果.
1)引入特征金字塔
PVT[7]將金字塔結(jié)構(gòu)引入到Transformer中,是第一個純Transformer用于像素級密集預(yù)測任務(wù)的主干網(wǎng)絡(luò).PVT模型分為4個階段,每個階段結(jié)構(gòu)相似,后一階段采用前一階段的輸出作為輸入,可以生成不同尺度的特征圖,降低了高分辨率特征圖的學習成本.Pyramid TNT[34]將金字塔結(jié)構(gòu)與TNT結(jié)合,Pyramid TNT-S只有3.3G FLOPs計算量的情況下在ImageNet數(shù)據(jù)集上獲得了82.0%的分類準確率,明顯優(yōu)于TNT-S[6].與PVT設(shè)計思路相似的有PiT[35]和HVT[36]模型,都是在每一層特征圖上對全局進行關(guān)系建模,再通過層級池化逐步縮小特征圖尺寸,不斷提純特征.
2)層次化特征序列
T2T-ViT[8]在ViT的基礎(chǔ)上提出了一種漸進式Tokens-to-Token(T2T)機制,用于同時建模圖像的局部結(jié)構(gòu)信息與全局相關(guān)性.T2T模塊首先將上一層Transformer的輸入特征序列恢復為圖像,然后模擬CNN操作進行有重疊采樣,將相鄰的tokens聚合成一個新的token,得到新的序列,新序列的token數(shù)量減小且深度增加,然后輸入至下一個T2T模塊.與ViT相比,T2T-ViT改進了圖像塊嵌入模塊,通過T2T機制先將圖像結(jié)構(gòu)化為特征序列,再逐步縮短序列長度,最終將層次化特征序列輸入至Transformer中進行計算.
2.3.3 與CNN融合的視覺Transformer
許多學者對于如何將Transformer的全局信息建模能力和CNN的歸納偏置能力進行融合展開了研究.
1)訓練方式
在訓練方式上,有學者利用已經(jīng)訓練成熟的CNN模型來指導Transformer訓練,該類方法典型模型如DeiT[9].為了緩解ViT對大型數(shù)據(jù)集的依賴性,DeiT模型在預(yù)訓練過程中應(yīng)用了師生策略,使用CNN作為教師模型,對知識進行提煉得到軟標簽,再將得到的軟歸納偏置傳遞給Transformer學生模型.基于這種蒸餾方法,DeiT-B在沒有額外訓練數(shù)據(jù)的情況下最高達到了85.2%的Top-1精度.
2)位置編碼
一些學者利用CNN對Transformer中的位置編碼模塊進行改進.CvT[10]利用卷積獲得局部上下文信息,通過多層堆疊獲得全局的相對位置關(guān)系,因此可以取代ViT中的位置編碼模塊.CvT模型輸入圖像通過卷積得到特征序列,通過控制步長獲得不同長度的序列,同時利用深度卷積將特征轉(zhuǎn)化成Q、K、V向量,減少了計算量.CPVT[37]模型在PVT[7]模型的基礎(chǔ)上提出了條件位置編碼方法,可以通過一系列卷積高效獲取絕對位置信息.CoaT[38]模型設(shè)計了卷積注意力模塊,采用類卷積的計算方式進行相對位置編碼.
3)CNN與自注意力機制融合的特征學習
此外,部分學者將Transformer中的部分模塊與CNN模型相結(jié)合,同樣取得了很好的結(jié)果.ConViT[39]提出一種具有CNN軟歸納偏置的門控位置自注意力機制,模仿了卷積操作的局部性,通過調(diào)整學習到的門控參數(shù)來調(diào)整位置對內(nèi)容信息的關(guān)注度,從而給予每個注意力頭自由來規(guī)避局部性,在ImageNet上超出DeiT 0.6%~3.2%的Top-1精度.VOLO[32]、CoAtNet[40]等模型將深度卷積和注意力機制相結(jié)合,使模型具有更強的學習能力和泛化能力.BoTNet[41]是利用多頭自注意力機制替換了ResNet[42]最后一個bottleneck中的3×3卷積,在ImageNet數(shù)據(jù)集上取得了84.7%的最高準確率.
2.3.4 深度視覺Transformer
根據(jù)深度學習模型的設(shè)計經(jīng)驗,模型深度增加能學習到更復雜的特征,從而提高模型性能.然而對于深度Transformer模型,隨著網(wǎng)絡(luò)層數(shù)的加深,注意力機制會發(fā)生坍塌,導致Transformer隨著層數(shù)的加深模型性能不升反降.為了解決這個問題,CaiT[11]和DeepViT[43]都在ViT模型的基礎(chǔ)上進行研究.CaiT設(shè)計了在網(wǎng)絡(luò)加深情況下也能收斂的LayerScale結(jié)構(gòu),解決了殘差連接過程中方差放大的問題.其次為了解決分類標志位在注意力計算和分類的過程中參數(shù)優(yōu)化矛盾的問題,在自注意力計算階段,分類標志位不參與運算,當提取的特征圖不隨網(wǎng)絡(luò)加深而改變時,再加入分類標志位進行分類注意力計算,提高了深度ViT的收斂速度和精度.而DeepViT通過設(shè)計重注意力代替標準自注意力機制,重新生成注意力圖,增加了深層特征的多樣性,從而使具有32個Transformer模塊的深度ViT模型提高了1.6%的分類精度.
目前,視覺Transformer算法的研究和改進大多基于ViT模型,發(fā)展方向大致可以分為4類:部分方法是通過引入局部性計算降低模型的計算復雜度,有的方法是基于層次化結(jié)構(gòu)提取不同尺度的特征,還有方法通過結(jié)合CNN和Transformer的優(yōu)勢提高模型性能,同時更深度的視覺Transformer算法也在不斷發(fā)展.表2對比了視覺Transformer典型算法在ImageNet數(shù)據(jù)集上的分類性能.根據(jù)典型視覺Transformer方法在ImageNet上的實驗結(jié)果,圖 5(a)對比了模型性能與參數(shù)量的關(guān)系,圖 5(b)對比了模型性能與計算量的關(guān)系.
表2 視覺Transformer模型性能對比Table 2 Performance comparison of visual Transformers
從目前的研究趨勢看來,未來基于Transformer的圖像分類方法的研究將會集中在如何更好的引入局部性和層次化結(jié)構(gòu),從而達到和Transformer的全局性形成互補以提高模型的性能.同時,構(gòu)建自監(jiān)督學習的Transformer模型也是未來一個熱門的研究方向.此外,由于Transformer和CNN各有優(yōu)劣不可互相代替,因此如何結(jié)合二者的優(yōu)勢構(gòu)建性能更佳的分類算法也是未來的研究熱點之一.
目標檢測的目的是找到特定目標在圖像中的精確定位,并給出每個目標的具體類別.目前基于深度學習的目標檢測方法主要分為兩階段和單階段目標檢測算法,兩階段目標檢測算法以Faster R-CNN系列[49-53]為代表,單階段目標檢測算法以YOLO系列[54-58]為代表.基于Transformer的目標檢測方法大多是在DETR[3]算法的基礎(chǔ)進行改進,也有一些是將通用的Transformer主干網(wǎng)絡(luò)[5,7,33,48,59]應(yīng)用到目標檢測任務(wù)中,同樣取得了很好的結(jié)果.不同的目標檢測算法在COCO數(shù)據(jù)集上的性能對比如表3所示.
3.1.1 基于目標查詢機制的檢測算法
DETR[3]是第1個基于Transformer的端到端的目標檢測算法,整體結(jié)構(gòu)如圖6所示.DETR無需錨點(anchor)和非極大值抑制(NMS),而是將目標檢測視為一種集合預(yù)測問題,利用目標查詢機制實現(xiàn)特征交互,通過編碼器-解碼器的序列預(yù)測架構(gòu),并行輸出每個目標查詢中的預(yù)測結(jié)果,為端到端的目標檢測提供了一種新思路.
DETR中的目標查詢向量個數(shù)固定,代表了潛在目標特征和位置信息,其與圖像特征交互的過程中不斷進行更新.這種檢測方式存在收斂速度慢、目標查詢?nèi)哂嘁约靶∧繕藱z測結(jié)果差的問題,在COCO數(shù)據(jù)集上比Faster R-CNN[50]慢了10~20倍,需要500個epoch才能收斂,小目標檢測平均準確率僅有20.5%.
針對DETR中目標查詢?nèi)哂嗟膯栴},ACT[62]采用局部敏感哈希[65]自適應(yīng)地將查詢特征進行聚類,從而壓縮目標查詢的個數(shù).Sparse R-CNN[53]借鑒了DETR的目標查詢機制,但查詢向量依然是固定長度的可學習向量.在此基礎(chǔ)上,Dynamic Sparse R-CNN[66]設(shè)計了動態(tài)目標查詢機制,在訓練階段利用動態(tài)卷積生成動態(tài)樣本相關(guān)的建議框和建議特征.動態(tài)可學習的目標查詢機制更為靈活,對于小目標檢測效果更佳.
圖5 視覺Transformer模型性能與影響因素Fig.5 Performance and influencing factors of visual Transformers
圖6 DETR模型結(jié)構(gòu)Fig.6 Structure of DETR
表3 目標檢測算法性能對比Table 3 Performance comparison of object detection algorithms
3.1.2 提高DETR收斂速度的改進算法
為了解決以DETR為代表的目標檢測模型收斂速度緩慢、計算復雜度高的問題,本節(jié)從自注意力機制的改進、目標查詢初始化、編碼器特征交互以及無監(jiān)督訓練4個方面總結(jié)提升DETR收斂速度的方法.
1)自注意力機制的改進
通過在DETR的注意力機制中引入稀疏性從而提高模型收斂速度.Deformable DETR[61]模型利用可形變卷積[67]中稀疏空間采樣的優(yōu)勢,采用多尺度可形變注意力替換DETR中的標準注意力模塊,降低了計算復雜度的同時將計算速度提高了1.6倍,在小目標檢測上的精度提升了5.9%APs.
2)目標查詢初始化
DETR中的目標查詢采用隨機初始化的方法,需要較長的時間才能完成對目標特征和位置的學習,影響了DETR的收斂速度.為了解決上述問題,TSP[12]模型利用CNN對目標查詢進行初始化,通過生成一組固定大小的興趣特征或候選框,然后將其輸入至編碼器進行密集預(yù)測,加快了模型的收斂速度.
3)基于編碼器的特征交互
研究表明,DETR解碼器中的交叉注意力機制存在固有的計算瓶頸,導致DETR收斂速度慢[12].因此僅采用編碼器結(jié)構(gòu),可以提高模型的收斂速度.YOLOS[63]融合了ViT的模型架構(gòu)和DETR的預(yù)測方式,用類似DETR中可學習的檢測標志位代替了ViT中的分類標志位,利用編碼器對圖像信息進行目標估計.TSP同樣是利用編碼器對初始化的目標查詢進行特征交互,得到最終結(jié)果.與DETR相比,TSP以更低的訓練成本和更高的計算速度獲得了更好的性能.
4)無監(jiān)督訓練
UP-DETR[13]是一種無監(jiān)督預(yù)訓練的目標檢測算法.首先從給定的圖像中隨機裁剪圖像塊輸入至解碼器,經(jīng)過預(yù)訓練的解碼器可以定位圖像塊在原始圖像中的位置.為了解決多查詢定位問題,將多個單查詢塊分配給不同的目標查詢,其中每個查詢塊都通過注意力掩碼和對象查詢洗牌機制進行獨立預(yù)測,從而模擬多目標檢測任務(wù),加速了DETR模型的收斂.
3.1.3 基于標簽匹配策略的改進
DETR利用二分匹配將目標查詢與對應(yīng)的真值進行匹配,利用匈牙利算法(Hungarian Algorithm)快速實現(xiàn),找到真實值與預(yù)測值的對應(yīng)關(guān)系.與CNN模型中的真值匹配策略不同,二分匹配不依賴位置先驗信息(如IoU、距離等),而是直接將預(yù)測結(jié)果與真實值進行匹配.定義真實值為yi,匹配策略為σ,預(yù)測值為yσ(i),則匹配損失如公式(8)所示:
(8)
(9)
由于二分匹配初始化是隨機的,匈牙利算法計算損失值時具有不穩(wěn)定性,導致DETR訓練早期收斂速度慢.針對此問題,TSP采用匹配蒸餾法,并基于FCOS算法設(shè)計了新的二分匹配算法,將落在標注框內(nèi)或與標注框有一定重疊的預(yù)測值與真實值進行匹配,顯著提高了收斂速度.匈牙利算法是一對一匹配,即每個預(yù)測框與一個標注框匹配,結(jié)果可能不是最優(yōu)的.而動態(tài)Sparse R-CNN[66]將最優(yōu)傳輸理論應(yīng)用于Sparse R-CNN,提出了多對一的動態(tài)標簽分配(DLA)策略,更有效地優(yōu)化匹配結(jié)果.
3.1.4 基于Transformer主干的特征提取
在特征提取方面,Transformer模型比CNN模型更擅長提取全局上下文信息,具有更大的感受野,因此可以為下游密集預(yù)測任務(wù)提供豐富的特征輸入.目前的許多視覺Transformer模型如Swin Transformer[5]、PVT[7]、PVTv2[48]、ViL[59]、Focal Transformer[33]等作為主干網(wǎng)絡(luò),替代基于CNN的主干網(wǎng)絡(luò)進行特征提取,結(jié)合典型目標檢測網(wǎng)絡(luò),同樣可以很好地完成目標檢測任務(wù).此外,FPT[14]借鑒FPN[68]的思想,結(jié)合非局部特征和多尺度特征,可以作為密集預(yù)測任務(wù)的通用主干.相比基于CNN的特征提取網(wǎng)絡(luò),Transformer可以作為一種新的特征提取網(wǎng)絡(luò)應(yīng)用于目標檢測模型中,從而取得更好的目標檢測結(jié)果.
表4 分割算法性能對比Table 4 Comparison of segmentation algorithms
圖像分割包括語義分割和實例分割,語義分割需要區(qū)分圖像中各類目標的每一個像素點,實例分割在此基礎(chǔ)上還要區(qū)分同類物體的不同個體,是目標檢測和語義分割的結(jié)合.目前基于深度學習的圖像分割方法以FCN[69]、Mask RCNN[71]等基于CNN的模型為主,為了在不損失圖像分辨率的情況下利用更大的感受野學習更多的語義信息,在遠程上下文信息建模上具有顯著優(yōu)勢的Transformer逐漸應(yīng)用于分割任務(wù).典型分割算法在ADE20K數(shù)據(jù)集上的性能對比見表4.
3.2.1 基于Transformer特征提取的分割算法
Transformer模型可以替換現(xiàn)有分割算法中的CNN主干網(wǎng)絡(luò),進行全局信息建模和特征提取.此外,還有算法設(shè)計了新的Transformer分割框架,利用全局感受野優(yōu)勢實現(xiàn)特征提取.SETR[15]借鑒ViT的設(shè)計思路,利用Transformer編碼器提取全局語義信息,結(jié)構(gòu)如圖7所示.SETR將語義分割視為序列到序列的預(yù)測任務(wù),設(shè)計了3種不同復雜度的解碼器獲取分割結(jié)果:樸素上采樣、漸進上采樣和多級特征聚合,結(jié)果雖然優(yōu)于傳統(tǒng)FCN方法,但具有十分龐大的計算量和參數(shù)量.為此,SegFormer[16]設(shè)計了一種具有層級結(jié)構(gòu)的編碼器,可以輸出多尺度特征,采用輕量級MLP聚合各層特征,并通過引入卷積避免了位置編碼,從而解決了輸入圖像尺寸變化對模型性能的影響,在ADE20K數(shù)據(jù)集上取得了51.8%的SOTA結(jié)果.
圖7 SETR模型結(jié)構(gòu)[15]Fig.7 SETR model structure[15]
3.2.2 基于目標查詢的語義分割
Transformer的查詢機制是類別信息、位置信息以及圖像特征信息的通用表示形式,因此可以為語義分割提供基礎(chǔ).在語義分割任務(wù)中,查詢機制的初始化是隨機的,后續(xù)利用注意力機制進行特征的交互捕獲重要信息,為每一個像素輸出一個類別信息,從而實現(xiàn)語義分割.Segmenter[17]將語義分割任務(wù)視為一個序列到序列的問題,是一個無卷積的純Transformer模型.Segmenter利用類別嵌入建立目標查詢,編碼器與ViT結(jié)構(gòu)相同,結(jié)合逐點線性解碼器或掩碼Transformer解碼器,利用交叉注意力與圖像塊進行信息交互,最終通過圖像塊和類別嵌入之間的注意力圖生成逐像素預(yù)測的類別標簽,最后利用softmax等操作獲得分割結(jié)果.Segmenter在主流語義分割數(shù)據(jù)集(ADE20K、Pascal Context和Cityscapes)上的性能超越了基于CNN的SOTA模型.
3.2.3 基于目標檢測的實例分割
基于Transformer的實例分割可以在目標檢測網(wǎng)絡(luò)的基礎(chǔ)上實現(xiàn),例如在DETR目標檢測的結(jié)果上生成檢測框嵌入,利用圖像特征與檢測框嵌入之間的信息交互提取目標特征,再基于查詢與圖像特征的注意力圖進行目標和背景掩碼的預(yù)測.此外,基于Sparse R-CNN,ISTR[70]提出了一種檢測分割并行的實例分割Transformer.ISTR的目標查詢采用隨機初始化的方法,后續(xù)通過迭代計算不斷更新目標查詢以及特征提取,特征信息用于學習動態(tài)卷積參數(shù)以實現(xiàn)動態(tài)處理區(qū)域特征的目標,從而并行產(chǎn)生檢測框和掩碼預(yù)測.
目標跟蹤是根據(jù)已知視頻序列某一幀中目標大小和位置,預(yù)測后續(xù)幀中該目標的大小和位置的過程,廣泛應(yīng)用在無人機、無人車、機器人等領(lǐng)域.目標跟蹤可以分為單目標跟蹤、多目標跟蹤、目標重識別等子任務(wù).Transformer在單目標跟蹤任務(wù)和目標重識別任務(wù)中主要用于提取深度特征,在多目標跟蹤任務(wù)中,主要借鑒了DETR的目標查詢機制,以目標檢測為基礎(chǔ)進行跟蹤算法設(shè)計.
3.3.1 基于Transformer深度特征提取的單目標跟蹤
Transformer在單目標跟蹤模型中主要用于對CNN主干網(wǎng)絡(luò)提取的特征進行增強和融合,后續(xù)再進行分類和回歸預(yù)測,典型算法有TrSiam[71]和TransT[19].TrSiam將Transformer與孿生網(wǎng)絡(luò)跟蹤器和判別相關(guān)濾波器結(jié)合,是首個基于Transformer的單目標跟蹤模型.主干網(wǎng)絡(luò)提取的特征利用編碼器進行加強,再解碼器處理搜索特征.解碼器中的自注意力與編碼器中的自注意力權(quán)值共享,從而使模板特征和搜索特征映射到同一特征空間中.TrSiam以端到端的方式訓練,跟蹤速度達到35 FPS.TransT利用Transformer特征融合網(wǎng)絡(luò)對主干網(wǎng)絡(luò)提取的兩個分支特征進行融合,有效融合了目標和搜索區(qū)域的全局信息,精度顯著提升的同時將運行速度提高到了50 FPS.
3.3.2 基于目標查詢機制的多目標跟蹤算法
多目標跟蹤由多步檢測跟蹤算法控制,包括目標檢測、特征提取和時間關(guān)聯(lián)等步驟,基于Tranformer的典型算法有TransTrack[72]和TrackFormer[18],二者都是基于DETR目標檢測算法的查詢機制,可實現(xiàn)在線聯(lián)合檢測跟蹤,簡化了傳統(tǒng)方法的復雜組件和跟蹤步驟.TransTrack首先檢測出當前幀中的目標,利用可學習查詢機制從其他幀中進行特征查詢,得到與當前目標相關(guān)聯(lián)的新目標,在MOT17數(shù)據(jù)集上得到了65.8%的跟蹤準確率.TrackFormer是一個端到端的多目標跟蹤模型,通過設(shè)計的自回歸跟蹤查詢機制,利用DETR目標檢測器得到上一幀中跟蹤的軌跡特征變換結(jié)果,以自回歸的方式跟蹤視頻序列中的目標.
3.3.3 利用Transformer特征學習的目標重識別方法
目標重識別(ReID)的目的是判斷圖像或視頻序列中是否存在特定目標,目前廣泛應(yīng)用于智能視頻監(jiān)控、智能安保等領(lǐng)域.TransReID[20]是典型的基于Transformer設(shè)計的目標重識別模型.TransReID基于ViT主干網(wǎng)絡(luò),在網(wǎng)絡(luò)最后一層設(shè)計了與全局分支并行的Jigsaw分支,并提出了一種JPM模塊,通過對圖像塊的打亂重組,使模型適應(yīng)擾動的同時能夠獲得圖像的全局信息,因此取得了更好的訓練結(jié)果.在MSMT17行人重識別數(shù)據(jù)集和VeRi-776車輛重識別數(shù)據(jù)集上,分別達到了69.4%和81.7%的mAP.
底層視覺任務(wù)指的是像素級圖像處理任務(wù).目前,底層視覺任務(wù)上的Transformer模型大致可分為純Transformer架構(gòu)和Transformer與CNN結(jié)合的模型,前者對于高分辨率圖像計算量巨大,因此構(gòu)建模型時必須考慮如何降低模型的計算復雜度,一般通過采用窗口計算或通道自注意力機制將時間復雜度降低為線性復雜度.后者一般首先利用CNN的歸納偏置特性提取圖像淺層特征和局部上下文信息,使模型更適用于底層視覺任務(wù)且便于訓練.如何將Transformer與CNN進行更好的聚合,以及如何在降低自注意力機制計算復雜度的同時更好地獲得遠距離依賴關(guān)系是目前Transformer在底層視覺任務(wù)上的研究方向.
圖像生成是基于現(xiàn)有數(shù)據(jù)生成新圖像的計算機視覺任務(wù),基于Transformer的圖像生成方法一開始以基于像素的生成方法為主,典型代表有Image-Transformer[2]、iGPT[21].二者將圖像生成看作自回歸序列生成問題,iGPT采用無監(jiān)督的訓練方式,可達到99.0%的準確率,缺點是計算成本高,無法處理高分辨率圖像.目前,基于Transformer的圖像生成方法大多是與GAN[73]網(wǎng)絡(luò)的結(jié)合,以VQGAN[74]、TransGAN[75]為代表.TransGAN是基于內(nèi)存友好的生成器和多尺度判別器的純Transformer架構(gòu),生成器生成的圖像切分為圖像塊后輸入判別器,然后利用編碼器區(qū)分真實圖像和生成圖像.VQGAN用感知豐富的圖像成分組成表示圖像,利用Transformer對圖像成分的長距離關(guān)系建模,更適用于處理高分辨率圖像.
超分辨率圖像重建是從低分辨率圖像中恢復出高分辨率圖像的計算機視覺任務(wù).為了解決Transformer在圖像超分任務(wù)中計算成本高、內(nèi)存占用大的問題,SwinIR[24]、ESRT[76]等模型將卷積和Transformer進行結(jié)合,有效降低了計算量.二者都是首先利用卷積提取淺層特征,再利用Transformer提取深度特征.SwinIR的深度特征提取模塊是由多個殘差Swin Transformer模塊(RSTB)構(gòu)成,每個RSTB利用多個堆疊的Swin Transformer對深層特征進行提取,然后通過卷積層增強特征,最后通過殘差連接進行特征聚合.在Urban100數(shù)據(jù)集上,SwinIR比其他SOTA方案精度高了0.14~0.45dB,同時降低的參數(shù)量高達67%.ESRT通過設(shè)計高效多頭注意力降低計算成本和GPU的內(nèi)存占用.與原始Transformer占用16057M GPU內(nèi)存相比,ESRT僅占用4191M GPU內(nèi)存,在計算性能和成本之間達到了最好的平衡.
圖像增強的目的是增強圖像中的有用信息,抑制不感興趣的特征,從而改善圖像質(zhì)量.IPT[23]是典型的基于Transformer的圖像增強模型,結(jié)構(gòu)如圖8所示.IPT采用多頭結(jié)構(gòu)和多尾結(jié)構(gòu)來處理超分辨率、去噪、去雨等底層視覺任務(wù),不同任務(wù)共享同一個Transformer模塊.其中多頭結(jié)構(gòu)利用卷積層提取圖像特征,特征圖經(jīng)分塊展平后通過編碼器和解碼器進行處理,最后通過多尾結(jié)構(gòu)將解碼器輸出的特征圖轉(zhuǎn)換為目標圖像.IPT可同時對多個任務(wù)進行預(yù)訓練,每個訓練批次隨機選擇一個任務(wù),訓練與其對應(yīng)的頭部和尾部結(jié)構(gòu),再通過微調(diào)得到針對所需任務(wù)的特定模型.對于不同的高斯噪聲水平,IPT在BSD68和Urban100數(shù)據(jù)集上的實驗結(jié)果最具優(yōu)越性.
圖8 IPT模型結(jié)構(gòu)[23]Fig.8 IPT model structure[23]
圖像恢復是從低質(zhì)量或失真的退化圖像中恢復出理想圖像的過程,Uformer[77]是Transformer在此類任務(wù)上的典型模型.Uformer用編碼器和解碼器替換了U-Net中的卷積層,編碼器負責提取退化圖像的特征,解碼器負責重構(gòu)圖像,二者均設(shè)計為局部增強窗口的Transformer模塊,利用基于窗口的非重疊自注意力機制來捕獲長距離依賴關(guān)系,降低了模型計算復雜度.每個編碼器的輸出下采樣后輸入下一編碼器,同時也送入對應(yīng)的解碼器.最后一個解碼器的輸出經(jīng)過卷積得到殘差圖像,再結(jié)合輸入圖像最終得到恢復后的圖像.在SIDD數(shù)據(jù)集上,Uformer以更小結(jié)構(gòu)取得了比U-Net更高的精度,在DND數(shù)據(jù)集上,超過了之前最佳的算法NBNet[78].
圖像質(zhì)量評估是對圖像的質(zhì)量水平進行分類,根據(jù)有無參考圖像,分為全參考、部分參考和無參考3種.典型基于Transformer的圖像質(zhì)量評估算法有TRIQ[25]、IQT[79].二者都是先用CNN網(wǎng)絡(luò)提取圖像特征,然后輸入Transformer進行特征聚合,最后利用多層感知機對圖像質(zhì)量進行預(yù)測.TRIQ首次將Transformer應(yīng)用于無參考圖像質(zhì)量評估,基于ViT結(jié)構(gòu),CNN提取到的特征經(jīng)過自適應(yīng)位置嵌入后輸入至編碼器,可以處理任意分辨率的圖像.IQT是一種全參考圖像質(zhì)量評估方法,首先基于孿生神經(jīng)網(wǎng)絡(luò)獲取失真圖像和參考圖像間的差值特征圖,經(jīng)過映射后進行質(zhì)量嵌入和位置嵌入然后輸入至Transformer.IQT在2021年感知圖像質(zhì)量評估比賽中排名第一.
多模態(tài)任務(wù)研究的是不同類型數(shù)據(jù)的融合問題,與計算機視覺相關(guān)的多模態(tài)任務(wù)有文本到圖像生成、視頻-文本檢索、視覺-語音導航、視頻字幕生成等.由于Transformer中的自注意力機制具有強大的序列特征提取能力,不同模態(tài)的信息都可轉(zhuǎn)換為序列數(shù)據(jù)進行處理,因此開始應(yīng)用于多模態(tài)任務(wù).
CogView[26]將VQ-VAE框架與Transformer相結(jié)合,用于解決文本到圖像生成問題.首先利用訓練好的編碼器將圖像壓縮到低維離散空間,再通過解碼器從隱藏變量中恢復圖像,最后采用自回歸模型學習擬合隱藏變量的先驗.這種離散壓縮方法比直接下采樣損失更少的保真度,同時保持了像素空間的相關(guān)性.CogView在3億個高質(zhì)量文本-圖像對上進行預(yù)訓練后再微調(diào).通過提出的精度瓶頸松弛和“三明治”層歸一化模塊,解決了由于文本-圖像數(shù)據(jù)異質(zhì)性而導致預(yù)訓練過程不穩(wěn)定情況,提高了文本到圖像生成的質(zhì)量.
HiT[27]跨視頻文本模態(tài)檢索模型基于層次化對比學習,利用Transformer不同網(wǎng)絡(luò)層的輸出具有不同尺度的特性,設(shè)計了層次跨模態(tài)對比匹配模塊,對Transformer底層網(wǎng)絡(luò)和高層網(wǎng)絡(luò)信息分別進行對比匹配,從而得到更好的視頻文本檢索性能.此外基于動量更新機制,設(shè)計了動量跨模態(tài)對比模塊,使跨模態(tài)對比匹配的過程能充分利用負樣本,從而得到更好的視頻和文本表征,克服了端到端的方法受顯存容量限制的缺點.HiT在多個視頻-文本檢索數(shù)據(jù)集上取得了更加高效且精準的結(jié)果.
VLN-BERT[28]是視覺-語音導航(VLN)領(lǐng)域中的典型模型.該模型利用大量成對的視覺-語言數(shù)據(jù)進行預(yù)訓練,然后根據(jù)特定任務(wù)利用少量數(shù)據(jù)進行微調(diào),取得了不錯的結(jié)果.但模型計算量大,結(jié)構(gòu)還需要進一步優(yōu)化.Chen等[80]提出了一種基于自然語言指令和拓撲圖的跨模態(tài)注意力模型.在給定拓撲圖和自然語言輸入的情況下,首先使用單模態(tài)編碼器對單個語言和地圖編碼進行處理,然后采用跨模態(tài)編碼器聚合跨模態(tài)信息.此外,利用可學習的軌跡位置編碼表示地圖中的位置,利用注意力機制來生成可解釋的導航計劃,從而實現(xiàn)對環(huán)境的自由探索和智能導航.
SwinBERT[29]是一種基于Transformer的端到端的視頻字幕生成模型,利用Swin Transformer提取視頻幀序列的特征,然后輸入至多模態(tài)Transformer編碼器中,經(jīng)過處理生成自然語言描述.在多模態(tài)編碼器中,通過引入可學習的稀疏注意掩碼約束解決了視頻長序列計算量大的問題.與利用多個2D/3D特征提取器的字幕生成方法相比,SwinBERT可適應(yīng)不同長度的視頻輸入,同時在性能上也有了很大的提升.
雖然視覺Transformer取得了許多突破性的進展,成為了CV領(lǐng)域最熱門的研究方向之一,但是仍然無法取代CNN在CV領(lǐng)域的主導地位.下面將根據(jù)視覺Transformer發(fā)展現(xiàn)狀以及存在的問題和挑戰(zhàn),討論其在未來研究方向.
1)多任務(wù)的統(tǒng)一框架.傳統(tǒng)處理多模態(tài)任務(wù)的模型是首先提取不同類型數(shù)據(jù)的特征,然后經(jīng)過特征拼接等操作后,再傳入分類器進行訓練,此時的分類器同時對兩種不同形式的數(shù)據(jù)進行學習,模型基線龐大且復雜.簡而言之,傳統(tǒng)的多模態(tài)模型對不同數(shù)據(jù)類型采取了不同的處理方法,因此在特征拼接的時候難免會存在模式無法對齊的問題,不僅模型結(jié)構(gòu)復雜,而且對兩種類型數(shù)據(jù)的處理結(jié)果也欠佳.Transformer自注意力機制具有十分強大的特征提取能力,適合處理不同類型的數(shù)據(jù),各種數(shù)據(jù)類型只要可以轉(zhuǎn)化為一維長序列,就可以直接被Transformer處理,因此相比于CNN和RNN模型更具優(yōu)勢.實踐證明,Transformer在各種類型數(shù)據(jù)的特征提取和模式對齊上極具潛力.對于不同領(lǐng)域的不同任務(wù)類型,Transformer是否可以成為一個通用框架,實現(xiàn)不同領(lǐng)域模型架構(gòu)的大一統(tǒng),在未來還有待進一步研究.
2)高維數(shù)據(jù)計算模型.現(xiàn)有的視覺Transformer模型由于參數(shù)量大、計算復雜度高,因此模型的訓練過程對硬件要求高,即使芯片和處理器等硬件設(shè)備的性能在不斷提升,仍然無法滿足Transformer運算效率和效果的需求,導致訓練時間長,運算效率不佳,存在計算成本高的問題.與NLP領(lǐng)域相比,CV領(lǐng)域中的Transformer存在兩個主要問題:1)NLP領(lǐng)域中輸入數(shù)據(jù)的長度是固定的,但在CV領(lǐng)域,由于同一場景中存在的物體大小不一,因此輸入圖像數(shù)據(jù)的尺度比例各異,變化范圍大;2)與文本數(shù)據(jù)相比,圖像數(shù)據(jù)中的像素需要更高的分辨率,又因為Transformer是一種基于全局自注意力的計算方式,它的計算復雜度與圖像尺度呈平方增長關(guān)系,這就會導致計算量過于龐大.因此,CV任務(wù)中的Transformer對于高分辨率輸入的適用性較差,限制了算法的發(fā)展及應(yīng)用.在未來,如何降低Transformer模型的計算成本,提高模型的計算效率,設(shè)計適用于高維數(shù)據(jù)的計算模型,同樣是研究的熱點和難點問題.
3)自監(jiān)督學習.自監(jiān)督學習的監(jiān)督信息來源于數(shù)據(jù)本身,是無監(jiān)督學習的一個變種,可以在不依賴數(shù)據(jù)標注的情況下學習特征表示,是當前研究的熱點問題之一.目前,基于自監(jiān)督學習的Transformer模型在NLP領(lǐng)域已經(jīng)取得了巨大的成功,如擁有1750億參數(shù)的GPT-3模型,模型經(jīng)過自監(jiān)督訓練后,在下游任務(wù)上的表現(xiàn)性能可以得到顯著提高.但在CV領(lǐng)域,雖然目前有許多性能顯著的視覺Transformer模型,但是它們的成功都依賴于十分龐大的數(shù)據(jù)需求,監(jiān)督的訓練方式需要進行大量的手工標注工作,增加了模型訓練的難度,限制了模型性能的提升.目前,將自監(jiān)督學習與視覺Transformer相結(jié)合的研究工作已經(jīng)開展,但是仍然存在巨大的研究空間.因此,基于自監(jiān)督學習的視覺Transformer將會是未來一個非常值得研究的方向.
4)小樣本學習.小樣本學習的目的是在數(shù)據(jù)有限的情況下訓練出性能良好的模型,這是近幾年新興的一個研究方向.Transformer模型與CNN相比具有更多參數(shù),因此其訓練通常依賴于大量的訓練樣本.目前切實可行的方法是在大規(guī)模數(shù)據(jù)集上對視覺Transformer模型進行預(yù)訓練,然后針對任務(wù)類型利用少量數(shù)據(jù)對模型進行微調(diào).然而對于一些訓練樣本稀缺的視覺任務(wù)來說,很多時候獲取海量的訓練數(shù)據(jù)十分困難,而訓練數(shù)據(jù)的數(shù)量和品質(zhì)又限制了模型的訓練和性能的提高,因此難以有效地訓練出高性能模型.為了解決視覺Transformer模型的發(fā)展受訓練數(shù)據(jù)數(shù)量限制的難題,小樣本學習逐漸受到研究人員的關(guān)注.主流的小樣本學習方法是通過數(shù)據(jù)增強、模型改進和算法優(yōu)化3個方面來充分利用少量樣本的先驗知識,訓練出學習能力強大的高性能模型,從而減少模型對數(shù)據(jù)數(shù)量的依賴.未來,如何降低視覺Transformer模型訓練的數(shù)據(jù)成本,利用先驗知識實現(xiàn)小樣本學習依然具有很大的研究空間和發(fā)展?jié)摿?
5)模型結(jié)構(gòu)可解釋性.Transformer模型性能強大,更深入地理解模型的特點和潛在的缺陷,可以更好的根據(jù)需求和實際應(yīng)用任務(wù)對其進行改進.目前最常用的理解Transformer的方法主要是利用灰度圖可視化出不同token之間的注意力權(quán)重,這種方法存在的問題是每張圖只能表示一個注意力頭,難以獲得全局的直接感受情況.在自注意力機制的可解釋性研究上,有些學者主要對不同的注意力頭進行理解,有些則側(cè)重于關(guān)注注意力權(quán)重對特征提取的影響,還有部分學者認為注意力機制的分布是無法解釋的.為了能夠更好地設(shè)計和改進Transformer模型結(jié)構(gòu),需要對其運行機理和內(nèi)部信息交互進行深入研究和深刻理解,因此Transformer模型的可解釋性十分具有研究意義.
視覺Transformer作為一種新興的架構(gòu),已然席卷了整個計算機視覺領(lǐng)域.與CNN相比,雖然視覺Transformer顯示出了其獨特的優(yōu)勢,但是視覺Transformer架構(gòu)本身依然存在許多局限性,具有巨大的改進空間和發(fā)展?jié)摿?因此大多數(shù)學者認為視覺Transformer并不能完全取代CNN,二者在未來的研究中可能會更多的融合,優(yōu)勢互補以發(fā)揮最佳性能.