嚴廣宇,劉正熙
(四川大學計算機學院,成都 610065)
隨著計算機運算能力的顯著提升,深度卷積神經(jīng)網(wǎng)絡(Deep Convolutional Neural Networks,DCNN)已經(jīng)被成功運用到許多人工智能任務中,如圖像分類(Im?age Classification)、目標檢測(Object Detection)、語義分割(Semantic Segmentation)、動作識別(Action Recogni?tion)、語音識別(Speech Recognition)和機器翻譯(Ma?chine Translation)。圖像語義分割是許多計算機視覺任務的關鍵問題,它對輸入的整張圖像進行密集的類別預測,為圖像中的每一個像素點分配一個語義標簽(如“人”、“樹木”),因此它也稱為密集圖像預測(Dense Image Prediction)。
近年來,基于深度卷積神經(jīng)網(wǎng)絡的語義分割方法在多個語義分割數(shù)據(jù)集上不斷刷新記錄。Jonathan等人提出全卷積網(wǎng)絡(Fully Convolutional Network,F(xiàn)CN)[1],首次將DCNNs運用于圖像分割領域,使用端到端的訓練方式,相比于傳統(tǒng)圖像分割方法有極大的提升。Ron?neberger等人提出基于Encoder-Decoder的醫(yī)學圖像語義分割網(wǎng)絡U-Net[2],其編碼器采取逐層下采樣提取深層語義信息,然后在解碼器模塊中逐層上采樣與編碼器特征圖進行融合得到最終的分割結果,該網(wǎng)絡采用逐層還原的方式使得分割結果具有精細的邊界,有利于提高分割精度。Chen等人[3,4]基于FCN采用轉置卷積進行上采樣,使用空洞卷積(Atrous Convolution)在不增加卷積參數(shù)的情況下擴大卷積核的感受野,并在模型輸出后增加條件隨機場(Conditional Random Field,CRF)作為后處理步驟,進一步提高模型預測精度。DeepLab v3+[5]以修改的Xception[6]作為編碼器的主干網(wǎng)絡,并將深度可分離卷積(Depthwise Separable Convolu?tion)與空洞卷積結合用于替換原始網(wǎng)絡中的標準卷積,進一步降低網(wǎng)絡運算量和參數(shù)數(shù)量從而加快模型的推理速度。
由于語義分割任務是進行像素級的分類,為使得最終預測結果具有精細的物體邊界和較高的精度,其天然需要加深模型的深度和寬度,并且輸入高分辨率的圖像。但這些操作會加大模型的參數(shù)量與計算量,使其推理速度無法滿足實時性需求。隨著越來越多新穎的具有較高精度的語義分割模型提出,眾多研究人員逐漸關注于研究如何在損失較少精度的情況下,降低模型的復雜度與運算量,加快模型的推理速度,從而能將其投入到移動設備的實時應用中(如無人駕駛)。Paszke等人受ResNet中Bottleneck結構的啟發(fā)提出輕量網(wǎng)絡ENet[7],使用提前下采樣去除視覺的冗余信息并減少后續(xù)操作的計算量,采取非對稱的Encoder-De?coder結構來平衡模型的精度與速度。Zhao等人提出ICNet[8],模型首先基于低分辨率圖片得到粗糙預測結果,然后使用級聯(lián)特征融合單元(Cascade Feature Fu?sion Unit,CCF)將中、高分辨率圖像特征與低分辨率特征圖逐步融合,從而可以以較低的計算成本細化分割結果。BiSeNet[9]采用雙通路結構來分別捕獲圖像的空間信息和語義信息,語義分支中使用注意力加權模塊(Attention Refinement Module,ARM)[10]讓特征更具有代表性,網(wǎng)絡最后使用特征融合模塊(Feature Fusion Mod?ule,F(xiàn)FM)將兩通路的特征圖進行融合上采樣得到最終預測結果。LEDNet[11]采用非對稱的Encoder-Decoder結構,基于ResNet網(wǎng)絡引入卷積分解和Channel Split and Shuffle操作減少網(wǎng)絡參數(shù)數(shù)量并提高輕量網(wǎng)絡的特征表達能力。同時在Decoder中引入注意力金字塔網(wǎng)絡(Attention Pyramid Network,APN)來進一步提高網(wǎng)絡特征選擇能力。
圖像注意力機制是指人類用視覺觀察整張圖像時的一種信息處理方式,它通過快速選擇圖像中需要“重點觀察”的區(qū)域,然后對該區(qū)域分配更多注意力資源,來凸顯出更多的細節(jié)信息,便于后續(xù)進行高效的信息處理。該過程與圖像顯著性檢測目的相同,當在有限的計算資源下處理海量圖像數(shù)據(jù)時,通過舍棄圖像中不重要的背景信息,集中處理重要區(qū)域的信息,從而大大提高處理視覺信息的效率與準確性。近年來,注意力機制逐漸運用于DCNN中并取得良好的效果。SENet[12]考慮特征通道之間的關系,采用Squeeze和Ex?citation操作來建立特征通道之間的相互依賴關系,學習不同特征通道的重要程度,然后將此重要程度加權到原始特征上,完成對原始特征的重標定。這種注意力稱之為通道注意力(Channel Attention)。Fu等人[13]為更加關注圖片中局部的細節(jié)信息,使用RA-CNN遞歸分析局部信息,從中提取重要特征,使用子區(qū)域進行預測,將子區(qū)域的預測結果進行整合得到整張圖片的預測結果。這種注意力稱之為空間注意力(Spatial Atten?tion)。DANet[14]通過自適應地整合局部特征和全局依賴,將空間注意力與通道注意力的特征進行求和得到最后的特征表達。Wang等人[15]類比殘差學習提出注意力殘差學習,認為若注意力模塊能被構造成恒等映射,那么它的性能將不會比沒有注意力機制的網(wǎng)絡差,用于解決簡單堆疊注意力模塊在深層網(wǎng)絡中出現(xiàn)的性能下降和破壞特征分布問題。
從實時語義分割網(wǎng)絡的設計角度出發(fā),本文網(wǎng)絡采取非對稱的“編碼器-解碼器”結構,以Xception網(wǎng)絡作為Backbone,其中使用深度可分離卷積(Depthwise Separable Convolution)[16]替換原始網(wǎng)絡中的標準卷積,并在解碼器模塊中使用殘差注意力,綜合運用空間金字塔注意力與通道注意力分支增強原始特征圖的表達能力。從而在大幅計算量,減少模型大小的同時,提高模型推理速度和預測精度。
本文實時網(wǎng)絡與文獻[5]相同使用Xception作為Backbone。為提高網(wǎng)絡推理速度并減少參數(shù)量,本文對Xception網(wǎng)絡通道數(shù)進行精簡,使其最大通道數(shù)保持為256,網(wǎng)絡結構如圖1所示。Xception使用深度可分離卷積來替代標準卷積操作,它把標準卷積的運算過程進行拆分,先使用深度卷積(Depth-wise Convolu?tion)對每個通道的特征圖單獨進行計算,然后使用1×1的點卷積(Point-wise Convolution)來對上一步操作后每個通道的特征圖進行計算,得到最終卷積結果。假設輸入特征圖表示為[Cin,Hin,Win],其中C表示特征圖通道數(shù),H,W表示特征圖的高和寬,輸出特征圖表示為[Cout,Hout,Wout],卷積核大小為[K,K]。若經(jīng)過卷積后特征圖的大小不變,即Hin=Hout,Win=Wout,則輸入特征圖經(jīng)過標準卷積層的乘法計算量為:
標準卷積層權重參數(shù)數(shù)量為:
輸入特征圖經(jīng)過深度可分離卷積層的乘法計算量為:
深度可分離卷積層權重參數(shù)數(shù)量為:
兩種卷積乘法計算量的比值為:
兩種卷積權重參數(shù)數(shù)量的比值為:
一般卷積核的大小至少為3,輸入輸出的通道數(shù)也遠遠大于 1,由公式(5)(6)可知,深度可分離卷積相比于標準卷積可以大幅度減少深度神經(jīng)網(wǎng)絡的計算量和參數(shù)數(shù)量,有利于提高網(wǎng)絡的推理速度并減小網(wǎng)絡模型大小。
圖1 精簡的Xception
本文解碼器模塊使用殘差注意力分支增強原始特征圖的表達能力,其包含空間金字塔注意力分支和通道注意力分支,使用殘差連接構造恒等映射,可以使得網(wǎng)絡加入注意力后至少不會比不加注意力的網(wǎng)絡的性能要差??臻g注意力分支與通道注意力分支最后都接Sigmoid函數(shù)將數(shù)值縮放至[0,1]范圍內(nèi),然后與原始特征圖進行對應位置的點積,從而完成對特征圖不同位置重要程度的加權,最后再使用殘差連接將兩分支重新標定后的特征圖與原始特征圖相加求和。經(jīng)過混合注意力分支后,特征圖雙線性插值上采樣,使其和編碼器中下采樣1/4的特征圖具有相同分辨率,與之進行相加融合疊加,這樣可以為特征圖補充更多上層物體的邊界信息,使分割預測結果具有精細的邊界。最后通過卷積上采樣至原圖大小,得到最終的預測結果。實時語義分割網(wǎng)絡結構如圖2所示。
圖2 實時語義分割網(wǎng)絡結構
本文使用開源數(shù)據(jù)集Cityscapes來驗證所提出方法,其包含5000張2048×1024的來自世界50個城市的道路街景圖片,經(jīng)過精細標注后分為3725張訓練集,500張驗證集,725張測試集,如圖3所示。本文使用平均交并比mIOU(mean Intersection Over Union)來衡量語義分割網(wǎng)絡的性能。為驗證本文提出的混合注意力機制的有效性,分別按照是否使用注意力模塊、是否使用通道注意力、是否使用空間注意力等條件設置對比實驗。
圖3 Cityscapes數(shù)據(jù)集圖片及標注樣例
所有實驗中,迭代Epoch設為 300,batchsize為8。網(wǎng)絡初始學習率為0.01,每個Epoch訓練后,模型在驗證集上測試當前性能,若經(jīng)過10個Epoch的訓練,模型性能都沒有提高,則將當前學習率乘以0.3進行學習率更新。實驗中使用Adam優(yōu)化器進行網(wǎng)絡權重參數(shù)的更新,由于模型容量較小且復雜度不高,較難出現(xiàn)過擬合現(xiàn)象,故將權重衰減系數(shù)設為0,避免添加L2損失帶來的模型性能下降。輸入的訓練圖片使用隨機尺度(隨機尺度范圍為[0.5,2])裁剪到512×512,然后使用隨機水平翻轉、隨機高斯濾波、隨機白噪聲等方式進行數(shù)據(jù)增廣。實驗中,設置隨機種子為1,保證模型訓練的可復現(xiàn)性。所有網(wǎng)絡卷積層權重參數(shù)使用Kaiming方法進行初始化。BatchNorm層gamma初始化為1,beta初始化為0。
本文實驗運行環(huán)境為Ubuntu 16.04,顯卡NVIDIA GeForce GTX 1080ti,PyTorch1.13,CUDA10.1。4 組對比實驗中,模型均無預訓練模型,以隨機初始化參數(shù)開始訓練。模型最終在Cityscapes驗證集上的mIOU以及對于1024×512圖片的推理速度如表1所示。使用混合注意力的模型對于測試集圖片的預測分割結果如圖4所示。由表1可知,實時語義分割網(wǎng)絡引入混合注意力機制后,模型mIOU達到62.01%,比沒有添加注意力的網(wǎng)絡提高1.82%。并且沒有引入過多計算量,F(xiàn)PS只降低了一幀。實驗結果基本驗證了本文提出方法的有效性。
表1 實時語義分割模型訓練結果
圖4 預測分割圖
本文針對實時語義分割網(wǎng)絡精度不高的問題,提出在解碼器階段使用混合注意力機制增強特征圖的表達能力,在不引入過多參數(shù)量和計算量的情況下,提高網(wǎng)絡模型精度。為驗證所提出的方法,設置4組對比實驗。實驗結果表明,本文提出的方法在網(wǎng)絡推理速度降低1fps的情況下,將模型精度提高1.82%。但本文方法仍需繼續(xù)改進,進一步降低參數(shù)量和計算量,提高模型精度,更好地滿足實時語義分割網(wǎng)絡需求。