?

基于視覺Transformer 的多級特征聚合圖像語義分割方法

2023-10-31 09:39孔玲君鄭斌軍
智能計算機與應用 2023年10期
關鍵詞:解碼器編碼器切片

孔玲君, 鄭斌軍

(1 上海出版印刷高等??茖W校, 上海 200093; 2 上海理工大學 出版印刷與藝術設計學院, 上海 200093)

0 引 言

語義分割是計算機視覺領域的一個重要的研究任務,具有廣泛的應用,如自動駕駛、視頻監控、增強現實、機器人技術等等。 語義分割通過給圖像的每個像素分配語義標簽,進而為目標任務提供高級圖像表示, 如在自動駕駛場景中識別行人和車輛以進行規避。 Long 等人[1]開創性地使用完全卷積網絡(Full Convolutional Network,FCN)進行圖像語義分割任務,并取得良好的效果,這激發了許多后續的工作,并成為語義分割的主要范式。

圖像分類與語義分割有著密切的聯系,許多先進的語義分割框架是在ImageNet 上流行的圖像分類體系結構的變種。 因此,主干框架設計一直是語義分割的重要活躍領域。 從早期的VGG[2]到具有更深層、更強大的主干方法,主干網絡的進步極大地推動了語義分割性能的提升。 通過可學習的堆疊卷積,可以捕獲語義豐富的信息。 然而,卷積濾波器的局部性質限制了對圖像中的全局信息的分享,但這些信息對圖像分割十分重要。 為了避免這個問題,Fisher 等人[3]引入了擴張卷積,通過在內核上“膨脹”空洞來增加感受野;Chen 等人[4]更進一步地使用具有空洞卷積和空洞空間金字塔池化進行特征聚合,擴大卷積網絡的感受野并獲得多尺度的特征。

自Transformer 網絡在自然語言領域取得巨大成功后,研究人員開始嘗試將Transformer 網絡引入視覺任務中,Dosovitskiy 等人[5]提出了用于圖像分類的視覺Transformer(Vision Transformer,VIT),按照NLP中的轉換器設計,把原始圖像分割成多個切片,展平成序列,輸入到標準的Transformer 網絡中,最后使用全連接層對圖片進行分類,在ImageNet 上獲得了令人印象深刻的性能表現。 VIT 雖然擁有良好的性能,但是也存在一些不足,如:需要龐大的訓練數據集;對于高分辨率圖像,計算成本高等。 為了突破上述局限,Hugo 等人[6]提出了一種基于蒸餾的訓練策略Deit,僅使用120 萬張圖像就可實現高效訓練,并取得良好的表現。 Wang 等人[7]提出一種用于密集預測的金字塔視覺Transformer(Pyramid Vision Transformer,PVT),可以顯著減少計算量,并且在語義分割方面有很大的改進。 然而,包括Cswin[8]、Swin Transformer[9]等新的方法均著重考慮編碼器設計部分,卻忽略了解碼器部分對進一步提升性能的貢獻。

基于此,本文提出了一種基于視覺Transformer的多級特征聚合圖像語義分割方法(Multilevel Feature Aggregation with Vision Transformer,MFAVT),將原始圖像分割成切片后,使用線性切片嵌入作為Transformer 網絡編碼器的輸入序列;解碼器將編碼器生成的上下文詞符序列上采樣到逐像素類分數。 關鍵思想是利用Transformer 網絡的感應特性,即較低層注意力傾向停留在局部,而高層的注意則高度非局部。 通過聚合來自不同層的信息,解碼器結合了來自局部和全局的注意,從而有效地提升分割精度,實現分割目標。

1 MFAVT

MFAVT 主要由編碼器和解碼器模塊組成,模型結構如圖1 所示。 在編碼器部分,是將圖像分塊并投影到一系列嵌入位置,并使用Transformer 網絡進行編碼;解碼器部分,是將編碼器的輸出作為輸入進行多層聚合,來預測分割掩膜。

圖1 MFAVT 結構示意圖Fig.1 The illustration of MFAVT

1.1 編碼器

