孫 紅,楊 晨,莫光萍
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
語義分割是將圖像的每個像素標記為相應(yīng)類別來達到分割效果,是當前計算機視覺中的一個重要主題[1],其在自動駕駛系統(tǒng)和自主移動設(shè)備等領(lǐng)域中應(yīng)用廣泛[2-9]。然而,這些應(yīng)用大多需要較高的分割精度,但提升分割精度需要大量增加參數(shù)數(shù)量。增大模型大小會減慢推理速度,導(dǎo)致無法滿足實時性要求,例如PSPNet(Pyramid Scene Parsing Network)[10]和DeepLab[11]在語義分割方面具有良好的性能,但它們包含數(shù)千萬個參數(shù),且推理速度不到每秒1幀。顯然這些大型網(wǎng)絡(luò)達不到完成實時語義分割任務(wù)的能力。在考慮內(nèi)存需求和推理速度后,應(yīng)用實時語義分割的應(yīng)用程序具有較強競爭力。因此,構(gòu)建一個高效的語義分割網(wǎng)絡(luò)逐漸成為一個重要課題。
現(xiàn)有高速語義分割模型例如ENet[12]和ESPNet(Efficient Spatial Pyramid Network)[13]具有較高的推理速度,但都以犧牲分割性能為代價。其他網(wǎng)絡(luò)例如ICNet(Image Cascade Network)[14]已經(jīng)成功地實現(xiàn)了更好的性能,但犧牲了推理速度和模型大小。因此本文力圖尋求能平衡分割準確度、推理速度和模型大小的方法。文獻[15~16]證明了多尺度卷積的潛力,其能夠感知各種大小的感受野。該方法允許網(wǎng)絡(luò)利用多級特征提取并結(jié)合各種規(guī)模信息。此外,空洞卷積已被證明是一種可在保持參數(shù)總數(shù)的同時提取大規(guī)模特征的有效方法[17-18]。然而,這兩種方法都具有局限性。作為一個通道模塊,即使應(yīng)用了分解卷積,Inception模塊[19-22]仍然包含大量參數(shù)。而模塊中僅有單一空洞卷積率的卷積通道只能從較大目標物體上提取特征信息,無法識別小型目標物體。
基于上述觀察,本文提出了一個新的語義分割網(wǎng)絡(luò)模塊,使用該模塊構(gòu)建一個基于編碼器解碼器結(jié)構(gòu)的網(wǎng)絡(luò)來提取密集特征。本文主要的工作和創(chuàng)新點如下所示:
1)提出通道特征金字塔模塊來處理多尺度特征信息,將N個通道處理后的特征信息融合后優(yōu)化邊界分割細節(jié);
2)將空洞卷積和可分離卷積用于改變網(wǎng)絡(luò)復(fù)雜性降低網(wǎng)絡(luò)參數(shù)量,實現(xiàn)模型的輕量化;
3)在網(wǎng)絡(luò)塊的末端嵌入一個卷積注意力機制模塊(Convolutional Block Attention Module,CBAM),其由通道注意力和空間注意力子模塊組成,進一步提升了網(wǎng)絡(luò)對特征信息的提取能力。
本文所提算法模型如圖1所示,主要由初始特征提取模塊、通道特征金字塔模塊和輕量級卷積注意力機制模塊(CBAM)共3個部分組成。在特征提取模塊首先使用3個3×3卷積作為初始的特征提取器,在第1個和第3個3×3卷積層后,將卷積得到的特征信息再進行一次1×1卷積,從而將輸出特征信息作為輸入特征輸入輕量級注意力機制中。在下采樣階段使用ENet中的下采樣策略即將步長為2的3×3卷積與2×2最大池化相結(jié)合,經(jīng)3次下采樣之后輸出的特征圖為原輸入圖像的1/8。初始特征提取模塊的輸出經(jīng)下采樣后輸入通道特征金字塔模組,將處理后的特征信息分別作為下一個下采樣層和1×1卷積的輸入特征,將低層的特征信息與卷積后得到的高層特征信息進行融合,最后在上采樣后加入輕量級注意力機制進一步提取特征信息作為高階特征信息輸入到CBAM3中,將最終得到的特征信息經(jīng)上采樣得到最終的語義分割圖。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)Figure 1. Network structure
圖2 通道特征金字塔模塊Figure 2. Channel feature pyramid module
圖3 通道注意力模塊Figure 3. Channel attention module
圖4 空間注意力模塊Figure 4. Spatial attention module
CBAM由通道注意力機制和空間注意力機制兩個子模塊組成,分別從通道和空間兩個維度提取特征信息。CBAM的整個過程可以由式(1)和式(2)表示。
F′=Mc(F)?F
(1)
F″=Ms(F′)?F′
(2)
其中,Mc(F)表示輸入特征經(jīng)通道注意力子模塊處理后得到的特征信息;Mc(F′)表示通道注意力子模塊輸出特征與原輸入特征融合后的特征信息;F″表示經(jīng)空間注意力子模塊處理后的輸出特征與原輸入特征融合后的最終輸出特征。
在通道注意力部分,輸入特征分別進行最大池化和平均池化,具體如式(3)和式(4)所示。
MA(F)=MLP(AvgPool(F))
(3)
MM(F)=MLP(MaxPool(F))
(4)
其中,MA(F)表示輸入特征經(jīng)平均池化的輸出;MM(F)表示輸入特征經(jīng)最大池化的輸出。池化過程用于提取高階特征信息,經(jīng)過共享感知機壓縮特征通道并將特征信息融合,再將通道數(shù)擴張到與輸入特征相同,經(jīng)激活函數(shù)得到兩個池化后的輸出結(jié)果。將輸出結(jié)果進行逐元素相加后經(jīng)Sigmoid激活函數(shù)得到通道注意力機制的輸出結(jié)果,并和最初的特征圖信息相乘得到最終的通道特征信息Mc(F),過程如式(5)所示。
Mc(F)=σ(MA(F)+MM(F))
(5)
在空間注意力模塊中,將通道注意力輸出的特征信息作為輸入特征,首先會進行一個全局最大池化和全局平均池化,然后將池化后的結(jié)果進行融合后經(jīng)過一個卷積層將雙通道的特征信息降維為一維特征信息,經(jīng)過激活函數(shù)生成空間注意力特征圖,最后將生成的特征信息與模塊的輸入特征信息進行相乘輸出得到最終的特征圖,具體過程如式(6)所示。
Ms(F)=σ(f7×7[AvgPool(F);MaxPool(F)])
(6)
在公開街景數(shù)據(jù)集CamVid和Cityscapes上進行分割效果和推理速度實驗,采用的評價指標分別為均交互比(mean Intersection over Union,mIoU)、幀率(Frames Per Second,FPS)、參數(shù)量(Parameters)。mIoU的計算式如式(7)所示
(7)
其中,pij表示真實值為i但被預(yù)測為錯誤值j的情況;pji表示錯誤值為j但被預(yù)測為正確值i的情況;pii表示預(yù)測值和實際值均為真實值i的情況。
果然,沒有幾天,杰克領(lǐng)著楊律師走進客廳,向蘇穆武和蘇母介紹:爸,媽,這是楊律師!蘇穆武和老伴不知杰克葫蘆里賣的什么藥,面面相覷。杰克說:爸,媽,我想了一下,咱們的問題,還是請律師解決比較好。蘇穆武懵懂地:什么問題?杰克說:關(guān)于人權(quán)問題,我不想爭論了,用婷婷的話說,會傷感情的。蘇穆武好像明白了,不滿地:用律師解決就不會傷感情? 杰克說:當然,法治社會最好的辦法就是通過律師。我已經(jīng)跟楊律師說過了,我現(xiàn)在回避一下,爸,媽,你們跟楊律師談?wù)劙?!蘇穆武朝杰克的背影:談你個腿!
為保證實驗結(jié)果具有可對比性,本文所有對比實驗采用的實驗環(huán)境如表1所示。采用初始學(xué)習率為0.007的poly學(xué)習策略來動態(tài)調(diào)整學(xué)習率,poly學(xué)習策略的表達式如式(8)所示
表1 實驗條件
(8)
其中,Ir表示初始學(xué)習率;iter和max_iter分別為訓(xùn)練迭代次數(shù)和最大迭代次數(shù);將power設(shè)置為0.9,輸入圖像的batch_size設(shè)置為4。由于實驗過程中不使用任何預(yù)訓(xùn)練方法,因此將最大訓(xùn)練時間設(shè)置為1 000。
本文實驗一共使用了兩個公開街景數(shù)據(jù)集,分別是CamVid和Cityscapes。
CamVid是一個從駕駛汽車角度拍攝的街景數(shù)據(jù)集,總共包括701幅圖像,其中367幅圖像用于訓(xùn)練,101幅圖像用于驗證,233幅圖像用于測試。這些圖像的分辨率為960×720,共有11個語義類別,在訓(xùn)練前將這些圖片尺寸大小調(diào)整為360×480。
Cityscapes是一個城市景觀數(shù)據(jù)集,包含5 000幅精細標注和20 000幅粗標注圖像。該數(shù)據(jù)集是從50個不同城市在不同季節(jié)和不同天氣中捕獲。對于精細標注集,其包含2 975幅訓(xùn)練圖像、500幅驗證圖像和1 525幅測試圖像。原始圖像的分辨率為1 024×2 048。整個數(shù)據(jù)集包含19個類別,屬于7個大類(例如汽車、卡車和公共汽車屬于車輛大類)。
本文提出的融合輕量級注意力機制的輕量化網(wǎng)絡(luò)的骨干網(wǎng)絡(luò)主要由通道特征金字塔模塊和輕量級卷積注意力機制(CBAM)組成。為了說明各個系統(tǒng)模塊的搭建過程以及它們在語義分割中的作用,對兩個模塊的結(jié)構(gòu)細節(jié)和分割效果在CamVid數(shù)據(jù)集上進行對比實驗。在通道特征金字塔模塊對比實驗中,在未加入輕量級注意力機制的情況下,保證網(wǎng)絡(luò)其余結(jié)構(gòu)參數(shù)不變,改變通道特征金字塔模塊參數(shù)進行實驗,根據(jù)實驗結(jié)果確定通道特征金字塔模塊的重復(fù)次數(shù)和空洞卷積率的大小,實驗結(jié)果如表2所示。
表2 通道特征金字塔模塊消融實驗
改變通道特征金字塔模組重復(fù)次數(shù)進行消融實驗。通道特征金字塔模組在本文網(wǎng)絡(luò)中的位置如圖1所示,CFP1(Channel Feature Pyramid)表示第1個通道特征金字塔模組,之后經(jīng)下采樣輸入第2個通道金字塔模組CFP2。
表2中序號1的實驗表示在CFP1模組中通道特征金字塔模塊重復(fù)一次,在CFP2模組中重復(fù)兩次,第1個通道特征金字塔模塊中的空洞卷積率為4,而第2個通道特征金字塔模塊中的空洞卷積率分別為8和16;序號2的實驗表示通道特征金字塔模塊在CFP1模組重復(fù)1次,在CFP2模組中重復(fù)3次,CFP1中的空洞卷積率為4,CFP2中空洞卷積率分別為4、8和16;序號3的實驗表示通道特征金字塔模塊在CFP1模組和CFP2模組中都重復(fù)兩次,其中第1部分的CFP空洞卷積率分別為2和4,第2部分的空洞卷積率為8和16;序號4的實驗表示通道特征金字塔模塊在CFP1模組中重復(fù)兩次,CFP2模組中重復(fù)6次,其中第1部分空洞卷積率均為2,第2部分空洞卷積率分別設(shè)置為4、4、8、8、16、16。
通過序號1和序號3對比實驗可知,特征金字塔模塊的增加使模型提取到更多的特征信息,分割準確率提升了2.6%。序號2和序號3的對比實驗證明了膨脹率更大的空洞卷積在卷積過程中獲取了更多的多尺度信息,mIoU提升了0.4%。但過度增加空洞卷積將導(dǎo)致模型參數(shù)量增加并降低運行速度,因此最終本文選擇序號3的模型參數(shù)進行后續(xù)的模塊消融實驗。
確定骨干網(wǎng)絡(luò)的模型參數(shù)后,為了探究CBAM對最終實驗結(jié)果的影響,分別在CFP2模塊后添加CBAM1模塊,在CFP1模塊后加入CBAM2模塊后并與CBAM1模塊的特征信息進行融合,在第1個和第3個3×3卷積層之后依次加入CBAM4、CBAM3模塊,最后進行上采樣得到最終的分割圖。消融實驗結(jié)果如表3所示。
表3 CBAM模塊消融實驗
由表3中實驗1和實驗2的結(jié)果對比發(fā)現(xiàn),加入CBAM2模塊后模型分割精度提高了1.2%,CBAM3模塊的加入模型精度提升了1.6%。這是由于模塊對高階特征信息的權(quán)重進行獲取,并將其與低階語義特征進行加權(quán)操作,使得高級特征信息能夠?qū)Φ图壧卣餍畔⑦M行指導(dǎo),從而更有效地提升了分割精度。在序號4的實驗中,分割精度相對實驗3提高了1.2%。如圖5所示,淺層特征信息的加入提升了模型對邊界信息的敏感性,添加CBAM模塊后的模型對于小目標對象的分割效果明顯優(yōu)于未加入CBAM模塊的骨干網(wǎng)絡(luò)模型。最終本文網(wǎng)絡(luò)模型在4個CBAM模塊加成下達到68.1%的分割精度。在本文后續(xù)的Cityscapes數(shù)據(jù)集速度測試對比實驗中也將采用融入CBAM模塊的網(wǎng)絡(luò)模型。
圖5 CamVid數(shù)據(jù)集分割效果對比(a)輸入圖像 (b)標注圖像 (c)SegNet (d)BiseNet v2 (e)本文算法(無CBAM) (f)本文算法(加入CBAM)Figure 5. CamVid data set segmentation effect comparison(a)Input image (b)Annotation image (c)SegNet (d)BiseNet v2 (e)The proposed algorithm(without CBAM) (f)The proposed algorithm(with CBAM)
為了評估模型的分割效果,將CamVid作為測試數(shù)據(jù)集進行實驗,同時本文還與其他公開的優(yōu)秀語義分割模型算法進行分割效果的對比,實驗結(jié)果如表4所示。本文模型在小參數(shù)量的情況下也依然展現(xiàn)了出色的性能,模型較DABNet[23]參數(shù)量下降了近10倍,但在分割效果上依然具有競爭力。相比于ICNet,本文模型雖然在分割效果上較差,但參數(shù)量只有其1/36。在參數(shù)量小于100萬的網(wǎng)絡(luò)中,本文模型的準確率相對較高,平均交互比達到了68.1%,高于ENet的51.2%和ESPNet的54.6%。在表2中,本文模型在未加入CBAM模塊的情況下均交互比達到了61.3%,說明通道特征金字塔模塊中空洞卷積和可分離卷積的組合在提取特征信息方面具有良好表現(xiàn)。此外,與SegNet[24]、DeepLab v2等參數(shù)超過1 000萬的網(wǎng)絡(luò)相比,本文模型不僅實現(xiàn)了輕量化,且分割準確度分別高出14.8和3.0個百分點。
為了更清晰地體現(xiàn)本文模型在Camvid數(shù)據(jù)集上的分割效果,將本文模型得到的語義分割掩碼與其他優(yōu)秀網(wǎng)絡(luò)模型進行對比,對比效果如圖5所示。對于小目標對象例如路燈、交通標識牌等,由圖5(f)可知,得益于特征金字塔池提取的多維特征信息以及輕量注意力機制融入的淺層特征信息,本文模型相較于大模型更加敏感且分割精度更高,說明本文通道特征金字塔模塊設(shè)計有效。
由于在圖5(f)中引入通道注意力子機制和空間注意力子機制相融合的輕量級注意力機制模塊,可以明顯看出圖5(f)中對與物體邊界信息的提取效果優(yōu)于未添加卷積注意力機制的圖5(e)。對于淺層特征信息的融合也進一步提高了圖5(f)的分割準確性,從而提升了整個神經(jīng)網(wǎng)絡(luò)的分割精度。
為了驗證本文提出的輕量化網(wǎng)絡(luò)模型可適用于實時語義分割任務(wù),在Cityscapes數(shù)據(jù)集上進行速度測試實驗,同時與其他優(yōu)秀的語義分割模型進行參數(shù)量、速度和分割精度指標對比,實驗結(jié)果如表5所示。
表5 Cityscapes數(shù)據(jù)集速度測試實驗
在分割效果方面,本文模型的分割效果具有一定的競爭力,平均交互比達到了75.7%,不僅分割效果較傳統(tǒng)分割網(wǎng)絡(luò)精度更高,而且在參數(shù)量大小和推理速度上更具優(yōu)勢。相比于ICNet和DABNet(Depth-wise Asymmetric Bottleneck Network),本文模型均交互比分別提高了8.2和7.6個百分點。在運行速度方面,本文模型能夠以56 frame·s-1的速度處理1 024×2 048大小的輸入圖像。BiseNet v2[26]是最快的實時語義分割網(wǎng)絡(luò),雖然其速度快于本文模型,但分割精度只達到了71.8%,比本文網(wǎng)絡(luò)模型的分割精度低。速度測試對比實驗表明,本文模型能夠以較快的推理速度處理高分辨率圖像,同時保持高精度的分割效果。
本文提出了一種通道特征金字塔模塊來聯(lián)合提取局部特征和上下文特征。在特征金字塔模塊的基礎(chǔ)上,嵌入多個輕量級注意力機制模塊提升模型對邊界信息提取能力。通過分析和定量實驗結(jié)果證明了該方法的有效性。本文模型在僅使用75萬個參數(shù)的情況下,在Camvid數(shù)據(jù)集上取得了68.1%的分割準確性,在Cityscapes測試集上達到了75.7%的平均交互比,在1 024×2 048高分辨率圖像上的運行速度為56 frame·s-1。與其他優(yōu)秀方法相比,本文所提算法模型在分割準確性、運行速度和參數(shù)量方面都有較好的表現(xiàn)。