曹玉峰,高建瓴,陳楠
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽 550025)
近年來,語義分割已成為計(jì)算機(jī)視覺[1]和機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)基本研究課題,同時(shí)也已成為備受各方關(guān)注的學(xué)術(shù)熱點(diǎn)之一。目前的研究指出,為圖像的每個(gè)像素分配單獨(dú)的類別標(biāo)簽是構(gòu)建復(fù)雜機(jī)器人系統(tǒng)(例如無人駕駛汽車和家用機(jī)器人)的重要步驟。語義分割的最簡單定義是像素級標(biāo)記。因此,認(rèn)為僅查找場景中包含的類標(biāo)簽是遠(yuǎn)遠(yuǎn)不夠的。類標(biāo)簽應(yīng)根據(jù)上下文而變化。例如,在無人駕駛汽車中,像素標(biāo)簽可以是人、道路、汽車等。
目前,人們對語義分割的興趣日益濃厚,隨著當(dāng)代人工智能技術(shù)的不斷發(fā)展,在各種計(jì)算機(jī)視覺前沿理論研究體系中,圖像語義分割已經(jīng)漸漸成為最核心基礎(chǔ)的部分,在諸多領(lǐng)域有著廣泛的應(yīng)用。例如,在醫(yī)療影像領(lǐng)域,圖像語義分割能夠分割出細(xì)節(jié)信息,使醫(yī)生能夠從圖像中更清晰地了解到病人的身體信息,為醫(yī)生診斷病情提供幫助。在拍照時(shí),語義分割方法能夠精準(zhǔn)地識別臉部輪廓信息,輔助人臉美化算法,釋放人類愛美的天性。在自動駕駛中,圖像語義分割能夠幫助汽車識別場景中的道路、障礙物等信息并精確定位,確保汽車行駛安全。但仍需指出的是,到目前為止,語義分割技術(shù)仍然面臨重大挑戰(zhàn),主要表現(xiàn)為如下3 點(diǎn):
(1)由于各個(gè)光照、拍攝距離等各方面的差異,同樣的物體在圖像中表現(xiàn)出來的特征信息可以有極大差異,而且每個(gè)物體都存在被其他物體遮擋或割裂等現(xiàn)象,因此想要進(jìn)行正確的語義信息標(biāo)記難度較大。
(2)圖像內(nèi)容各不相同,且變化各異,較為復(fù)雜,相同的物體在圖像中可能表現(xiàn)不同種情況,而不同類別的物體表現(xiàn)出來又可能極度相似。
(3)在現(xiàn)實(shí)場景中,圖像中經(jīng)常出現(xiàn)一些比較繁雜且凌亂的背景,這對于進(jìn)行圖像語義分割也是一大難點(diǎn)。
針對復(fù)雜場景中目標(biāo)分割精度不高的問題,本文提出一種基于注意力機(jī)制[2]的目標(biāo)分割方法。結(jié)合注意力機(jī)制,自適應(yīng)地學(xué)習(xí)特征圖通道之間的關(guān)系。強(qiáng)調(diào)有用信息,抑制冗余信息,提高了特征圖的判別能力。實(shí)驗(yàn)結(jié)果表明,與同類算法相比,該算法具有較好的分割效果,并顯著提高了分割效率。同時(shí)在Fast-SCNN 網(wǎng)絡(luò)的解碼器部分對圖像信息還原時(shí),由于過度壓縮圖像信息,在圖像信息還原過程中許多特征細(xì)節(jié)信息將會丟失,導(dǎo)致最后得到的分割效率不高,因此在解碼器部分進(jìn)行一定的改進(jìn),使用擴(kuò)張解碼[3],捕獲更為豐富的多尺度信息,得到更密集的特征信息和更大的感受野,有效提升網(wǎng)絡(luò)模型的分割精度。
2014年,定義提出了一個(gè)全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN)[4],該網(wǎng)絡(luò)可以接受任意大小的圖像輸入,避免了采用像素塊帶來的重復(fù)存儲和計(jì)算的問題。
2015年,Hyeonwoo 等人[5]提出的Deconvnet 對分割的細(xì)節(jié)處理強(qiáng)于FCN,位于低層的filter 能捕獲目標(biāo)的形狀信息,位于高層的filter 能夠捕獲特定類別的細(xì)節(jié)信息,分割效果更好,但其對細(xì)節(jié)的處理難度較大。
2016年,劍橋大學(xué)團(tuán)隊(duì)基于FCN 設(shè)計(jì)了一種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)SegNet[6],使用去池化對特征圖進(jìn)行上采樣,在分割中保持細(xì)節(jié)的完整性;去掉全連接層,使其擁有較少的參數(shù)。但當(dāng)對低分辨率的特征圖進(jìn)行去池化時(shí),會忽略鄰近像素的信息,導(dǎo)致精度不高。
2017年,TN Kipf 利用GCN[7]模型,提出了帶有大維度卷積核的編碼器-解碼器結(jié)構(gòu),使其提取出來的特征較為優(yōu)秀。但卻具有較多的參數(shù),從而導(dǎo)致計(jì)算復(fù)雜度較高。
2019年,提出了具有自注意力機(jī)制的雙注意網(wǎng)絡(luò)DANet[8]。在傳統(tǒng)的FCN 上附加2 種注意力模塊,分別模擬空間和通道維度中的語義相互依賴性,有助于提高分割結(jié)果的精度。
因此,網(wǎng)絡(luò)模型在具有較好實(shí)時(shí)性的同時(shí),還能使分割精度也得以提升,仍然亟待進(jìn)一步的探討。受two-branch 結(jié)構(gòu)和encoder-decoder 網(wǎng)絡(luò)啟發(fā)的Fast-SCNN[9]網(wǎng)絡(luò),可用于高分辨率(1 024×2 048)圖像上的實(shí)時(shí)語義分割任務(wù)。
2019年,提出了一種快速語義分割網(wǎng)絡(luò)Fast-SCNN,該模型適用于低存儲的嵌入式設(shè)備上的高效計(jì)算,相較于其他語義分割模型,不僅計(jì)算速度快,計(jì)算精度也不低,該優(yōu)勢可以滿足在交通場景上語義分割的實(shí)時(shí)性和準(zhǔn)確性。
但Fast-SCNN 網(wǎng)絡(luò)在解碼器部分進(jìn)行圖像信息還原時(shí),由于網(wǎng)絡(luò)結(jié)構(gòu)的問題,導(dǎo)致圖像信息壓縮過度,在圖像信息還原過程中許多特征細(xì)節(jié)信息丟失,導(dǎo)致最后得到的分割效率不高,因此本文在解碼器部分進(jìn)行一定的改進(jìn),使用擴(kuò)張解碼[3],利用3 個(gè)擴(kuò)張卷積密集連接到一起,捕獲更為豐富的多尺度信息,得到更密集的特征信息和更大的感受野,有效提升網(wǎng)絡(luò)模型的分割精度。同時(shí),本文還使用了CBAM 注意力模塊(Convolutional Block Attention Module),用于抑制關(guān)注一些不重要的信息通道,降低了時(shí)間復(fù)雜度,從而提高了識別效率。
Fast-SCNN 受雙分支結(jié)構(gòu)和傳統(tǒng)的編碼解碼結(jié)構(gòu)的啟發(fā),基于一個(gè)編碼器解碼器結(jié)構(gòu)通過學(xué)習(xí)下采樣,利用全局特征提取器進(jìn)行特征提取,在特征融合階段通過一個(gè)二次線性插值進(jìn)行一次上采樣,繼而和學(xué)習(xí)下采樣輸出的結(jié)果直接相加后,再次通過特征融合,最后進(jìn)行像素點(diǎn)的分類,用于完成高分辨率(1 024×2 048)圖像上的實(shí)時(shí)語義分割任務(wù)。Fast-SCNN 的整體網(wǎng)絡(luò)架構(gòu)如圖1 所示。由圖1 可知,該網(wǎng)絡(luò)整體上主要由4 部分組成:學(xué)習(xí)下采樣模塊、全局特征提取器、特征融合模塊和分類器,所有模塊都采用深度可分離卷積構(gòu)建。對此擬做闡釋分述如下。
圖1 Fast-SCNN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Fast-SCNN network structure
(1)學(xué)習(xí)下采樣模塊。在學(xué)習(xí)下采樣模塊中,采用了3 層的結(jié)構(gòu)。只使用了3 層來確保低級特征共享的有效性和高效實(shí)施。第一層是標(biāo)準(zhǔn)卷積層(Conv2D),其余兩層是沿深度可分離的卷積層(DSConv)。學(xué)習(xí)下采樣模塊中所有3 層都使用了步長為2、卷積核大小為3×3 的卷積層,每一個(gè)卷積層后都會緊接著一個(gè)BN層和一個(gè)ReLU激活函數(shù)。
(2)全局特征提取器。全局特征提取器模塊旨在捕獲用于圖像分割的全局上下文。在傳統(tǒng)的深度分支中,其輸入圖像的分辨率一般很低,而全局特征提取器的輸入是在經(jīng)過學(xué)習(xí)下采樣模塊處理后所得到的特征圖。當(dāng)輸入和輸出大小相同時(shí),通過殘差連接,以及使用了高效的深度可分離卷積,從而減少了參數(shù)和浮點(diǎn)運(yùn)算的數(shù)量。此外,在末尾添加了一個(gè)金字塔池模塊(PPM),以聚合基于不同區(qū)域的上下文信息。
(3)特征融合模塊。通過簡單地融合不同分支的特征以確保有效性。或者可以運(yùn)行時(shí)以性能為代價(jià)使用更復(fù)雜的特征融合模塊(例如Bisenet),以達(dá)到更高的精度。
(4)分類器。在分類器中,采用了2 個(gè)深度可分離卷積和逐點(diǎn)卷積。在特征融合模塊后增加數(shù)層可以提高準(zhǔn)確率。在訓(xùn)練期間使用了Softmax來進(jìn)行損耗的運(yùn)算。
Fast-SCNN 模型中也存在著一些缺點(diǎn)和不足,圖像最終分割的效果與感受野大小有明顯的差距,需要增大感受野,原模型中還存在一些信息冗余,會導(dǎo)致模型計(jì)算速度較慢,因此想要獲得更好的效果,必須對其進(jìn)行優(yōu)化。本文對Fast-SCNN 網(wǎng)絡(luò)從以下2 個(gè)方面進(jìn)行改進(jìn)。
(1)改進(jìn)解碼器:在解碼器部分進(jìn)行一定的改進(jìn),使用擴(kuò)張解碼,利用3 個(gè)擴(kuò)張卷積密集連接到一起,捕獲更為豐富的多尺度信息,得到更密集的特征信息和更大的感受野,有效提升網(wǎng)絡(luò)模型的分割精度。
(2)增加注意力模塊:使用了CBAM 注意力模塊(Convolutional Block Attention Module)用于抑制關(guān)注一些不重要的信息通道,降低了時(shí)間復(fù)雜度,提高了識別效率。
2.2.1 擴(kuò)張解碼
本文使用3 個(gè)不同擴(kuò)張率(2、3、5)的擴(kuò)張卷積連接起來進(jìn)行卷積操作,為了獲取到更加豐富的多尺度信息,進(jìn)行更為密集的采樣以及獲取到更大的感受野。
本文使用的擴(kuò)張解碼是將3 個(gè)擴(kuò)張卷積兩兩連接到一起,一開始輸入的特征映射被傳輸?shù)侥K中的各個(gè)擴(kuò)張卷積上作為輸入,每一個(gè)擴(kuò)張卷積的輸出都作為此后的擴(kuò)張卷積的輸入,最終,將所有卷積層的輸出級聯(lián)到一起作為結(jié)果輸出。該擴(kuò)張卷積有著更大、也更為密集的空間采樣。擴(kuò)張解碼結(jié)構(gòu)如圖2 所示。
圖2 擴(kuò)張解碼模塊結(jié)構(gòu)圖Fig.2 Structure diagram of extended decoding module
傳統(tǒng)特征提取的步驟可概述為:首先,對特征圖進(jìn)行下采樣操作來獲取到分辨率較低的特征圖;然后,進(jìn)行普通卷積操作來提取圖像特征;最后,再進(jìn)行一次上采樣操作,該操作主要作用是恢復(fù)特征圖像的分辨率,并將其輸出。而本文使用的擴(kuò)張解碼可以直接應(yīng)用于高分辨率的輸入圖片,獲取更大的感受野,使用更為密集的采樣方式來獲取到更多的空間細(xì)節(jié)信息。
2.2.2 注意力機(jī)制
CBAM 注意力機(jī)制具有輕量性和通用性的優(yōu)點(diǎn),在前饋卷積式神經(jīng)網(wǎng)絡(luò)中,該模塊的應(yīng)用更高效簡潔。CBAM 包含2 個(gè)獨(dú)立的子模塊:通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spartial Attention Module,SAM),分別進(jìn)行通道與空間上的注意力操作。CBAM 注意力機(jī)制如圖3 所示。
圖3 CBAM 注意力機(jī)制模型結(jié)構(gòu)Fig.3 CBAM model structure of attention mechanism
CBAM 整體結(jié)構(gòu)為:輸入特征圖后,卷積層輸出的結(jié)構(gòu)首先要通過一個(gè)通道注意力模塊,將輸出進(jìn)行加權(quán)后,再通過一個(gè)空間注意力模塊,最后則進(jìn)行一次加權(quán)得到完整的輸出特征圖。
通道注意力模塊(Channel Attention Module,CAM)[10]如圖4 所示,將輸入特征圖分別經(jīng)過全局最大池化和全局平均池化,再將輸出結(jié)果送入一個(gè)2 層神經(jīng)網(wǎng)絡(luò)(MLP)。經(jīng)過MLP 處理后,獲得的結(jié)果將由逐個(gè)元素依次進(jìn)行加和操作,并經(jīng)Sigmoid激活操作,生成最終輸出的通道注意力特征圖。將所獲得的特征圖與初始輸入的特征圖的所有元素逐個(gè)進(jìn)行乘法運(yùn)算作為Spatial attention 的輸入特征。
圖4 通道注意力模塊Fig.4 Channel Attention Module(CAM)
空間注意力(Spartial Attention Module,SAM)模塊[11]如圖5 所示,將通道注意力模塊的輸出作為空間注意力的輸入,輸入特征經(jīng)過一次最大池化后,再經(jīng)一次平均池化,得到2 個(gè)特征圖,然后將這2 個(gè)特征圖通道拼接起來,隨后經(jīng)過一個(gè)7×7 的卷積核對通道進(jìn)行降維處理,使通道數(shù)量變成一個(gè),接著又通過Sigmoid激活函數(shù)將其激活,最后直接輸出空間注意力特征。
圖5 空間注意力模塊Fig.5 Spatial Attention Module(SAM)
綜上所述,本文結(jié)合擴(kuò)張解碼和注意力機(jī)制對Fast-SCNN 模型進(jìn)行改進(jìn),獲得更好的語義分割效果,通過改進(jìn)提升了分割精度和效率。改進(jìn)后的整體網(wǎng)絡(luò)模型結(jié)構(gòu)如圖6 所示。本文使用的擴(kuò)張解碼以DDModule 命名。
圖6 改進(jìn)后的整體網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Overall network structure diagram after improvement
改進(jìn)后的特點(diǎn)及優(yōu)勢可闡釋如下:
(1)使用擴(kuò)張解碼,增大感受野,獲得更豐富的的特征信息,提高了分割精度。
(2)引入CBAM 注意力機(jī)制,減少對冗余信息的關(guān)注,減少計(jì)算量。提高了分割效率。
Cityscapes 數(shù)據(jù)集、即城市景觀數(shù)據(jù)集,是一個(gè)道路場景分割中常用的大型公開數(shù)據(jù)集,其中包含從50 個(gè)不同城市的街景中記錄的各種立體視頻序列,除了更大的20 000 個(gè)弱注釋幀之外,還有高質(zhì)量的5 000 幀像素級注釋。數(shù)據(jù)集中包括8 個(gè)類別。這八個(gè)大類涵蓋了19 個(gè)子類別。常用的19 個(gè)語義類別是:道路(Road)、人行道(Sidewalk)、建筑物(Building)、墻壁(Wall)、柵欄(Fence)、欄桿(Pole)、交通燈(Traffic light)、交通標(biāo)志(Traffic sign)、草 叢(Vegetation)、地 面(Terrain)、天 空(Sky)、行人(Person)、騎行者(Rider)、汽車(Car)、卡車(Truck)、公交車(Bus)、火車(Train)、摩托車(Motorcycle)、自行車(Bicycle)。
本文選用MIoU(Mean Intersection over Union)語義分割評價(jià)指標(biāo),表示平均交并比,即數(shù)據(jù)集上每一個(gè)類別的IoU值的平均。
以Cityscapes 為例,共包含19 個(gè)類別,分別對每個(gè)類別求IoU。研究推得的MIoU的計(jì)算公式為:
其中,k表示類別;(k +1)表示加上背景類;i表示真實(shí)值;j表示預(yù)測值。
此外,選用像素精度(PA)描述圖像像素的準(zhǔn)確度,選用平均像素精度(MPA)對改進(jìn)實(shí)驗(yàn)加以評定,此處需用到的公式可寫為:
參數(shù)設(shè)置:初始學(xué)習(xí)率為0.001,動量為0.9,權(quán)重衰減0.000 5,批尺寸4,選擇擴(kuò)張率為(2,3,5)的擴(kuò)張解碼。具體的環(huán)境硬件以及軟件配置見表1。
表1 實(shí)驗(yàn)環(huán)境配置Tab.1 Experimental environment configuration
使用擴(kuò)張率分別為(1,1,1)、(2,3,5)、(3,4,5)的擴(kuò)張解碼在Cityscapes 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),驗(yàn)證不同擴(kuò)張率對擴(kuò)張解碼性能的影響,實(shí)驗(yàn)結(jié)果見表2。
表2 擴(kuò)張解碼對比實(shí)驗(yàn)Tab.2 Contrast experiment of extended decoding
在擴(kuò)張率為(2,3,5)下具有比擴(kuò)張率(1,1,1)更高的MIoU,且比擴(kuò)張率為(3,2,5)的計(jì)算速度快,綜上所述研究選擇擴(kuò)張率為(2,3,5)的擴(kuò)張解碼。
將Fast-SCNN 網(wǎng)絡(luò)模型的淺層特征提取解碼結(jié)構(gòu)改為擴(kuò)張解碼的網(wǎng)絡(luò)命名為EFast-SCNN。并將加入CBAM 注意力機(jī)制的網(wǎng)絡(luò)模型與原Fast-SCNN 和EFast-SCNN 進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表3。
表3 引入注意力機(jī)制對比實(shí)驗(yàn)Tab.3 A comparative experiment introducing attention mechanism
從表3 的實(shí)驗(yàn)結(jié)果可看出將解碼器結(jié)構(gòu)改為擴(kuò)張解碼后的EFast-SCNN 網(wǎng)絡(luò)在Cityscapes 上較原Fast-SCNN 網(wǎng)絡(luò)的MIoU值提升了7.45%,再加入CBAM 注意力模塊后又提升了5.04%,像素精度(PA)和平均像素精度(MPA)都有顯著增加,證明了改進(jìn)后的分割效果得到了提升,由于模型復(fù)雜度的提高,使得改進(jìn)網(wǎng)絡(luò)在單張圖像上的處理時(shí)間較原網(wǎng)絡(luò)有所增加,但加入輕量化注意力模塊后有效緩解了該問題。綜合前述分析可知,在大幅提升分割精度的同時(shí),也不影響模型分割的實(shí)時(shí)性,證明了改進(jìn)是有效的。
將改進(jìn)后的DFast -SCNN+CBAM 模型在Cityscapes 數(shù)據(jù)集上得到的結(jié)果進(jìn)行可視化分析,如圖7 所示。
圖7 改進(jìn)模型在Cityscapes 數(shù)據(jù)集上結(jié)果可視化Fig.7 Visualization of results of the improved model on Cityscapes datasets
本文分析討論了CBAM 注意力模塊,通過實(shí)驗(yàn)選擇出擴(kuò)張率最合適的擴(kuò)張解碼,在此基礎(chǔ)上,提出了基于注意力機(jī)制的改進(jìn)方案,進(jìn)行實(shí)驗(yàn),滿足了當(dāng)下在實(shí)際環(huán)境中道路場景的分割準(zhǔn)確率和實(shí)時(shí)性的需求,證明改進(jìn)后網(wǎng)絡(luò)的有效性和可行性。但仍有改進(jìn)的空間,未來會在輕量化網(wǎng)絡(luò)的改進(jìn)上繼續(xù)研究。