標準的Transformer 網絡編碼器接收一維的序列詞符作為輸入,但二維圖像和一維序列之間存在不匹配的問題,因此需要將二維圖像重塑為一維序列。 具體而言,將輸入圖像x∈?H×W×C分割成一系列切片x =[x1,…,xN] ∈?N×P2×C。 其中,(H,W)是原始圖像的分辨率,C是圖像的通道數,(P,P) 是每個圖像切片的分辨率,N =HW/P2是生成的切片數量,且是transformer 有效序列輸入長度。 將每個切片展平為一個序列,使用線性投影函數將其映射到切片嵌入, 得到圖像X的一維切片嵌入序列x0=[Ex1,…,ExN] ∈?N×D,其中E∈?D×(P2C)。 為了對切片的空間信息進行編碼,添加一個可學習的位置嵌入p =[p1,…,pN] ∈?N×D到序列切片中,以形成最終的輸入序列g0=x0+p。

以一維嵌入序列g0作為輸入,采用基于純transformer[10]網 絡 的 編 碼 器 學 習 特 征 表 示。Transformer 網絡層由多頭自注意力(Multi-head Self-attention, MSA)塊和多層感知器(Multilayer Perception,MLP)塊組成。 在每個塊之前使用層歸一化(Layer Normalization, LN),在每個塊之后添加殘差鏈接,計算過程如式(1)所示。

其中,i∈{1,…,L}。

MSA 由多個獨立的SA 操作組成,并投射其級聯輸出。 自注意力層通過查詢(Query)與鍵(Key)-值(Value)對之間的交互,實現信息的動態聚合。 對輸入序列, 通過線性映射矩陣將其映射到Q、K、V(Q,K,V∈?N×D)3 個向量,計算Q和K間的相似度,并對V進行加權處理。 自注意力計算公式如式(2)所示:

Transformer 網絡編碼器將帶位置信息的切片嵌入連續序列g0=[g0,1, …,g0,N],編碼成一個供解碼器使用的、帶有豐富語義信息的序列gL =[gL,1, …,gL,N]。

1.2 解碼器

解碼器的目標是將切片編碼序列gL∈?N×D解碼成分割圖Seg∈?H×W×K。 其中,K是類別數量。解碼器來自編碼器的切片級編碼映射到切片級別類分數,通過雙線性插值將這些切片級別的類分數向上采樣到像素級別的分數。 下面將描述一個線性解碼器作為基線對比,以及介紹MFAVT 解碼器。

(1)線性解碼器:首先使用了一個逐點線性層(1× 1 卷積+同步批歸一化(ReLU) +1 × 1 卷積)將Transformer 網絡特征gL∈?N×D投影到切片類維度gbas∈?N×K(例如對Pascal Context 數據集是59),然后將序列重整為二維特征圖Segbas∈?H/P×W/P×K并雙線性上采樣到原始圖像大小Seg∈?H×W×K,最后在類維度上應用一個像素級交叉熵損失的分類層。 當使用這種解碼器時,稱其為Seg-Basic。

(2)MFAVT 解碼器:采用多級特征融合的方式設計編碼器,核心思想類似于特征金字塔網絡。 具體地說,將Transformer 網絡編碼器的特征表示均勻分布在4 層中,到達解碼器;然后部署4 個流,每個流聚焦于一個特定的選定層;在每個流中,將特征編碼從2D 特征轉換為3D 特征采用3 層(卷積核大小為1×1、3×3 和3×3)網絡,第一層和第三層分別將特征通道減半,第三層之后通過雙線性運算將空間分辨率提升4 倍,通過元素添加引入自上而下的聚合設計,來增強不同流之間的交互;按元素添加后,再使用一個3×3 卷積;最后使用通道級聯獲得所有流的融合特征,通過4 倍雙線性上采樣操作恢復圖像到原始分辨率,形成最終的分割圖。 當使用這種解碼器時,稱其為Seg-MFAVT。

2 實驗結果與分析

2.1 數據集

實驗在3 個公開數據集上進行。 其中,ADE20K[11]是最具挑戰性的語義分割數據集之一,該訓練集包含20 210 幅圖像,150 個語義類。 驗證集和測試集分別包含2 000 和3 352 幅圖像。 Pascal Context[12]數據集為整個場景提供像素級語義標簽,包含4 998(最常見的59 個類和背景類)和5 105 張用于訓練和驗證的圖像。 Cityscapes[13]數據集側重于從汽車角度對城市街道場景進行語義理解。 該數據集分為訓練集、驗證集和測試集,分別有2 975、500 和1 525張圖像;注釋包括30 個類,其中19 類用于語義分割任務;數據集的圖像具有2 048×1 024 的高分辨率,本文實驗采用其中的精細標注圖像數據集。

