宣明慧,張榮國,李富萍,趙 建,胡 靜
(太原科技大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,太原 030024)
計算機(jī)視覺是非常熱門的一個研究領(lǐng)域,其中圖像識別[1]是為圖像賦予語義含義,而語義分割則是為圖像中的每個像素點賦予語義含義。
FCN[2]在分類的基礎(chǔ)上,去掉最后的全連接層,對每個像素點屬于哪一個語義標(biāo)簽產(chǎn)生預(yù)測概率,將圖像分類問題轉(zhuǎn)換成了像素點分類問題,是深度學(xué)習(xí)技術(shù)在圖像語義分割任務(wù)上的開端。文獻(xiàn)[3]對中間層特征圖進(jìn)行切分,對切分后的特征圖上采樣后繼續(xù)提取特征,提高了對中間特征層的復(fù)用。上述模型雖然一定程度上提升了分割精度,但卻產(chǎn)生了較大的參數(shù)量和計算量。
DeepLab V2[4]提出了空洞空間卷積池化金字塔(ASPP),并引入了條件隨機(jī)場,條件隨機(jī)場和馬爾可夫隨機(jī)場都是典型的基于統(tǒng)計的圖像分割算法,文獻(xiàn)[5]就是引入了馬爾可夫隨機(jī)場解決圖像分割問題。Xception[6]提出了深度可分離卷積,實現(xiàn)了通道和空間區(qū)域的獨立運(yùn)算,減少了參數(shù)量,提升了計算速度,Mobilenet V2[7]則是通過引入深度可分離卷積實現(xiàn)了模型的輕量型。
Inception V3[8]通過對卷積操作的分解進(jìn)一步降低了參數(shù)量和計算量,F(xiàn)DDWNET[9]將分解卷積、深度可分離卷積以及空洞卷積進(jìn)行結(jié)合,提出了分解空洞深層卷積。ADSCNet[10]在空洞卷積和分解卷積的基礎(chǔ)上結(jié)合密集連接實現(xiàn)了實時性,同時FC-DenseNet56[11]也采用密集連接方式對各級別的特征進(jìn)行融合。從上面的工作可以看出,深度可分離卷積和分解卷積相較于標(biāo)準(zhǔn)卷積來說具有更少的參數(shù)量和計算量。
綜上所述,本文提出了分解多空洞深度卷積的輕量級語義分割模型,將空洞卷積和深度可分離卷積、分解卷積進(jìn)行結(jié)合。
本文的主要貢獻(xiàn):
(1)用金字塔結(jié)構(gòu)提取特征,在深度卷積過程中對空洞卷積進(jìn)行分解,降低參數(shù)量和計算量;
(2)對不同階段的特征圖進(jìn)行融合,利用子像素卷積進(jìn)行上采樣,改善圖像語義分割精度;
(3)在沒有預(yù)處理模型的前提下,參數(shù)量和計算量都相對較低,同時語義分割精度得以提升。
空洞卷積池化金字塔(ASPP):空洞卷積是在標(biāo)準(zhǔn)卷積的每個參數(shù)間插入0,在保證標(biāo)準(zhǔn)卷積參數(shù)量不變的基礎(chǔ)上,擴(kuò)大感受野,使每個卷積核獲取更大范圍信息,避免了池化層帶來的空間位置信息丟失問題。DeepLab V2便利用空洞卷積池化金字塔模型提取多尺度的特征信息。
深度可分離卷積:深度可分離卷積分為Depthwise過程和Pointwise過程,實現(xiàn)了通道和空間的獨立,Depthwise過程對每個通道提取特征,Pointwise過程對通道上的像素點提取特征,兩個過程相當(dāng)于一個標(biāo)準(zhǔn)卷積操作,但相對于標(biāo)準(zhǔn)卷積操作,減少了參數(shù)量。Mobilenet系列則是引入了深度可分離卷積,實現(xiàn)了推理的實時性。
分解卷積:分解卷積是將卷積分解為多個卷積,如將5*5的卷積分解為兩個3*3的卷積,將3*3的卷積分解成3*1和1*3的卷積。ENet[12]引入n*1和1*n卷積代替n*n卷積,降低了模型參數(shù)量和計算量,相較于SegNet[13]速度提升了18倍,DABNet[14]提出了DABModule,將空洞卷積和標(biāo)準(zhǔn)卷積分別進(jìn)行分解,將得到的特征圖進(jìn)行相加融合,DABNet-Light[15]將DABModule中的標(biāo)準(zhǔn)卷積替換成了深度空洞卷積,進(jìn)一步降低了復(fù)雜度。
子像素卷積:Sub-pixel Convolution是文獻(xiàn)[16]提出的、除雙線性插值、反卷積等之外的一種上采樣方法,ExFuse[17]則利用Sub-pixel Convolution對特征圖進(jìn)行上采樣,且mIoU增長了0.5%.
本文提出的分解多空洞深度卷積的輕量級圖像語義分割網(wǎng)絡(luò),由特征提取、上采樣兩個部分組成。特征提取部分主要包括所提出的分解空洞深度卷積金字塔模塊(FADWp Module),如圖1所示,該模塊將金字塔結(jié)構(gòu)中的空洞卷積分離為深度卷積和點卷積,然后對分離出的深度卷積進(jìn)行分解。上采樣部分的主要思想是在利用子像素卷積(Sub-pixel Convolution)對特征圖進(jìn)行上采樣前,先對不同級別的特征圖進(jìn)行融合。
圖1 分解空洞深度卷積金字塔模塊Fig.1 Factorization of the atrous depthwise convolution pyramid module
由于圖像中具有行人、樹、車、街道、建筑等大小不同的目標(biāo),本文利用具有不同感受野的金字塔結(jié)構(gòu)對圖像提取多尺度特征。
假設(shè)輸入特征圖為Hin×Win×Cin,卷積核的尺寸為kh×kw×Cin,卷積核的個數(shù)為Cout,輸出特征圖為Hin×Wout×Cout,則標(biāo)準(zhǔn)卷積的參數(shù)量和每秒浮點運(yùn)算次數(shù)(此處不考慮偏置)如下:
參數(shù)量:
Parameters=kh*kw*Cin*Cout
(1)
每秒浮點運(yùn)算次數(shù):
FLOPs=Parameters*Hout*Wout=
(kh*kw*Cin*Cout)*Hout*Wout
(2)
深度可分離卷積分為Depthwise(簡稱DW)和Pointwise(簡稱PW)兩個過程,參數(shù)量和每秒浮點運(yùn)算次數(shù)(此處不考慮偏置)如下:
參數(shù)量:
Parameters=ParametersDW+ParametersPW=
(kh*kw*Cin)+CinCout
(3)
每秒浮點運(yùn)算次數(shù):
FLOPs=Parameters*Hout*Wout=
[(kh*kw*Cin)+CinCout]*Hout*Wout
(4)
因此,深度可分離卷積的參數(shù)量與標(biāo)準(zhǔn)卷積的參數(shù)量之比為:
(5)
分解卷積將kh×kw的卷積核分解為kh×1和1×kw兩步,參數(shù)量和每秒浮點運(yùn)算次數(shù)如下所示:
參數(shù)量:
Parameters=Parameterskh×1+Parameterskw×1=
kh*Cin+kw*Cin=Cin(kh+kw)
(6)
每秒浮點運(yùn)算次數(shù):
FLOPs=Parameters*Hout*Wout=
Cin(kh+kw)*Hout*Wout
(7)
因此,分解卷積的參數(shù)量和深度可分離卷積的Depthwise過程的參數(shù)量之比為:
(8)
因此,在和空洞卷積、金字塔結(jié)構(gòu)相結(jié)合時,金字塔中1×1的點卷積使用標(biāo)準(zhǔn)卷積,3×3及以上的空洞卷積使用深度可分離卷積,且其中的Depthwise過程使用分解卷積代替,這樣做能夠最大程度上降低參數(shù)量和計算量。
圖1中的Cin、H和W表示特征圖的輸入通道、高度和寬度,DW表示深度可分離卷積中的Depthwise過程,Conv表示標(biāo)準(zhǔn)卷積,AConv表示空洞卷積(Atrous Convolution),1D-FConv表示分解卷積(1D-Factorized Convolution),s表示步長,r表示金字塔每一層卷積的空洞率,分別為(d-1,d,d+1),d是6次推理過程中的空洞率。為減少模型參數(shù),在特征圖進(jìn)行空洞卷積前,將特征圖的通道降為原來的1/4,且在金字塔結(jié)構(gòu)中,只對Depthwise過程的空洞卷積進(jìn)行分解,同時空洞率采用奇偶相間的值,提升像素間的相關(guān)性。
子像素卷積(Sub-pixel Convolution)的本質(zhì)是將低分率的特征圖,按照周期性的位置,插入到高分辨率的特征圖中,不需要訓(xùn)練調(diào)試參數(shù)就可以將R2*H*W的低分辨率特征圖上采樣為1*RH*RW的高分辨率特征圖。如圖2所示:
圖2 子像素卷積Fig.2 Sub-pixel convolution
因此本文在利用Sub-pixel Convolution進(jìn)行上采樣前,將三個不同階段的不同分辨率的特征圖進(jìn)行融合,為上采樣過程提供更全面的信息。網(wǎng)絡(luò)概括圖如圖3所示:
圖3 網(wǎng)絡(luò)概括圖Fig.3 An overview of network architecture (圖中的Downsampling和DAB module等引用自DABNet[14],F(xiàn)ADWp Module即為本文提出的模塊)
觀察圖3,在DABNet的基礎(chǔ)上,將深層次處的DABModule替換成本文的分解空洞深度卷積金字塔模塊(FADWp Module),并在Sub-pixel Convolution上采樣前,對各階段特征圖進(jìn)行融合。
SGD優(yōu)化器:初始學(xué)習(xí)率為0.1,動量為0.9,為了防止過擬合,設(shè)置權(quán)重衰減率為5e-4.
學(xué)習(xí)率衰減策略:初始學(xué)習(xí)率為0.1,連續(xù)20個迭代mIoU不增大時,執(zhí)行一次衰減策略。
lr=lr*factor
(9)
公式(9)中l(wèi)r為學(xué)習(xí)率,factor為衰減因子。
本文實驗環(huán)境是線上服務(wù)器GeFore RTX 1080Ti,數(shù)據(jù)集CamVid是由劍橋大學(xué)發(fā)布的從駕駛汽車的角度得出的像素級圖像語義分割數(shù)據(jù)集,共包含701張城市街道場景圖。
本文對CamVid數(shù)據(jù)集進(jìn)行處理,其中訓(xùn)練集含421張圖像,驗證集含112張,測試集含168張,共有11個語義類,將圖像剪裁為352*352,批次設(shè)置為5.
首先,針對整個模塊空洞率d展開實驗,(d1,d1,d2,d2,d3,d3)分別表示本文提出模塊在6次推理過程中空洞率的取值,從實驗結(jié)果中可以看出當(dāng)空洞率取成倍增長的偶數(shù)比非成倍增長且奇偶相間時具有更好的效果,如表1所示:
表1 不同空洞率的結(jié)果Tab.1 The results of different dilation rates
進(jìn)一步地,該實驗針對模塊的金字塔結(jié)構(gòu)中的不同空洞率進(jìn)行驗證,(d-1,d,d+3)分別表示在所提出的模塊中,并行的三個空洞卷積的空洞率取值,當(dāng)d=4時,(d-1,d,d+3)=(3,4,7),空洞率是奇數(shù)、偶數(shù)相間隔的,(d-2,d,d+2)=(2,4,6),空洞率全部都是偶數(shù),實驗證明奇偶數(shù)相間的空洞率要比全偶數(shù)的空洞率效果好。如表2所示:
表2 金字塔結(jié)構(gòu)中不同空洞率的結(jié)果Tab.2 The results of different dilation rates in the pyramid structure
最后,本文在最后上采樣階段使用Sub-pixel Convolution,實驗證明Sub-pixel Convolution相較于線性插值法等常用上采樣方法具有更好的表現(xiàn),但計算量也較大,如表3所示:
表3 不同上采樣方法的結(jié)果Tab.3 The results of different upsampling methods
本文方法與ENet、SegNet和BiSeNet等9種經(jīng)典方法在數(shù)據(jù)集CamVid上進(jìn)行對比,評價指標(biāo)包括計算量(FLOPs)、平均交并比(mIoU)、和參數(shù)量(Parameters),如表4所示:
表4 各類方法在CamVid測試集上的結(jié)果Tab.4 The results of various methods on the CamVid test set
觀察表4,對比在ImageNet進(jìn)行預(yù)訓(xùn)練的5個語義分割模型,其中只有BiSeNet(Resnet18)和ICNet的mIoU超過了本文方法,分別為68.7%和67.1%,BiSeNet(Resnet18)雖然在精度上超過本文方法將近2.1%,但是另外的兩個指標(biāo),無論是Parameters還是FLOPs都遠(yuǎn)遠(yuǎn)高于本文方法,ICNet的Parameters指標(biāo)同樣也較高,可以得出這兩類方法雖得到了較好的精度但忽略了參數(shù)量和計算量,而BiSeNet(Xception39)的FLOPs雖然較低,但是參數(shù)量Parameters卻相對較高,而且精度也低于本文方法。對比沒有進(jìn)行預(yù)訓(xùn)練的5個語義分割模型,其中只有ENet和DABNet-light的Parameters小于本文方法,分別為0.36M和0.64M,但是ENet的mIoU只有51.3%,低于本文方法15.3%,DABNet-light也低于本文方法2.0%,而其他方法相較于本文方法來說精度較低,參數(shù)量卻較高。因此綜合看來,本文提出的網(wǎng)絡(luò)模型較好的平衡了精度和復(fù)雜度之間的關(guān)系,在保證了精度的同時,降低了模型復(fù)雜度。觀察圖4的可視化效果圖,該模型可以較好地識別目標(biāo)及輪廓。
圖4 CamVid測試集可視化效果圖Fig.4 CamVid test set visualization
平衡精度和模型復(fù)雜度之間的關(guān)系是圖像語義分割領(lǐng)域一直以來關(guān)注的問題。本文提出的分解多空洞深度卷積的輕量級圖像語義分割模型,通過精簡的網(wǎng)絡(luò)結(jié)構(gòu)提取了較好的語義特征,并與不同級別的特征進(jìn)行融合,在保證精度的前提下降低了模型復(fù)雜度,減少了參數(shù)量和計算量。由于空洞卷積和子像素卷積導(dǎo)致模型在計算量上相對偏高,因此接下來將繼續(xù)在提高算法的綜合性能上進(jìn)行研究。