陳學(xué)顥,李順新
(1.武漢科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;2.湖北智能信息處理與實(shí)時工業(yè)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430065;3.武漢科技大學(xué) 大數(shù)據(jù)科學(xué)與工程研究院,湖北 武漢 430065)
語義分割是計算機(jī)視覺中較為基礎(chǔ)的技術(shù)之一,目的是對圖像中的每個像素根據(jù)特定的預(yù)定義類別來分配相應(yīng)的標(biāo)簽,可以看作是像素級別的分類任務(wù),但不同于圖像分類和目標(biāo)檢測,語義分割最終輸出的是帶有標(biāo)注的預(yù)測圖像,具有識別和定位的功能。近年來,隨著計算機(jī)視覺的快速發(fā)展,圖像語義分割的準(zhǔn)確度不斷提高,然而盲人導(dǎo)向[1]、自動駕駛[2]、人物識別[3]、機(jī)器人視覺[4]以及其它一些現(xiàn)實(shí)領(lǐng)域的應(yīng)用中,對語義分割的實(shí)時性提出了更高的要求,這些應(yīng)用往往具有有限的計算成本和內(nèi)存容量,并且還需要較高的準(zhǔn)確度和實(shí)時性。因此,如何設(shè)計一個可以在準(zhǔn)確度、推理速度和參數(shù)量之間達(dá)到相對平衡的實(shí)時語義分割方法,已成為當(dāng)前研究的熱點(diǎn)問題。
針對這個問題,目前已提出許多基于全卷積網(wǎng)絡(luò)(Fully Convolution Networks,FCN)[5]的實(shí)時語義分割方法。這些方法大致分為三類:
(1)優(yōu)化卷積:ENet[6]使用淺層ResNet[7]作為模型主干,并通過擴(kuò)張卷積在不增加參數(shù)量的前提下增加感受野;MobileNet[8]采用深度卷積來代替?zhèn)鹘y(tǒng)卷積提高推理速度;ERFNet[9]、ShuffleNet[10]和DABNet[11]分別通過使用一維非瓶頸結(jié)構(gòu)減少參數(shù)量、深度方向的擴(kuò)張瓶頸結(jié)構(gòu)和有效利用分離擴(kuò)張卷積的不對稱瓶頸結(jié)構(gòu)來降低計算成本,加快推理速度;
(2)結(jié)合上下文信息:CBAM[12]將通道注意力和空間注意力相結(jié)合,以獲得更準(zhǔn)確的信息;Zhao等[13]、Chen等[14]分別提出金字塔池化模塊(Pyramid Pooling Module,PPM)、空間金字塔池化模塊(Spatial Pyramid Pooling,SPP)來提取多尺度上下文信息;
(3)構(gòu)造輕量級架構(gòu):LEDNet[15]使用非對稱編碼結(jié)構(gòu),通過簡化解碼結(jié)構(gòu),減少計算量,提升分割效率;DFANet[16]構(gòu)建輕量級架構(gòu),通過特征重用加強(qiáng)特征表達(dá)能力,提高推理速度;MJPU[17]使用多級特征圖聯(lián)合上采樣的方式,有效降低網(wǎng)絡(luò)計算的復(fù)雜度,以滿足實(shí)時性需求。
上述方法在實(shí)時語義分割領(lǐng)域中已取得一定的進(jìn)展,但在準(zhǔn)確度、推理速度和參數(shù)量的平衡研究中仍具有很大的提升空間。在此基礎(chǔ)上,該文提出了一種基于高效深度瓶頸結(jié)構(gòu)的實(shí)時語義分割方法(Efficient Deep Bottleneck Structure Net,GDBNet)。通過優(yōu)化卷積,在傳統(tǒng)的瓶頸結(jié)構(gòu)上增加深度方向的分解擴(kuò)張卷積,設(shè)計出高效深度瓶頸結(jié)構(gòu)(Efficient Deep Bottleneck Structure,EDB)。這種結(jié)構(gòu)可以用較低的計算成本獲得更深層的特征信息和上下文信息。為更好地結(jié)合上下文信息,提出注意力融合連接模塊(Attention Fusion Connection Module,AFCM),在幾乎不影響分割效率的前提下,有效融合深層特征信息和淺層特征信息,彌補(bǔ)深層特征信息關(guān)于空間細(xì)節(jié)特征的不足,優(yōu)化分割結(jié)果。
主要工作如下:
(1)以構(gòu)建實(shí)時語義分割方法為目的,深入研究了瓶頸結(jié)構(gòu)、分解卷積、擴(kuò)張卷積的應(yīng)用潛力,提出一種高效深度瓶頸模塊。它可以用較少的參數(shù)量和較低的計算成本獲得多尺度特征信息和上下文信息。
(2)采用注意力融合連接模塊,從深層特征和淺層特征中自適應(yīng)選取有用的信息進(jìn)行融合,優(yōu)化分割結(jié)果。
(3)利用高效深度瓶頸模塊和注意力融合連接模塊構(gòu)建一個高效的輕量級實(shí)時語義分割方法,并且在Cityscapes和Camvid測試集上進(jìn)行一系列實(shí)驗(yàn),并與其它現(xiàn)有方法進(jìn)行對比分析,驗(yàn)證了該方法的有效性和泛化性。
為保證準(zhǔn)確率、實(shí)時性和模型復(fù)雜度三者之間的有效平衡,基于高效深度瓶頸模塊和注意力融合連接模塊,該文構(gòu)建了一個新型的淺層輕量級實(shí)時分割方法─基于高效深度瓶頸結(jié)構(gòu)的實(shí)時語義分割方法(GDBNet),整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 GDBNet網(wǎng)絡(luò)模型整體結(jié)構(gòu)
在Encoder部分,首先使用三個3×3的標(biāo)準(zhǔn)卷積來提取輸入圖像的初始特征,其中第一個3×3卷積的步長為2,用于完成第一次下采樣。為了保留更多的空間細(xì)節(jié)信息,GDBNet一共只采用了三次下采樣操作,隨后的兩次下采樣使用與ENet初始塊相同的下采樣單元執(zhí)行,即步長為2的3×3卷積和2×2最大池化進(jìn)行通道拼接實(shí)現(xiàn)。在第二次和第三次下采樣之后,將原圖分辨率為1/4和1/8的特征圖分別輸入到EDB Block1和EDB Block2中提取稠密的特征信息。為充分獲取全局信息,增加感受野,EDB Block1模塊(如圖2(a)),堆疊了3個擴(kuò)張率為2的EDB特征提取單元,EDB Block2模塊(如圖2(b)),堆疊了6個擴(kuò)張率分別為4,4,8,8,16,16的EDB特征提取單元,并且對堆疊模塊引入殘差連接,使提取的特征信息更加充分。為進(jìn)一步細(xì)化特征,采用長連接捕捉全局特征信息,并與相應(yīng)階段的輸出相連接,補(bǔ)償分辨率降低造成的信息損失。
(a)EDB Block1 (b)EDB Block2
在Decoder部分,為避免引入過多參數(shù),導(dǎo)致網(wǎng)絡(luò)實(shí)時性的降低,該文沒有使用復(fù)雜的解碼器結(jié)構(gòu),而是參考BiSeNet[18]中特征融合的思想,保留了EDB Block1輸出的淺層特征,并與兩倍上采樣后的深層特征經(jīng)過AFCM模塊進(jìn)行指導(dǎo)融合,然后通過四倍雙線性差值恢復(fù)至原始分辨率,得到最終的圖像分割結(jié)果。
近年來,有許多實(shí)時語義分割方法為構(gòu)建輕量級模型,將卷積結(jié)構(gòu)的優(yōu)化應(yīng)用于瓶頸結(jié)構(gòu)(圖3(a))、一維非瓶頸結(jié)構(gòu)(圖3(b))和深度擴(kuò)張瓶頸結(jié)構(gòu)(圖3(c))等輕量級殘差結(jié)構(gòu)的設(shè)計中。其中,瓶頸結(jié)構(gòu)利用1×1卷積先降低通道數(shù)再恢復(fù)通道數(shù)的方法,能有效降低參數(shù)量,加快推理速度,而一維非瓶頸結(jié)構(gòu)則通過1×3和3×1的分解卷積代替3×3的標(biāo)準(zhǔn)卷積來減少參數(shù)量,提升模型的效率,但固定的卷積核尺寸會導(dǎo)致以上兩種方法在層數(shù)較淺的實(shí)時分割方法中無法獲取足夠的感受野,影響分割的準(zhǔn)確度。深度擴(kuò)張卷積結(jié)構(gòu)采用深度擴(kuò)張卷積來增加感受野,卻增加了計算量,降低了推理速度?;谝陨涎芯?該文構(gòu)建高效深度瓶頸模塊作為特征提取單元(圖3(d)),其中DConv表示深度分離卷積操作,r為擴(kuò)張率,“+”為特征向量的加法操作。
(a)瓶頸結(jié)構(gòu) (b)一維非瓶頸結(jié)構(gòu) (c)深度擴(kuò)張瓶頸結(jié)構(gòu) (d)高效深度瓶頸結(jié)構(gòu)
H×W為輸入特征圖的分辨率,卷積核的尺寸為K,輸出通道數(shù)為M時,深度分解擴(kuò)張卷積和深度擴(kuò)張卷積的參數(shù)量之比,如式(1):
(1)
當(dāng)卷積核的大小為3時,深度分解擴(kuò)張卷積的參數(shù)量相較于深度擴(kuò)張卷積減少了三分之一,可見深度分解卷積操作可以大幅降低計算量。同時EDB模塊,還能通過修改擴(kuò)張率的大小,以提取不同類型的特征,在模型淺層位置可以利用小擴(kuò)張率, 關(guān)注一些局部信息,在模型深層位置可以通過大擴(kuò)張率提取比較復(fù)雜的全局特征,相較于固定卷積核尺寸的結(jié)構(gòu),不僅彌補(bǔ)了無法獲取足夠感受野的問題而且還有效降低了參數(shù)量,更能體現(xiàn)出實(shí)時性,有助于模型實(shí)現(xiàn)參數(shù)量、推理速度和準(zhǔn)確率的有效均衡。
在圖像語義分割中,深層高級語義信息和淺層空間細(xì)節(jié)信息的融合,對分割準(zhǔn)確度具有十分重要的影響。深層特征一般包含更多高度抽象的語義信息,而淺層特征一般是含有一些點(diǎn)、線、面等噪聲的等邊緣細(xì)節(jié)信息,因?yàn)閮蓚€特征之間存在較大的差異,使用簡單的concat融合得到的效果并不理想。因此,提出了注意力融合連接模塊。
如圖4所示,深層特征用h表示,淺層特征用f表示。該模塊首先將深層特征h通過平均全局池化和注意力向量提煉出深層高級語義特征A,如式(2):
圖4 注意力融合連接模塊
A=h×?1(Conv1(AvgPool(h)))
(2)
其中,?1表示Sigmoid激活函數(shù),Conv1表示卷積核為1×1的卷積操作,AvgPool表示平均池化操作。
通過高級語義特征A與淺層特征f進(jìn)行concat融合,然后利用批標(biāo)準(zhǔn)化平衡融合后的特征得到F0,如式(3):
F0=CoBnRelu((Concat(A,f)))
(3)
其中,CoBnRelu表示先經(jīng)過1×1卷積,然后進(jìn)行批量歸一化處理,最后通過Relu修正線性單元激活函數(shù)的操作,Concat表示在維度方向的融合。
將平衡后的特征F0池化為特征向量并計算權(quán)重向量F1,如式(4):
F1=?1(CRC((AvgPool(F0))))
(4)
其中,CRC表示先進(jìn)行1×1卷積,然后通過Relu激活函數(shù),最后再次經(jīng)過1×1卷積的操作。
利用權(quán)重向量F1對特征F0進(jìn)行重新加權(quán),得到最后的輸出結(jié)果M,如式(5):
M=F0+F0×F1
(5)
注意力融合連接模塊相當(dāng)于對特征進(jìn)行重新選擇組合,可以有效過濾掉淺層噪聲,彌補(bǔ)深層缺少的空間細(xì)節(jié)信息,優(yōu)化分割結(jié)果,并且該模塊整個過程中僅用到1×1的卷積操作,不會帶來過多的額外參數(shù)。
Cityscapes是目前用于語義分割的大規(guī)模數(shù)據(jù)集之一,包含了來自多個國家不同城市街道場景的5 000張精細(xì)標(biāo)注圖像并含有19個語義類別,其中訓(xùn)練集2 975張,驗(yàn)證集500張,測試集1 525張,圖像的分辨率均為1 024×2 048,另外還有20 000張粗略標(biāo)注的圖像。在該實(shí)驗(yàn)中,只使用精細(xì)標(biāo)注的圖像。
Camvid是一個從視頻序列中提取城市道路場景的數(shù)據(jù)集,并由劍橋大學(xué)公開發(fā)布。它包含了701張精細(xì)標(biāo)注的圖像并含有11個語義類別,其中訓(xùn)練集367張,驗(yàn)證集101張,測試集233張,圖像的分辨率均為720×960。
實(shí)驗(yàn)采用平均交并比(mean Intersection Over Union,mIOU)和幀速率(Frames Per Second,FPS)對模型的分割性能和推理速度進(jìn)行評估。
平均交并比:計算所有類別預(yù)測值和真實(shí)值的交集和并集之比的平均值,因其計算方便、代表性強(qiáng)等特點(diǎn),成為語義分割中表示分割準(zhǔn)確度的標(biāo)準(zhǔn)指標(biāo)。假設(shè)某數(shù)據(jù)集一共有k個類別(不包括背景色),其中i表示真實(shí)值,j表示預(yù)測值,Pij表示將i類像素預(yù)測為j類像素的總數(shù),Pji表示將j類像素預(yù)測為i類像素的總數(shù),Pii表示預(yù)測正確的像素總數(shù),平均交并比的計算公式如式(6):
(6)
幀速率:幀速率指的是畫面每秒傳輸?shù)乃俾?FPS越高說明模型處理圖像的速度越快,是衡量模型推理速度的重要指標(biāo)。假設(shè)一共有N張圖像,第i張圖像處理的時間是Ti(單位:秒),幀速率的計算公式如式(7):
(7)
GDBNet是基于pytorch框架實(shí)現(xiàn),實(shí)驗(yàn)平臺為NVIDIA GeForce RTX 3090、CUDA 11.0、pytorch1.7。在訓(xùn)練模型時,采用批量大小為8,動量為0.9,衰減權(quán)重為1e-4的小批量隨機(jī)梯度下降(SDG)算法對模型進(jìn)行優(yōu)化,并使用“ploy”學(xué)習(xí)策略(如式(8)),對學(xué)習(xí)率進(jìn)行動態(tài)調(diào)整,初始學(xué)習(xí)率為4.5e-2,最大epoch為1 000,訓(xùn)練時長約為40小時。
(8)
其中,lrrt為當(dāng)前學(xué)習(xí)率,lrinit為初始學(xué)習(xí)率,epoch 為當(dāng)前迭代次數(shù),max_epoch為最大迭代次數(shù),power默認(rèn)為0.9,并且該文沒有采用任何預(yù)訓(xùn)練參數(shù),即從頭開始訓(xùn)練網(wǎng)絡(luò)。
為減少過度擬合的風(fēng)險,提升模型的泛化性,在數(shù)據(jù)處理中使用了隨機(jī)水平反轉(zhuǎn)、隨機(jī)裁剪和隨機(jī)縮放等數(shù)據(jù)增強(qiáng)策略,且隨機(jī)因子為{0.75,1.0,1.25,1.5,1.75,2.0}。最后,實(shí)驗(yàn)將Cityscapes數(shù)據(jù)集隨機(jī)裁剪為512×1 024分辨率用于訓(xùn)練,Camvid數(shù)據(jù)集隨機(jī)裁剪為360×480分辨率用于訓(xùn)練。
通過一系列實(shí)驗(yàn)對GDBNet設(shè)計的有效性進(jìn)行驗(yàn)證,所有實(shí)驗(yàn)均在Cityscapes訓(xùn)練集上進(jìn)行,并在其驗(yàn)證集上進(jìn)行評估。為保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,所有的模型都在相同的環(huán)境中進(jìn)行訓(xùn)練和測試。
3.1.1 瓶頸結(jié)構(gòu)
為驗(yàn)證高效深度瓶頸(EDB)模塊的有效性,分別使用一維非瓶頸結(jié)構(gòu)和深度擴(kuò)張瓶頸結(jié)構(gòu)替換GDBNet中的EDB模塊。結(jié)果如表1所示,當(dāng)使用EDB模塊時,推理速度比深度擴(kuò)張瓶頸結(jié)構(gòu)高8.7 FPS,準(zhǔn)確度卻幾乎不受影響,而一維非瓶頸結(jié)構(gòu)由于無法獲取足夠的感受野,分割準(zhǔn)確度低于EDB模塊4.31百分點(diǎn),推理速度和參數(shù)量也沒有明顯提升,充分證明了EDB模塊的高效性。
表1 消融實(shí)驗(yàn)結(jié)果
3.1.2 上下文特征連接融合
為探究AFCM模塊對模型方法的影響,采用直接concat連接和利用AFCM模塊對上下文信息進(jìn)行融合的對比實(shí)驗(yàn)。結(jié)果如表1所示,使用AFCM模塊在分割準(zhǔn)確度方面提高2.35百分點(diǎn),而對模型的推理速度和參數(shù)量幾乎沒有負(fù)面影響,由此看來AFCM模塊有利于模型性能的提升。
3.1.3 編-解碼結(jié)構(gòu)
為保證網(wǎng)絡(luò)的推理速度,該文放棄了復(fù)雜的解碼器結(jié)構(gòu)。為驗(yàn)證其對分割結(jié)果的影響,在上采樣部分利用ERFNet的解碼器代替AFCM模塊進(jìn)行驗(yàn)證。結(jié)果如表1所示,由于ERFNet解碼器復(fù)雜的結(jié)構(gòu),推理速度下降了42.5 FPS,并且參數(shù)量增加了0.25 M,但準(zhǔn)確度僅提升了0.32百分點(diǎn),而該文更注重方法的推理速度和參數(shù)量,由此看來不使用編-解碼結(jié)構(gòu),更有利于性能的提升,證明了GDBNet結(jié)構(gòu)設(shè)計的合理性。
為進(jìn)一步驗(yàn)證文中方法的有效性和泛化性,采用Cityscapes數(shù)據(jù)集和Camvid數(shù)據(jù)集,在參數(shù)量、準(zhǔn)確度和推理速度三個方面與其它現(xiàn)有優(yōu)秀方法進(jìn)行比較,結(jié)果如表2、表3所示。
表2 Cityscapes數(shù)據(jù)集分割性能對比
表3 Camvid數(shù)據(jù)集分割性能對比
由表2可知,GDBNet在Cityscapes測試集上以140 FPS的推理速度取得了72.91%平均交并比的準(zhǔn)確度且參數(shù)量為0.66 M。該方法與ESPNet相比,準(zhǔn)確度和推理速度分別提高了12.61百分點(diǎn)和28 FPS,具有顯著提升,而參數(shù)量僅多了0.3 M;與增強(qiáng)非對稱卷積網(wǎng)絡(luò)EACNet相比,推理速度上升了27 FPS,參數(shù)量減少了0.44 M,雖然準(zhǔn)確度降低了1.29百分點(diǎn),但綜合來看,GDBNet表現(xiàn)更為出色;與近年來提出的CGPANet相比,在參數(shù)量、準(zhǔn)確度和推理速度上均表現(xiàn)出色。綜合對比實(shí)驗(yàn)結(jié)果可知,GDBNet在推理速度上具有明顯優(yōu)勢,優(yōu)于上述所有方法,由此可見,GDBNet相對于同類型先進(jìn)方法,在參數(shù)量、準(zhǔn)確度和推理速度之間取得了更好的平衡,具有一定的優(yōu)越性。
為證明GDBNet的泛化性,還在Camvid數(shù)據(jù)集上對GDBNet進(jìn)行性能測試,實(shí)驗(yàn)結(jié)果如表3所示。GDBNet在測試集上獲得了68.84%平均交并比的準(zhǔn)確度和143.7 FPS的推理速度,并且與其它先進(jìn)方法相比,在參數(shù)量和推理速度上取得了較大的提升,優(yōu)于表中所有方法,有力證明了該方法具有良好的泛化能力。
該文設(shè)計并提出了一種基于高效深度瓶頸結(jié)構(gòu)的實(shí)時語義分割方法,編碼器中采用高效深度瓶頸模塊,以較少的參數(shù)和較低的計算成本獲取本地和上下文信息,在解碼器中采用注意力融合連接模塊,有效引導(dǎo)淺層空間特征信息和深層語義特征信息的融合,進(jìn)一步優(yōu)化分割效果,并且無需消耗較多的計算量。為了驗(yàn)證方法的有效性,在Cityscapes和Camvid數(shù)據(jù)集上進(jìn)行了驗(yàn)證,并與其它先進(jìn)的實(shí)時語義分割方法進(jìn)行比較。
實(shí)驗(yàn)結(jié)果表明,GDBNet能夠在準(zhǔn)確度、推理速度和參數(shù)量之間取得較好平衡。在未來的工作中,將進(jìn)一步優(yōu)化高效深度瓶頸模塊和更為精細(xì)的注意力融合連接模塊,加深對小目標(biāo)和邊緣信息的提取和關(guān)注,并在不同的語義分割數(shù)據(jù)集(Mapillary Vistas、NYUv2、ADE20K等)上測試性能,從而使GDBNet更加通用和有效。