2.2 實驗設置

2.2.1 實驗環境

實驗運行環境為Win10 專業版操作系統,處理器為Intel Core i9-9900k,內存32 GB,圖形處理卡為一張Nvidia GeForce GTX1080 Ti(11 GB),Cuda版 本 為 10.2, 數 據 處 理 使 用 Python3.6 和Matlab2020a。

2.2.2 數據增強

訓練期間,遵循語義分割庫MMSegmentation[14]中的標準流程,使用比例因子(0.5、0.75、1.0、1.25、1.5、1.75)對圖像執行多比例縮放以及隨機的水平翻轉。 隨機裁剪大圖像,并將小圖像填充到固定尺寸大?。篈DE20K 為512×512,Pascal Context 為480×480,Cityscapes 為768×768。 輔助分割損失有助于模型訓練,每個輔助損失頭遵循2 層網絡,輔助損失和主損失頭共同使用,此外在解碼器和輔助損失頭使用同步批歸一化操作。

2.2.3 優化

使用標準的像素級交叉熵損失對語義分割任務的預訓練模型進行微調,而無需重新平衡權重。 使用隨機梯度下降(SGD)[15]作為優化器,基本學習率β0,并將權重衰減設置為0。 采用“poly”學習率衰減其中Niter和Ntotal表示當前迭代次數和總迭代次數。 對于ADE20K,其基本學習率β0設置為10-4,并以16 個批量進行160 K 次迭代;Pascal Context,將β0設置為10-4,并訓練160 K迭代,批量大小為16;Cityscapes,將β0設置為10-3,并以8 的批量進行160 K 迭代。

2.2.4 預訓練

使用VIT[5]和Deit[6](一種VIT 的變體)提供的預訓練權重,初始化模型中的所有Transformer 網絡層和輸入線性投影層。 將Seg-MFAVT-Deit 表示為利用Deit 中預訓練模型的同時,使用MFAVT 作為解碼器。 所有未經預訓練的層均隨機初始化。

2.2.5 推理

使用平均交并比(mean Intersection over Union,mIoU)作為語義分割性能的評估指標。 實驗報告了單尺度(Single Scale,SS)和多尺度(Multi Scale,MS)推理。 對于多尺度推理,使用比例因子(0.5、0.75、1.0、1.25、1.5、1.75)對圖像執行多比例縮放和隨機水平翻轉。 測試采用滑動窗口(例如,Pascal 上下文為480×480)。 如果圖像尺寸的短邊長度小于滑動窗口,則在保持縱橫比的同時,將短邊長度調整為滑動窗口的大?。ɡ?80)。

2.3 消融實驗

本節將在Cityscapes 驗證集上進行消融實驗,評估了Transformer 網絡層大小、補丁大小、預訓練集數據大小、模型性能、與FCN 卷積網絡的比較,并驗證了不同的解碼器。 除非另有說明,否則使用8批次處理,80 K 迭代次數,并使用單尺度推斷報告結果。 表1 中“R”代表隨機初始化權重。

表1 不同分割模型變體的性能比較Tab.1 Performance of different segmentation variants

觀察表1 中數據,可以得出如下結論:

(1)Seg-MFAVT-Deit 在所有的變體中取得了最佳的性能表現。

(2)使用T-large 的變體優于T-base 的對照物,這與實驗預期一樣,即Transformer 網絡層數加深會相對應的增強模型性能。 如:Seg-MFAVT 使用的主干網絡(Backbone)從T-base 轉換到T-large,獲得了1.92%的提升。

(3)切片尺寸(patch size)是語義分割性能的關鍵因素,切片尺寸從32 到16,Seg-MFAVT 提高了0.72%??梢?,當圖像用切片表示時,較大的切片尺寸會使模型獲得有意義的全局分割,但是會產生較差的邊界;而使用較小的切片尺寸會使圖像邊界更清晰。這一結果表明,減少切片尺寸是一個能夠獲得強大性能的改進來源,其不會引入任何參數,但是需要在更長的序列中計算注意力,從而增加計算時間和成本。

(4)預訓練模型對于模型性能的表現至關重要。隨機初始化權重的Seg-MFAVT 只達到了44.14%MIoU,顯著低于其它變體。 在Imagenet-1K 上用Deit預先訓練好的模型略優于在Imagenet-21K 上用VIT預先訓練出的模型。

