程曉悅,趙龍章,胡 穹,史家鵬
(南京工業(yè)大學(xué) 電氣工程與控制科學(xué)學(xué)院,南京 211816)
隨著圖像語義識別技術(shù)的發(fā)展,語義分割越來越廣泛地被應(yīng)用到日常生活及工業(yè)生產(chǎn)中,如地質(zhì)檢測、無人駕駛汽車、面部分割等。研究者將其與深度學(xué)習(xí)相結(jié)合,提出了一系列新的語義分割方法。
文獻(xiàn)[1]提出了基于深度學(xué)習(xí)的全卷積網(wǎng)絡(luò)(FCN)語義分割方法,文獻(xiàn)[2-4]使用該方法對AlexNet、VGG16、GoogleNet等網(wǎng)絡(luò)進(jìn)行了修改,并將網(wǎng)絡(luò)后端的全連接層移除,改用反卷積層進(jìn)行上采樣,并引入跳躍連接改善了上采樣的粗糙像素定位。文獻(xiàn)[5-6]將池化結(jié)果應(yīng)用到譯碼過程,在網(wǎng)絡(luò)中引入了更多的編碼信息,發(fā)現(xiàn)激活層越多,取得的圖像語義分割效果越好。文獻(xiàn)[7]將U-Net的編碼器的每層結(jié)果拼接到譯碼器中,改善了語義分割結(jié)果。文獻(xiàn)[8]在擴(kuò)張卷積網(wǎng)絡(luò)中提出了“上下文模塊”用來聚合多尺度信息,避免了池化導(dǎo)致的信息損失,同時擴(kuò)大了感受野。文獻(xiàn)[9]在RefineNet網(wǎng)絡(luò)中采用ResNet-101作為網(wǎng)絡(luò)編碼模塊,并使用RefineNet block作為譯碼模塊,該模塊融合了編碼模塊的高分辨率特征及前一RefineNet block的抽象特征,所有模塊遵循殘余連接設(shè)計?;诳煞蛛x殘差的網(wǎng)絡(luò),將殘差連接與深度可分離卷積相結(jié)合,在保持分割精度的同時降低了參數(shù)量[10]。文獻(xiàn)[11]提出了Large Kernel Matters網(wǎng)絡(luò),即使用大卷積核的編碼-譯碼網(wǎng)絡(luò)架構(gòu),將ResNet[12]作為編碼器,GCN及反卷積作為譯碼器。文獻(xiàn)[13]在Deeplab v3網(wǎng)絡(luò)中提出了暗黑(即空洞卷積)空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP),融合了不同尺度的信息。Deeplab v3網(wǎng)絡(luò)對ASPP模塊進(jìn)行串行部署,將不同膨脹率的空洞卷積結(jié)果拼接起來,并使用了批量歸一化(BN)。它與擴(kuò)張卷積網(wǎng)絡(luò)的不同之處在于,Deeplab v3直接對中間的特征而非最后的特征進(jìn)行膨脹卷積,在輕量級網(wǎng)絡(luò)架構(gòu)中,對前后文進(jìn)行特征自適應(yīng)加權(quán)融合,有效提高了分割精度[14]。同時,為提高小類物體的預(yù)測精度,DeepLab v3基于FCN的模型采用了加權(quán)交叉熵?fù)p失函數(shù)和自適應(yīng)閾值方法[15]。DeepLab v3 plus[16]網(wǎng)絡(luò)對DeepLab v3網(wǎng)絡(luò)進(jìn)行了擴(kuò)展,加入了簡單而有效的解碼器模塊來細(xì)化分割結(jié)果,特別是在對象邊界上。此外,這種編碼器-解碼器結(jié)構(gòu)可以通過無卷積的方法任意控制提取的編碼器特征的分辨率,從而在精度和運(yùn)行時間之間進(jìn)行權(quán)衡。雖然目前已出現(xiàn)了許多圖像語義分割網(wǎng)絡(luò),但在分割復(fù)雜的場景中難以兼顧分割速度與精度。有些網(wǎng)絡(luò)在精度上滿足分割要求,但是網(wǎng)絡(luò)龐大的參數(shù)量與過多的冗余降低了分割速度,還有些網(wǎng)絡(luò)分割速度較快,但是精度往往難以滿足應(yīng)用要求。
全卷積神經(jīng)網(wǎng)絡(luò)(FCN)將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于語義分割,將卷積神經(jīng)網(wǎng)絡(luò)最后的全連接層替換成卷積層,對圖像進(jìn)行像素級分類,解決了語義層面上的分割問題,并且可以接受任意大小的輸入。將分類網(wǎng)絡(luò)AlexNet、VGG、GoogleNet進(jìn)行調(diào)整,去掉網(wǎng)絡(luò)中的全連接層,使其變?yōu)镕CN,并定義了skip結(jié)構(gòu),該結(jié)構(gòu)將深層、粗糙層的語義信息與淺層、精細(xì)層的外觀信息相結(jié)合,進(jìn)行準(zhǔn)確詳細(xì)的分割[1]。FCN為后續(xù)以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的語義分割模型奠定了重要基礎(chǔ)。
傳統(tǒng)分割網(wǎng)絡(luò)難以兼顧速度與精度。例如,Deeplab網(wǎng)絡(luò)在數(shù)據(jù)集Cityscapes上的分割精度MIOU為63.1%,用時為400 ms,速度遠(yuǎn)未達(dá)到實時分割的要求。ENet[17]分割網(wǎng)絡(luò)用時僅13 ms,但分割精度MIOU只有58.3%。本文的分組卷積將傳統(tǒng)卷積的通道分組[18],如傳統(tǒng)卷積通道數(shù)為6,卷積核為7×7,則復(fù)雜度為6×7×7×6=1 764,而分組卷積的復(fù)雜度為3×(2×7×7×2)=588,將復(fù)雜度降低了2/3,并且沒有特征損失。由此可見,相比傳統(tǒng)網(wǎng)絡(luò),分組卷積有效降低了參數(shù)復(fù)雜度,同時大幅提高了分割速度,可實現(xiàn)實時分割,如圖1所示。
圖1 傳統(tǒng)卷積與分組卷積示意圖
圖2為本文特征提取網(wǎng)絡(luò)的初級網(wǎng)絡(luò)結(jié)構(gòu),在1×1和3×3卷積處將原來的常規(guī)卷積替換為分組卷積。在網(wǎng)絡(luò)中,輸入通道分組為N,那么卷積核也需要分為N組,每組卷積核只與對應(yīng)的特征映射做卷積,得到輸出。
圖2 初級網(wǎng)絡(luò)結(jié)構(gòu)示意圖
語義分割網(wǎng)絡(luò)的性能提升主要依賴于網(wǎng)絡(luò)深度的增加,即增加特征提取網(wǎng)絡(luò)的層數(shù),但這種做法在小幅提升精度的同時,卻延長了分割時間。本文特征提取網(wǎng)絡(luò)受到GoogleNet啟發(fā),將一路網(wǎng)絡(luò)傳播改為兩路傳播[19]。為了提升分割效果,網(wǎng)絡(luò)需要獲得多尺度信息,因此網(wǎng)絡(luò)的卷積核大小也設(shè)置為兩種。密集層分為兩路:一路為獲得小尺度目標(biāo),使用一個3×3卷積;另一路為獲得大尺度目標(biāo),采用兩個3×3卷積,通道數(shù)為K。密集層結(jié)構(gòu)如圖3所示。
圖3 密集層結(jié)構(gòu)示意圖
結(jié)合1.2節(jié)分組卷積,得到網(wǎng)絡(luò)結(jié)構(gòu),如圖4所示。
圖4 加入密集層的網(wǎng)絡(luò)結(jié)構(gòu)
為了提高網(wǎng)絡(luò)的分割速度,本文使用輕量級網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò),但是在精度上有一定損失。為了減少精度損失,在本文網(wǎng)絡(luò)中加入了注意力模塊[20]。注意力特征有助于增強(qiáng)模型的特征表達(dá)[21],綜合不同信息,提高模型的理解能力[22]。這與人類視覺的注意力機(jī)制類似。人類視覺注意力機(jī)制分為兩種:自下而上的基于數(shù)據(jù)驅(qū)動的注意力機(jī)制,自上而下的基于任務(wù)驅(qū)動的目標(biāo)注意力機(jī)制。兩種機(jī)制都可以從大量的數(shù)據(jù)中學(xué)習(xí)到任務(wù)需要的部分。本文采用的是自下而上的基于數(shù)據(jù)驅(qū)動的注意力機(jī)制,注意力模塊從特征通道之間的關(guān)系出發(fā),考慮特征通道間的相互依賴因素,通過網(wǎng)絡(luò)的自學(xué)習(xí),有效抑制對當(dāng)前分割作用影響不大的特征,增強(qiáng)有益特征的權(quán)重[23]。注意力模塊首先對每個通道的特征映射進(jìn)行全局平均池化,得到1×1×K的向量,再進(jìn)行兩次FC層轉(zhuǎn)換,為抑制模型復(fù)雜度分別在兩次FC層轉(zhuǎn)換間進(jìn)行降維和升維,類似于一個“瓶頸”,并使用Sigmoid與ReLU激活函數(shù),添加了注意力模塊的特征提取網(wǎng)絡(luò)如圖5所示。
圖5 加入注意力模塊的特征提取網(wǎng)絡(luò)
在注意力模塊中,首先使用全局平均池化,將從密集層輸出的數(shù)據(jù)由W×H×K收縮為1×1×K,具體公式如下:
在“互聯(lián)網(wǎng)+”新時代,高校固定資產(chǎn)管理工作正在實現(xiàn)與時俱進(jìn)的自我突破,正如本文所言,它已經(jīng)在積極主動融入“互聯(lián)網(wǎng)+功能包圖”模式以及“互聯(lián)網(wǎng)+功能數(shù)據(jù)”統(tǒng)計管理模式,希望以此來提高高校在新時代的固定資產(chǎn)的管理與統(tǒng)計水平,迎合當(dāng)前教育改革機(jī)制發(fā)展變化,實現(xiàn)長期穩(wěn)定辦校。
(1)
其中,Fsq表示全局平均池化函數(shù)。
接下來對網(wǎng)絡(luò)進(jìn)行兩次FC操作,C代表降維系數(shù),可以根據(jù)具體網(wǎng)絡(luò)調(diào)整,本文實驗C=16時獲得最佳性能,公式如下。
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
(2)
其中,σ、δ分別代表Sigmoid、ReLU激活函數(shù)。
然后進(jìn)行scale操作,基于通道數(shù)不變,將數(shù)據(jù)變?yōu)閃×H×K。
Xc=Fscale(uc,sc)=sc·uc
(3)
網(wǎng)絡(luò)在加入注意力模塊前,對于batch為256、224×224的輸入圖片,一次前向傳播需要42 ms,加入注意力模塊后,則需要47 ms,通過降維-升維降低復(fù)雜度后仍有時間增加,但相比分割精度的提升而言可以忽略。
最后,網(wǎng)絡(luò)的每層通過跳躍連接[24]相連,本文跳躍連接有兩點(diǎn)和DenesNet不同。一是DenesNet只在下采樣之間的block中有連接,本文則所有層中都存在連接;二是在池化方式上,本文采用了空洞空間金字塔池化(ASPP),ASPP提供了多尺度信息的模型,是在空間金字塔池化(SPP)的基礎(chǔ)上添加了具有不同擴(kuò)張率的空洞卷積,用來捕獲大范圍語境,通過全局平均池化(GAP)結(jié)合圖像特征增加全局語境。共包括4個并行操作、一個1×1的卷積和3個3×3的卷積,并加入了批量歸一化。本文網(wǎng)絡(luò)跳躍連接示意圖如圖6所示。
圖6 本文網(wǎng)絡(luò)跳躍連接示意圖
本文實驗數(shù)據(jù)采用圖像分割的基準(zhǔn)測試數(shù)據(jù)集Cityscapes[25]和ADE20K[26]。Cityscapes數(shù)據(jù)集由奔馳公司發(fā)布,包括25 000張圖像,其中5 000張精細(xì)標(biāo)注,20 000張粗略標(biāo)注,包含50個城市的背景、街景、人、車輛、地面、交通標(biāo)志等30類物體的標(biāo)注。ADE20K是MIT推出的可以用于分割、識別、場景感知及語義理解的數(shù)據(jù)集。有較為豐富的場景種類和詳細(xì)的標(biāo)記,共含有150個對象和類別。其中20 210張圖片用于訓(xùn)練,2 000張圖片用于驗證,測試集有3 000張圖片。數(shù)據(jù)庫部分圖片如圖7所示。
圖7 數(shù)據(jù)庫部分圖片
pii表示分割正確的數(shù)量(稱為真正);pij表示本來像素是屬于i類,但是被分割為j類的數(shù)量(稱為假正);pji表示本來像素是屬于j類,但是被分割為i類的數(shù)量(稱為假負(fù))。共有k+1個類別(包括k類及一個空類或背景類)。
像素精度(PA)是語義分割最簡單的精確度度量,表示標(biāo)記正確的像素占總像素的比例。
(4)
均像素精度(MPA)是PA的簡單提升,計算在每個類內(nèi)被正確分割的像素比例,再求所有類別的平均值。
(5)
平均像素交并比(MIOU)是語義分割技術(shù)的度量標(biāo)準(zhǔn),計算兩集合的交集與并集之比。在每個像素類別內(nèi)計算IOU,然后再計算平均值。
(6)
直觀理解MIOU的評定方式如圖8所示,圖中深色部分代表真實像素值,淺色區(qū)域代表分割像素值,交集處代表像素分割正確的部分。
圖8 MIOU評定方式直觀圖
鑒于MIOU的簡潔、代表性強(qiáng),因此本文研究性能評定根據(jù)MIOU來衡量。
本文所有實驗在TensorFlow1.9框架下搭建,使用cuDNN7.5內(nèi)核計算,工作站配置Intel?Core TM i7-6800K CPU@3.4 GHz,GTX 1080Ti顯卡,內(nèi)存128 GB,8張GTX1070顯卡。訓(xùn)練時batch大小為256,設(shè)置初始學(xué)習(xí)率為0.01,學(xué)習(xí)率衰減為10-6,使用Nesterov動量[27]。初始化方法為VarianceScaling[28],能根據(jù)權(quán)值尺寸調(diào)整規(guī)模,激活函數(shù)使用softplus。圖9為在Cityscapes數(shù)據(jù)集上的分割效果圖。
圖9 在Cityscapes數(shù)據(jù)集上的測試結(jié)果
確定本文模型的過程如下:首先在18層特征提取網(wǎng)絡(luò)中加入密集層,發(fā)現(xiàn)網(wǎng)絡(luò)分割性能相比原始18層網(wǎng)絡(luò)有一定提升,繼而又加入了注意力模塊,得到了較好的分割效果,但速度還不能滿足實時要求。為了獲得更好的分割性能,并得到較快的分割速度,逐層添加特征提取網(wǎng)絡(luò),觀察特征提取網(wǎng)絡(luò)層數(shù)對精度和速度的影響,最終確定采用5層特征提取網(wǎng)絡(luò)結(jié)構(gòu),能將分割性能與速度均維持在較高水平。在實驗中首先用數(shù)據(jù)集Cityscapes進(jìn)行分割,得到如表1所示結(jié)果,為了驗證表1結(jié)果的有效性,在ADE20K數(shù)據(jù)集上再次進(jìn)行驗證,發(fā)現(xiàn)表1中5層特征提取網(wǎng)絡(luò)的結(jié)果較佳,于是最終確定了本文網(wǎng)絡(luò)模型。
表1 本文實驗網(wǎng)絡(luò)層數(shù)與分割性能
在分割精度上,選取多類物體的分割精度結(jié)果進(jìn)行對比,如圖10所示,實線為本文方法。其對建筑物、柱子、植被、人、小汽車、火車的分割精度分別達(dá)到了93.5%、67.9%、93.9%、87.3%、96.2%、86.5%,明顯高于其他分割網(wǎng)絡(luò)。為了公平進(jìn)行實驗對比,在相同的實驗配置下,使用不同的分割模型對Cityscapes數(shù)據(jù)集及ADE20K數(shù)據(jù)集進(jìn)行分割,得到的對比數(shù)據(jù)見表2與表3。表2為在Cityscapes數(shù)據(jù)集下的分割結(jié)果,可以看到本文網(wǎng)絡(luò)的分割精度達(dá)到81.5%,優(yōu)于其他網(wǎng)絡(luò),分割時間為47 ms,僅次于ENet的13 ms,但分割精度遠(yuǎn)高于ENet。表3為在ADE20K數(shù)據(jù)集下分割結(jié)果的數(shù)據(jù)對比,可以看到,在相同的實驗環(huán)境下,本文網(wǎng)絡(luò)將輸入圖片剪裁為576×576,相比其他模型在分割速度上有很大優(yōu)勢,在分割精度上也不低于其他網(wǎng)絡(luò)。
圖10 各種網(wǎng)絡(luò)分割精確度對比Fig.10 Comparison of segmentation accuracy of variousnetworks
表2 各方法在Cityscapes數(shù)據(jù)集下精度與速度對比
表3 ADE20K數(shù)據(jù)集下分割精度與速度對比
圖11為在數(shù)據(jù)集ADE20K上,采用ResNet-50、ResNeXt-50、PSPNet(50)及本文方法進(jìn)行的實驗對比結(jié)果,可以看到本文模型相比其他3種模型,訓(xùn)練損失較少。
圖11 不同方法的訓(xùn)練損失
本文提出一種基于密集層和注意力機(jī)制的網(wǎng)絡(luò)層,并作為快速語義分割的特征提取網(wǎng)絡(luò)。通過分組卷積減少網(wǎng)絡(luò)參數(shù),并加入注意力模塊,在保證不損失分割精度的前提下,大幅提高網(wǎng)絡(luò)的分割速度,滿足快速語義分割的應(yīng)用要求。今后將嘗試在不同尺度上進(jìn)行語義分割,提高對細(xì)小物體的分割精度。