張曉慶,劉偉科
(1.山東科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,山東 青島 266590;2.山東科技大學(xué) 網(wǎng)絡(luò)安全與信息化辦公室,山東 青島 266590)
圖像語義分割對自動(dòng)駕駛[1]、機(jī)器人傳感等技術(shù)具有潛在應(yīng)用價(jià)值,通過對每個(gè)像素賦予具體意義的語義標(biāo)簽并根據(jù)語義標(biāo)簽信息分割圖像,是機(jī)器視覺中場景理解與分析的一個(gè)重要研究課題。近年來,隨著計(jì)算機(jī)軟硬件技術(shù)的快速發(fā)展,以卷積網(wǎng)絡(luò)為代表的深度學(xué)習(xí)方法取得了較大的突破。2014年,Long等[2]提出利用深度學(xué)習(xí)方法進(jìn)行圖像語義分割的網(wǎng)絡(luò)—全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional networks,F(xiàn)CN),隨后SegNet[3]、U-Net[4]、DeepLab[5]系列、ESP-Net[6]系列等先進(jìn)的語義分割網(wǎng)絡(luò)[7]相繼被提出。2015年,以U-Net為代表的編碼-解碼結(jié)構(gòu)[8]的網(wǎng)絡(luò),因?yàn)榉指顪?zhǔn)確率高而受到廣大學(xué)者的重視,但是這類網(wǎng)絡(luò)體量大、參數(shù)多,對算力的要求高。為降低算力,提高網(wǎng)絡(luò)訓(xùn)練速度,多種輕量級的語義分割網(wǎng)絡(luò)被提出,如Refine Net-LW[9]、LiteSeg[10]、PSPNet[11]、ESPNet系列[12-13],但這類網(wǎng)絡(luò)的準(zhǔn)確率相比非輕量級的網(wǎng)絡(luò)較低。針對這一問題,本研究在保證準(zhǔn)確率的前提下,以提高卷積效率、降低網(wǎng)絡(luò)參數(shù)量為目標(biāo),提出一個(gè)級聯(lián)多分枝的空洞卷積組合NG-APC模塊,通過規(guī)范空洞卷積組合中的空洞率,解決空洞卷積中出現(xiàn)的柵格問題,并結(jié)合深度可分離卷積降低網(wǎng)絡(luò)的參數(shù)量,搭建編-解碼結(jié)構(gòu)的NA-U-Net,得到一種高效的輕量級語義分割方法。
以U-Net為代表的編-解碼的卷積神經(jīng)網(wǎng)絡(luò)在分割精確度方面表現(xiàn)出色,其中U-Net中的長連接(圖1中的Concat部分)將對應(yīng)層的特征直接連接,保留了分割結(jié)果的邊界細(xì)節(jié),提高了較難分割的邊緣像素的分割準(zhǔn)確率。U-Net++[14]、Refine-Net、SegNet、Deeplab-v3+[15]等語義分割新方法中均同樣使用了編-解碼結(jié)構(gòu)。然而,編-解碼結(jié)構(gòu)網(wǎng)絡(luò)的缺點(diǎn)是卷積層數(shù)多、參數(shù)多、訓(xùn)練時(shí)間長、優(yōu)化難,不能滿足移動(dòng)端的輕量級需求。利用深度可分離卷積將卷積層通道間相關(guān)性和空間相關(guān)性的映射去耦合后分開映射,能達(dá)到同樣的卷積效果,同時(shí)參數(shù)量可以大幅降低。Xception[16]、MobileNet[17]、Shuffle-Net[18]、Squeeze-Net[19]等輕量級語義分割方法中均使用了深度可分離卷積。據(jù)此,本研究將深度可分離卷積融合到U-Net,提出XU-Net[20],其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 XU-Net結(jié)構(gòu)圖Fig. 1 XU-Net structure chart
具體地,將U-Net中的標(biāo)準(zhǔn)卷積(如圖2(a))(輸入層除外)改進(jìn)為可分離的兩步卷積結(jié)構(gòu)(如圖2(b)),首先對每一個(gè)輸入通道的特征圖做空間卷積,通過卷積核參數(shù)值的訓(xùn)練獲取一個(gè)輸入通道的特征組合,然后以通道維為單位利用1×1的小卷積核做混淆,獲取通道維的組合特征。在圖像的卷積過程中,輸入和輸出通道數(shù)通常數(shù)值較大(通常為64~1 024),因此在標(biāo)準(zhǔn)卷積中做全混淆參數(shù)量巨大,通過深度可分離卷積,在空間維(輸入通道數(shù))和通道維(輸出通道數(shù))分別做混淆操作,總參數(shù)量比標(biāo)準(zhǔn)卷積大幅降低,參數(shù)量降低幅度的比值為:
圖2 可分離卷積示意圖Fig. 2 Separable convolution diagram
(1)
其中:M為輸入通道數(shù),N為輸出通道數(shù),n2為卷積核尺寸。式(1)中左側(cè)分子表示可分離卷積的參數(shù)量,分母為標(biāo)準(zhǔn)卷積參數(shù)量。
空洞卷積[21](atrous convolution)也稱為膨脹卷積(dilated convolution),是在標(biāo)準(zhǔn)卷積核中注入空洞,將小的卷積核尺寸變大同時(shí)保持卷積的參數(shù)量不變,擴(kuò)大的幅度稱為空洞率(dilation rate)。其優(yōu)點(diǎn)是在不使用大卷積核、不增加參數(shù)量、不增加卷積深度的基礎(chǔ)上擴(kuò)大感受野,獲取更大范圍內(nèi)獨(dú)立的特征信息,可以提高對大目標(biāo)的分割準(zhǔn)確率;缺點(diǎn)是由于卷積核內(nèi)有空洞會造成采樣特征不連續(xù),形成特征漏采,即柵格問題(gridding problem)[22],且級聯(lián)的空洞卷積可能會因?yàn)楦惺芤斑^大而造成不相關(guān)目標(biāo)的特征組合。
為解決柵格問題,可通過空洞卷積的組合方式:一是不同空洞率的空洞卷積做級聯(lián);二是在多個(gè)分枝中使用不同空洞率的空洞卷積做并聯(lián)。DeepLabv3[23]中使用多分枝并聯(lián)的空洞卷積組合,稱為空間金字塔空洞卷積池化層(atrous spatial pyramid pooling,ASPP),空洞率分別為6、12、18、24,同時(shí)提出級聯(lián)的空洞卷積組合,空洞率分別為2、4、8、16;在ESPNet中使用多分枝并聯(lián)的空洞卷積組合,空洞率分別為1、2、4、8、16。后來,發(fā)現(xiàn)使用空洞率大的空洞卷積雖然能大幅擴(kuò)大感受野,但并不是感受野越大越好,因此在ESPNetv2中將空洞率更新為1、2、3、4的多分支并聯(lián);HDC網(wǎng)絡(luò)[22]為解決柵格問題使用了空洞率為1、2、3的空洞卷積級聯(lián)。
雖然通過級聯(lián)的空洞卷積組合可解決柵格問題,但對如何通過最優(yōu)的空洞卷積組合在解決柵格問題的同時(shí)又體現(xiàn)空洞卷積擴(kuò)大感受野的優(yōu)勢沒有深入研究。針對此問題,本研究提出一種并聯(lián)和級聯(lián)結(jié)合的空洞卷積組合方式,并規(guī)范了空洞率的組合,在解決柵格問題的前提下,達(dá)到感受野的最大化。
本研究提出的編-解碼結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為:在編碼部分針對空洞卷積組合結(jié)構(gòu)中的柵格問題,通過規(guī)范空洞率的組合,得到感受野最大化的級聯(lián)多分支的空洞卷積組合模塊—NG-APC模塊,通過模塊級聯(lián)構(gòu)成編碼部分;在解碼部分使用深度可分離卷積,大幅度降低了網(wǎng)絡(luò)的參數(shù)量,搭建一個(gè)輕量級的編碼-解碼結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)—NA-U-Net,并以該網(wǎng)絡(luò)為基礎(chǔ),提出一種圖像語義分割方法。
空洞卷積組合的級聯(lián)與多分支并聯(lián)兩種方式在感受野、參數(shù)量與柵格問題的解決3個(gè)方面各有所長:
1) 感受野方面。級聯(lián)的空洞卷積組合的感受野是根據(jù)級聯(lián)的層數(shù)倍數(shù)遞增,遞增速度快;多分支并聯(lián)的空洞卷積組合的感受野是多分支中感受野最大的一個(gè)分支。
2) 參數(shù)量方面。級聯(lián)的空洞卷積組合的參數(shù)量與級聯(lián)的標(biāo)準(zhǔn)卷積參數(shù)量相同,是根據(jù)級聯(lián)的層數(shù)倍數(shù)遞增;由于卷積核總數(shù)量不變,只是分成多個(gè)分支,因此多分支并聯(lián)的空洞卷積組合的參數(shù)量沒有增加。
3) 解決柵格問題方面。級聯(lián)的空洞卷積組合解決柵格問題是通過上一層的特征組合與本層卷積核的參數(shù)相連,層層擴(kuò)張,減少特征漏采;多分支并聯(lián)的空洞卷積組合解決柵格問題是通過小空洞率的特征補(bǔ)充大空洞率的特征漏采部分,但若達(dá)到完全解決柵格問題,需要使用連續(xù)的空洞率,即退化成一個(gè)大核標(biāo)準(zhǔn)卷積,失去了空洞卷積的優(yōu)勢。
基于以上分析,在解決柵格問題的前提下,為了達(dá)到感受野最大,同時(shí)兼顧參數(shù)量,本研究設(shè)計(jì)了三層的級聯(lián)與多分枝并聯(lián)結(jié)合的空洞卷積組合,模塊結(jié)構(gòu)如圖3所示。
圖3 NG-APC模塊圖Fig. 3 NG-APC module diagram
第一部分為級聯(lián)部分,為標(biāo)準(zhǔn)卷積后級聯(lián)空洞率為3的空洞卷積,第一層設(shè)計(jì)為標(biāo)準(zhǔn)卷積,因此如將第一層選用空洞卷積,會造成采樣中心點(diǎn)周圍特征被漏采,通過級聯(lián)后,這種漏采現(xiàn)象會加劇,無法做到完全去柵格;第二層設(shè)計(jì)為空洞率為3的空洞卷積,其漏采部分正好由上一層的特征組合補(bǔ)齊,獲得感受野為9的特征組合。
第二部分的多分枝并聯(lián)是在第一部分的基礎(chǔ)上進(jìn)行分組卷積,每一個(gè)采樣點(diǎn)可以采樣第一部分的感受野為9的特征組合,因此設(shè)計(jì)第一分支的空洞率為9可以做到無特征漏采,感受野為27。為了進(jìn)一步擴(kuò)大感受野,第二分支設(shè)計(jì)為空洞率為18的空洞卷積,其漏采部分的特征由第一分支補(bǔ)全,由此可以做到解決柵格問題的最大化感受野的空洞卷積組合,其感受野為45,感受野和柵格問題如圖3(b)所示。第二部分緊接激活函數(shù)和特征拼接,形成一個(gè)空洞卷積模塊。模塊為無柵格的金字塔空洞卷積組合(non-gridding atrous pyramid convolution),稱為NG-APC模塊。
NG-APC模塊在達(dá)到感受野最大化的同時(shí),采樣點(diǎn)是無重疊的,但對不同的應(yīng)用場景,并不意味著感受野越大越好,空洞率減小的同時(shí)可以提升采樣的冗余,采樣保持一定的冗余度有助于特征提取。因此模塊的層數(shù)、分支數(shù)、空洞率可以調(diào)整,但為了保證去柵格問題的空洞卷積組合,空洞率的取值應(yīng)不大于式(4)、(5)中的rmax,其中NG-APC模塊中使用的是3×3的卷積核,卷積步長為1,感受野的計(jì)算公式為:
F=(k-1)×r+1,
(2)
其中:F為感受野,k為卷積核尺寸,r為空洞率。
除了三層二分支的NG-APC模塊之外,本研究設(shè)計(jì)了普適性的NG-APC模塊:
第一部分為空洞卷積級聯(lián)。第一層為標(biāo)準(zhǔn)卷積,其中r1=1,F(xiàn)1=3;第二層為空洞卷積,r2max=3。若級聯(lián)為d層,空洞率和感受野的取值分別由公式(3)、(4)得到,即由上一層的感受野確定下一層的空洞率。
rdmax=Fd-1,
(3)
Fd=Fd-1+2rd。
(4)
第二部分為多分支并聯(lián)的空洞卷積。若為二分支,分支1的r3.1=9,F(xiàn)3.1=27;分支2的r3.2=18,F(xiàn)3.2=45。若為多個(gè)分支并聯(lián),分支數(shù)為b,輸出通道數(shù)為N,則每個(gè)分支的卷積核數(shù)量為N/b,每個(gè)分支使用不同的空洞率進(jìn)行卷積,空洞率如式(5)所示,每個(gè)分支卷積后使用Relu激活函數(shù),再將多個(gè)分支進(jìn)行特征拼接后輸出。
(5)
為了在提高網(wǎng)絡(luò)獲取圖像特征能力的同時(shí)保證較小的參數(shù)量與計(jì)算量,根據(jù)2.1節(jié),將NG-APC模塊中的標(biāo)準(zhǔn)卷積用深度可分離卷積代替,在保證網(wǎng)絡(luò)分割能力的同時(shí)可以將NA-U-Net的參數(shù)量由16.9 M降至2.35 M。
利用NG-APC模塊與深度可分離卷積搭建的編-解碼結(jié)構(gòu)的NA-U-Net的結(jié)構(gòu)如圖4所示。以該網(wǎng)絡(luò)為基礎(chǔ),提出一種輕量級的圖像語義分割方法。本方法屬于利用深度學(xué)習(xí)方法完成圖像語義分割,關(guān)鍵在于利用NA-U-Net訓(xùn)練自動(dòng)獲取圖像語義特征。在網(wǎng)絡(luò)訓(xùn)練過程中,將圖像送入網(wǎng)絡(luò),與標(biāo)簽對比后通過損失函數(shù)計(jì)算與真值的差距,通過反饋逐層調(diào)整網(wǎng)絡(luò)參數(shù),直至準(zhǔn)確率穩(wěn)定。得到精確到像素的圖像語義分割結(jié)果。
圖4 NA-U-Net結(jié)構(gòu)圖Fig. 4 Structure diagram of NA-U-Net
實(shí)現(xiàn)語義分割的NA-U-Net編碼部分由多個(gè)NG-APC模塊級聯(lián),經(jīng)過多次實(shí)驗(yàn),使用三層二分支的NG-APC模塊,根據(jù)編碼部分下采樣過程中卷積核數(shù)量倍增的特點(diǎn),修改了NG-APC模塊第三層的卷積核數(shù)量,由N/2改為N,達(dá)到卷積核倍增的結(jié)果。經(jīng)過最大池化下采樣后,恰好與編碼部分特征通道數(shù)量的要求相符。解碼部分將逐層編碼的結(jié)果與上采樣的結(jié)果連接后,經(jīng)過逐層解碼,使用XU-Net模型的解碼部分,以降低參數(shù)量與計(jì)算量,最后經(jīng)過一層Softmax分類器,完成網(wǎng)絡(luò)的設(shè)計(jì)與搭建。
為了驗(yàn)證本方法的有效性,使用Pytorch開源深度學(xué)習(xí)庫編寫代碼,利用公開的大型街景數(shù)據(jù)集—Cityscapes[24]進(jìn)行訓(xùn)練及測試。
Cityscapes數(shù)據(jù)集采集了18個(gè)城市的5 000張2 048×1 024像素的精細(xì)標(biāo)注的街景圖像,其中2 975張作為訓(xùn)練圖,500張為驗(yàn)證圖,1 525張為測試圖。數(shù)據(jù)集中的圖像是以汽車駕駛員視角拍攝的道路街景圖像,包含行人、道路、汽車等19個(gè)語義類別,加上背景,共20個(gè)類別。圖5為Cityscapes數(shù)據(jù)集中的一幅典型圖像,圖5(a)為示例原圖,圖5(b)為示例圖的語義標(biāo)簽,標(biāo)簽分類如圖5(c)所示。
圖5 Cityscapes數(shù)據(jù)集示例及分類標(biāo)簽Fig. 5 Example and classification label of Cityscaps dataset
首先使用小分辨率的圖像(512×256像素)進(jìn)行訓(xùn)練得到粗略的訓(xùn)練結(jié)果,然后提高訓(xùn)練圖像的分辨率(1 024×512像素),訓(xùn)練得到最終分類結(jié)果。初始學(xué)習(xí)率初值為0.1,逐次遞減5%;激活函數(shù)為Relu;Batch=8;Epoch=300;損失函數(shù)使用交叉熵;優(yōu)化策略使用隨機(jī)梯度下降法。使用的GPU為NVIDIA GTX 1080。評價(jià)標(biāo)準(zhǔn)使用語義分割領(lǐng)域的通用評價(jià)指標(biāo)mIoU,即圖像內(nèi)各類標(biāo)簽IoU的平均值。
NA-U-Net在Cityscapes數(shù)據(jù)集上經(jīng)過300次迭代循環(huán),與經(jīng)典的FCN-8s[2]、改進(jìn)前的U-Net[4]、先進(jìn)且輕量級的ESP-Netv2[13]以及輕量級LiteSeg[10]、RefineNet-LW[9]進(jìn)行準(zhǔn)確率與mIoU值對比,如表1所示。
表1 本文方法與其他方法在Cityscapes測試集上的準(zhǔn)確率與mIoU值對比Tab. 1 Comparison of accuracy and mIoU value cityscapes dataset between the proposed method and other methods
由表1中不同種類物體的分割結(jié)果可以看出,各類分割方法對Cityscapes測試集中背景類的物體,如天空、植被、墻、道路、轎車等特征變化小或者目標(biāo)大的物體識別準(zhǔn)確率都比較高,但對特征變化大的物體(如自行車、行人等)以及目標(biāo)小的物體(如信號燈、桿子等)識別準(zhǔn)確率差別較大。本方法對特征變化大的物體區(qū)分較好,對目標(biāo)小的物體僅次于U-Net模型,但均優(yōu)于其他輕量級的模型。另外,與輕量級的ESP-Netv2、LiteSeg以及Refine Net-LW模型相比,本方法的mIoU值分別提高了8.03%、6.75%以及5.98%,驗(yàn)證了本方法在算法準(zhǔn)確率方面的優(yōu)勢。
從表2的參數(shù)量、GFLOPs、準(zhǔn)確率(OA)對比情況可見,本方法的參數(shù)量和GFLOPs比改進(jìn)前的U-Net有大幅降低,同時(shí)還小于輕量級編-解碼結(jié)構(gòu)的Refine Net-LW、ESP-Netv2和LiteSeg方法;從準(zhǔn)確率可以看出,本方法準(zhǔn)確率達(dá)92.5%,比改進(jìn)前的U-Net高5.6%,高于三種編-解碼結(jié)構(gòu)的輕量級語義分割方法,是多種對比方法中最好的。
綜上,在Cityscapes的測試集中,本方法不僅在參數(shù)量與計(jì)算量方面具有一定的優(yōu)勢,而且分割的準(zhǔn)確率與mIoU也高于經(jīng)典的FCN-8s、U-Ne與輕量級編-解碼結(jié)構(gòu)的Refine Net-LW、ESP-Netv2和LiteSeg。
為了更細(xì)致地展示分割效果,在Cityscapes數(shù)據(jù)集里選取兩張具有代表性的圖像jena_000110_000019_leftImg8bit(用原圖1表示)和jena_000070_000019_leftImg8bit(用原圖2表示),并分別給出U-Net、ESP-Netv2、LiteSeg、Refine Net-LW以及NA-U-Net的語義分割效果如圖6。原圖1(圖6(a))為街景中的典型圖像,包含建筑物、道路、轎車、自行車、騎手、植被等。原圖2(圖6(c))為街景中較少出現(xiàn)的特殊場景,不僅包含典型場景中建筑物、人群、汽車,還包括特殊著裝的消防員與特殊車輛消防車,有柵欄、特征復(fù)雜的廣告墻以及標(biāo)識牌。通過兩幅圖像的實(shí)驗(yàn)說明本方法在典型圖像和非典型圖像中的分割效果。
圖6 U-Net、ESP-Netv2、LiteSeg、RefineNet-LW以及NA-U-Net方法的分割效果圖Fig. 6 Segmentation results of U-Net、ESP-Netv2、LiteSeg、RefineNet-LW and NA-U-Net
由分割效果圖6(e)~6(n)可以看出:
1) 本方法對自行車、騎手、轎車的分割結(jié)果明顯優(yōu)于其他方法,尤其是對樹木和騎手雙腳的輪廓分辨較為清晰;
2) 各方法對特殊著裝的消防員識別結(jié)果差距較大,本方法對近處消防員以及較遠(yuǎn)處的行人分割準(zhǔn)確,對遠(yuǎn)處4個(gè)行人的分割精度甚至超過了標(biāo)簽;
3) 各方法對桿子、柵欄等分割準(zhǔn)確度較低;
4) 所有方法均將消防車識別為貨車。
產(chǎn)生結(jié)果1)、2)的原因是NG-APC模塊在擴(kuò)大感受野的同時(shí),解決了柵格問題,提高了卷積的效率,更好地獲取了圖像的特征;產(chǎn)生結(jié)果3)的原因是擴(kuò)大感受野對目標(biāo)小的物體分割效果不明顯;產(chǎn)生結(jié)果4)的原因是標(biāo)簽中沒有設(shè)置消防車類別,所以所有方法均將消防車識別為貨車,說明標(biāo)簽的準(zhǔn)確性直接影響分割結(jié)果的準(zhǔn)確性。選取圖像中不同種類的物體邊界分割清晰。
表3為本文方法在Cityscapes數(shù)據(jù)集上部分?jǐn)?shù)據(jù)測試結(jié)果的準(zhǔn)確率與mIoU值的情況, 從表3可見:分割方法整體的mIoU值分別為73.8%和67.7%,其中,對道路、建筑物、植被的分割效果較好,但是桿子的識別準(zhǔn)確率較低,說明本文方法對易混淆物體的準(zhǔn)確率仍有待提高。
表3 本文方法在Cityscapes數(shù)據(jù)集上部分?jǐn)?shù)據(jù)測試結(jié)果的準(zhǔn)確率與mIoU值Tab. 3 The accuracy and mIoU value of test results with part of data of Cityscaps by this thesis method
本研究首先通過規(guī)范空洞卷積組合中的空洞率,在解決空洞卷積組合中的柵格問題同時(shí)保證感受野最大化,并設(shè)計(jì)了一種級聯(lián)多分支的空洞卷積組合模塊,然后結(jié)合深度可分離卷積搭建了編-解碼結(jié)構(gòu)的NA-U-Net網(wǎng)絡(luò),基于該網(wǎng)絡(luò),提出了一種輕量級的圖像語義分割方法。通過在Cityscapes數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)驗(yàn)證,該網(wǎng)絡(luò)mIoU達(dá)73.73%,OA達(dá)92.5%;參數(shù)量僅為2.35 M,小于多種輕量級卷積神經(jīng)網(wǎng)絡(luò)。結(jié)果表明本方法是一種輕量且高效的圖像語義分割方法。雖然本文方法在參數(shù)量與計(jì)算量方面有一定幅度的降低,但是仍有下降的空間,將進(jìn)一步進(jìn)行網(wǎng)絡(luò)輕量級方面的研究。