(5)為了與FCN 基線進行公平比較,使用分類任務,在Imagenet-21K 和1K 上對Resnet101 進行預訓練,然后在Cityscapes 上采用預訓練權重進行FCN 訓練。 與在Imagenet-1K 上的預訓練變體相比,在Imagenet-21K 上預訓練的FCN 基線得到了明顯地改善。 但是,本文方法在很大程度上優于FCN 方法,體現了所提出的多層聚合策略方法的有效性,而不是更大的預訓練數據。

2.4 對比分析

為了驗證MFAVT 的有效性與先進性,將MFAVT 與一些對比方法在Cityscapes、ADE20K 和Pascal Context 數據集上進行性能比較。 測試結果在表2~表4 中進行展示。 在數據可視化中,為方便直觀地展現分割效果,將分割結果圖與原圖像進行疊加并采用一定的透明化處理,以DeeplabV3+分割結果代表其他方法作為錨定參照對象,與MFAVT分割結果進行突出化對比,結果如圖2~圖4 所示。

表2 在ADE20K 驗證集上的性能表現Tab.2 Performance comparison on ADE20K validation set

圖2 在ADE20K 上定性的可視化結果Fig.2 Qualitative visualization results on ADE20K

表2 展示了在最具挑戰性的ADE20K 數據集上的結果,Seg-MFAVT 在單尺度推理下(SS),取得了48.01%的mIoU 分數,在多尺度推理(MS)下取得了最佳的49.97%的mIoU 分數,優于所有的卷積網絡方法,比DeeplabV3+的mIoU 分數高出3.58%。 圖2展示了在ADE20K 上定性的可視化結果。

表3 比較了在Pascal Context 上的分割結果。在單尺度推理時,Seg-MFAVT 得到了54.16%的mIoU 分數,而在多尺度推理時獲得了最佳的55.43%mIoU 分數,超過了所有FCN 方法。 與最有競爭力的APCNet 相比,mIoU 分數提高了0.73%。 圖3 展示了在Pascal Context 上定性的可視化結果。

表3 在Pascal Context 驗證集上的性能表現Tab.3 Performance comparison on Pascal Context validation set

圖3 在Pascal Context 上定性的可視化結果Fig.3 Qualitative visualization results on Pascal Context

在Cityscapes 驗證集上的比較結果見表4。 Seg-MFAVT 在單尺度推理下取得了79.42%的mIoU 分數,而在多尺度推理下取得了令人印象深刻的82.03%mIoU 分數。 需要注意的是相比于一些方法在訓練中采用全尺寸圖像分辨率(2 048×1 024)輸入,MFAVT 的圖像輸入尺寸為768×768,訓練過程有一定劣勢,但最終的性能表現超過了其他有競爭力的方法。 與DeeplabV3+相比提高了2.71%mIoU,與最有競爭力的DNL 相比提高了1.53%mIoU。 圖4展示了在Cityscapes 上定性的可視化結果。

表4 在Cityscapes 驗證集上的性能表現Tab.4 Performance comparison on Cityscapes validation set

3 結束語

本文介紹了一種基于視覺Transformer 的序列到序列的分割方法,為語義分割任務提供了一種新的視角。 現有的基于FCN 的方法通常使用擴張卷積和注意力模塊來擴大感受野,與之相比,本文的編碼器部分采用當下流行的視覺Transformer 主干網絡,對圖像切片進行編碼。 基于視覺Transformer 的編碼器很好地建模了全局上下文信息,隨著一組不同的復雜性的解碼器設計,建立了強大的分割模型。簡單的線性解碼器就取得了非常好的效果,使用MFAVT 進行解碼進一步提高了性能。 大量的實驗表 明, 本 文 方 法 在 ADE20K、 Pascal Context 和Cityscapes 數據集測試上展示了最佳的性能表現。

猜你喜歡
解碼器編碼器切片
科學解碼器(一)
科學解碼器(二)
科學解碼器(三)
線圣AudioQuest 發布第三代Dragonfly Cobalt藍蜻蜓解碼器
基于FPGA的同步機軸角編碼器
基于PRBS檢測的8B/IOB編碼器設計
基于SDN與NFV的網絡切片架構
腎穿刺組織冷凍切片技術的改進方法
JESD204B接口協議中的8B10B編碼器設計
冰凍切片、快速石蠟切片在中樞神經系統腫瘤診斷中的應用價值比較
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合