李 軒,孫昕楠
(沈陽航空航天大學(xué) 電子與信息工程學(xué)院,沈陽 110136)
圖像分割是早期處理圖像數(shù)據(jù)最基本的方法之一。語義分割(Semantic segmentation)又稱為圖像標(biāo)注,是對每一個像素點進(jìn)行分類和語義標(biāo)簽[1],利用網(wǎng)絡(luò)模型對圖像進(jìn)行多維度的特征提取,對像素點進(jìn)行描述并且利用特征組織方法,根據(jù)每個像素點所屬類別的概率來逐像素預(yù)測語義標(biāo)簽,具體如圖1所示。而在計算機視覺領(lǐng)域中,圖像分割是這個領(lǐng)域中具有挑戰(zhàn)意義的分支,其目標(biāo)區(qū)域為具有相似語義特征的連續(xù)區(qū)域,通過標(biāo)簽來表示像素與目標(biāo)之間存在的關(guān)系,并且需要對語義上屬于不同對象的區(qū)域進(jìn)行進(jìn)一步提取。
圖1 圖像語義分割
如今的計算機視覺領(lǐng)域包含了目標(biāo)檢測、語義分割、姿態(tài)估計等分支,每個分支都包括對圖像信息的獲取、處理、分析等任務(wù);而對圖像信息的采集方式有很多,比如相機的拍攝、視頻的截取、醫(yī)療器械的多維圖像采集等。圖像分割可以分為兩大部分:識別和分割,研究人員從物體、類別和背景三個層次[8]對其難點作了總結(jié)。圖像分割是支撐圖像理解的支柱,并且應(yīng)用在其他各個領(lǐng)域之中,如無人駕駛系統(tǒng)、智能機器人、衛(wèi)星遙感圖像分析等。
圖像分割對于計算機視覺來說是一個主要的研究領(lǐng)域,諸多研究員為了突破這個領(lǐng)域不斷提出新的圖像分割算法。這些算法基本上可以分為兩類:(1)概率型;(2)深度學(xué)習(xí)。在深度學(xué)習(xí)之前,傳統(tǒng)的圖像分割方式都是通過概率圖模型來構(gòu)建條件隨機場,之后再對圖像進(jìn)行一系列分割。但傳統(tǒng)的算法并不能滿足日益增加的圖像分割需求,近年來神經(jīng)網(wǎng)絡(luò)熱度不斷地增加,基于這兩者的圖像分割算法也逐漸出現(xiàn)。在這個十分具有挑戰(zhàn)意義的領(lǐng)域,研究者們創(chuàng)辦了一個視覺識別挑戰(zhàn)賽(image net large-scale visual recognition challenge,ILSVRC)[9],同時也成為測試神經(jīng)網(wǎng)絡(luò)的平臺,這使得深度學(xué)習(xí)在計算機視覺領(lǐng)域得到了迅速發(fā)展。
FCN(fully convolutional network)[2]網(wǎng)絡(luò)的提出為語義分割之后的發(fā)展打下了一個堅實的基礎(chǔ)。FCN利用CNN來實現(xiàn)端對端訓(xùn)練,其對輸入圖像的尺寸沒有限制,并且能夠產(chǎn)生像素級別輸出,分類之后再通過上采樣將分類結(jié)果映射到原圖像大小,產(chǎn)生密集的像素級別標(biāo)簽,從而獲得語義分割結(jié)果。FCN網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
但利用FCN模型分割出的圖像并不夠精細(xì),之后研究人員相繼提出了一些改進(jìn)模型,例如:U-Net[3],SegNet[4],RefineNet[5],PSPNet[6],GCN[7],Deeplab系列[9-11]。如今圖像分割方法通?;诰矸e神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化改進(jìn),從而多尺度卷積核、多尺度輸入和多尺度池化等多尺度網(wǎng)絡(luò)[10-12]被相繼提出。
圖2 FCN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
目前,語義分割領(lǐng)域主要通過增加網(wǎng)絡(luò)層數(shù)、增加網(wǎng)絡(luò)復(fù)雜度提升網(wǎng)絡(luò)分割精度,或者通過減少參數(shù)量、降低網(wǎng)絡(luò)復(fù)雜度提升網(wǎng)絡(luò)效率[12]。本文針對傳統(tǒng)神經(jīng)網(wǎng)絡(luò)在圖像分割中存在的問題,提出將卷積網(wǎng)絡(luò)、空洞卷積與多尺度提取相結(jié)合的改進(jìn)方式來提升圖像分割的效果。
空洞卷積[13](atrous convolutions)又名擴張卷積(dilated convolutions),是一種采集數(shù)據(jù)信息的方式,該結(jié)構(gòu)的目的是在不用池化操作(不損失分辨率)且計算量相當(dāng)?shù)那闆r下,提供更大的感受野。
圖3 不同擴張率的空洞卷積
圖3a表示擴張率為1的空洞卷積,感受野為普通卷積,圖3b表示擴張率為2的空洞卷積,感受野為7×7(Stride=2),圖3c表示擴張率為3的空洞卷積,感受野為15×15。
(1)
其中,ri表示第i層的感受野邊長,l表示擴張率。
擴張率為2的空洞卷積與3個3×3卷積核串聯(lián),兩者都能夠獲得7×7的感受野,然而空洞卷積是在不增加參數(shù)量的情況下使卷積的感受野變大,也就是說空洞卷積擁有更大的感受野。本文使用空洞卷積提升網(wǎng)絡(luò)中特征圖像的分辨率,通過將不同卷積層得到的特征進(jìn)行合并,使合并后的特征圖含有的信息更加多樣化。
卷積神經(jīng)網(wǎng)絡(luò)被廣泛用于圖像處理領(lǐng)域中[15-16],本文以Karen等人[14]提出的VGG-16卷積網(wǎng)絡(luò)為基礎(chǔ),將其網(wǎng)絡(luò)全連接層替換成卷積層,上采樣過程則是利用up-sample獲得分割圖像,但是由于細(xì)節(jié)信息不能完全恢復(fù),所以會導(dǎo)致輸出結(jié)果的準(zhǔn)確率不高。
本文通過對VGG網(wǎng)絡(luò)進(jìn)行改進(jìn),利用空洞卷積增大感受野,并且通過跳躍結(jié)構(gòu)使網(wǎng)絡(luò)能夠融合多尺度的信息,加入豐富的特征信息,實驗證明本文網(wǎng)絡(luò)能夠提高像素級分類的準(zhǔn)確率。將空洞卷積與跳躍結(jié)構(gòu)結(jié)合形成的卷積塊如圖4所示。
圖4 空洞卷積塊
空洞卷積模塊由空洞(Atrous)卷積和1×1卷積組成。每個模塊可分為由空洞(Atrous)卷積跟著BN層以及Relu層和1×1卷積。神經(jīng)網(wǎng)絡(luò)會因網(wǎng)絡(luò)變深帶來梯度爆炸和網(wǎng)絡(luò)性能降低等問題,為了解決這個問題并更好地利用不同層之間的特征信息,研究人員提出了殘差神經(jīng)網(wǎng)絡(luò)[17],主要是利用了殘差學(xué)習(xí)。所以本文引入了殘差學(xué)習(xí)中的跳躍結(jié)構(gòu),并引入空洞卷積來解決特征圖分辨率太低的問題,彌補了FCN網(wǎng)絡(luò)圖像細(xì)節(jié)較差的缺點。
針對分割精度的問題,本文提出了多尺度特征提取的網(wǎng)絡(luò)結(jié)構(gòu)。為提升分割精度,設(shè)計了兩種卷積并行的采樣模塊,充分利用其學(xué)習(xí)能力和學(xué)習(xí)效率。特征提取過程如圖5所示,并且每個卷積層之后都會用Relu函數(shù)和BN層,但最后的卷積層沒有Relu函數(shù)和BN層,特征圖通過Pooling操作,若除不開則向上取整。由此將卷積塊和空洞卷積塊提取出來的不同特征進(jìn)行融合,能夠?qū)W(wǎng)絡(luò)精度有所提升。
圖5 網(wǎng)絡(luò)的特征提取結(jié)構(gòu)
本文的激活函數(shù)為Relu函數(shù),將經(jīng)過Pooling2之后的輸出特征圖分別送入到有3個連續(xù)的3×3卷積的分支和空洞卷積模塊的分支中,特征信息通過這兩個分支都會生成不同的特征圖,并將這兩個不同的輸出特征圖進(jìn)行concat操作,之后重復(fù)以上操作。在空洞卷積模塊中空洞卷積選用的擴張率為2,并結(jié)合了跳躍連接,使采樣更加密集,網(wǎng)絡(luò)由此進(jìn)行了多尺度的特征提取與融合。根據(jù)公式(1)和(2)可知,特征圖在本文使用的擴張率為2的空洞卷積的感受野為7×7,圖像經(jīng)過3個連續(xù)的3×3卷積后的輸出尺寸滿足寬高的匹配,從而最大化提取有效特征進(jìn)行融合。在信息提取的過程中,不同的卷積分支提取的信息也不相同,Concat操作能夠?qū)蓚€及以上同等大小的特征圖進(jìn)行拼接,達(dá)到特征融合、促進(jìn)信息傳播的作用。特征提取之后利用Up-sample對特征進(jìn)行尺寸的恢復(fù),Up-sample是反卷積的過程,通過這個步驟來將輸出的特征圖像恢復(fù)到原輸入圖像的大小,以實現(xiàn)像素級的語義分割。
在網(wǎng)絡(luò)中,通過卷積層來對圖像進(jìn)行特征提取,并利用空洞卷積增大感受野。Fout表示經(jīng)過卷積層后的輸出圖像尺寸,F(xiàn)in表示經(jīng)過卷積層前的輸入圖像尺寸,P表示Padding,k為卷積核大小,s為卷積核步長。
(2)
(3)
每個卷積層的輸入圖像的尺寸為H×W×C,其中H與W分別表示圖像的高與寬、C為通道數(shù)、Wi為第i層卷積核的權(quán)重、bi為第i層卷積核的權(quán)重偏置、Xi為第i層卷積核的輸入,f為激活函數(shù)、則第i層的輸出Y的公式為:
Y=f(Wi×Xi+bi)
(4)
本文網(wǎng)絡(luò)中使用了1×1卷積核、3×3卷積核和擴張率為2的空洞卷積來抓取不同尺度的信息。網(wǎng)絡(luò)有一個分支只有3×3卷積核對輸入進(jìn)行信息的抓取,特征圖在經(jīng)過Pooling之后會降維為原來的1/2。在另一個分支采用了擴張率為2的空洞卷積、1×1卷積核和跳躍結(jié)構(gòu),其中擴張率為2的空洞卷積在分支上增加網(wǎng)絡(luò)的感受野提取特征,之后使用1×1卷積核恢復(fù)維度再進(jìn)行學(xué)習(xí),以此來抓取不同尺度的圖像信息。本文算法提出,由不同卷積提取到的多尺度特征在通道維度上進(jìn)行拼接,這之后再使用反卷積,通過這種操作為網(wǎng)絡(luò)提供了更具價值的上下文信息和全局信息,更加有效地利用多尺度的特征信息,其網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 網(wǎng)絡(luò)結(jié)構(gòu)
Up-sample是對卷積抓取到的特征進(jìn)行逐層上采樣操作,將提取的語義特征層映射,恢復(fù)為原尺寸大小的語義分割圖。在上采樣過程中,傳統(tǒng)的全卷積神經(jīng)網(wǎng)絡(luò)只對最終映射結(jié)果進(jìn)行上采樣,以得到與輸入大小相同的圖像,但會忽略一些具有一定的表征能力的信息。特征的融合是通過對不同卷積抓取到的信息進(jìn)行連接來實現(xiàn)的。對Conv6層采用大小為1的卷積核進(jìn)行卷積,以獲得N通道的特征圖Conv7層,其中N為類別數(shù)。然后對Conv7層進(jìn)行上采樣,獲得Up1層將通過Conv5層與卷積所得的特征信息與Up1層沿特征維進(jìn)行堆疊,獲得Up2層。最終獲得的Up6層融合了3個層次的特征,尺寸與輸入圖像相同,分割是通過對每個像素的特征向量計算類別概率產(chǎn)生的。為了更好地利用這些信息,網(wǎng)絡(luò)通過空洞卷積塊將多尺度信息與相對應(yīng)up-sample后的信息進(jìn)行特征融合,使上下文信息能夠傳播到更高的分辨率層,強化網(wǎng)絡(luò)的特征學(xué)習(xí)能力,提高網(wǎng)絡(luò)分割的準(zhǔn)確率。
本文實驗?zāi)康氖球炞C所提出的利用不同卷積核進(jìn)行多尺度信息抓取方式對準(zhǔn)確性的提升是否有幫助,所使用的數(shù)據(jù)集為CamVid數(shù)據(jù)集。CamVid數(shù)據(jù)集是城市道路場景的分割數(shù)據(jù)集,它包含367張訓(xùn)練圖片、101張驗證圖片、233張測試圖片和11個語義類別。
在語義分割領(lǐng)域中,常用的評價指標(biāo)有平均精度(AP)、平均精度均值(mAP)、像素準(zhǔn)確率(PA)、平均準(zhǔn)確率(MA)和平均交并比(mIoU)。本文采用平均交并比(mIoU)作為評價指標(biāo)。
假設(shè)圖像分割共有n+1個類(從0到n表示類別,其中n+1表示背景類),nij表示i類但被預(yù)測為j類的數(shù)量。即nii表示真正例的數(shù)量。則平均交并比(mIoU)公式為
(5)
通過計算以上評價指標(biāo)可以判斷模型的精確程度(使并集盡可能重合)。
本文在CamVid數(shù)據(jù)集上進(jìn)行實驗,將整個數(shù)據(jù)集分為訓(xùn)練集、驗證集和測試集,在數(shù)據(jù)集中圖片尺寸不固定,輸入到網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。并在相同數(shù)據(jù)集上與Long等[18]提出的FCN-16s進(jìn)行對比,對最終的結(jié)果進(jìn)行分析,如圖7所示。
圖7是在測試集上的可視化效果,圖7c為本文算法的預(yù)測圖像,圖7d為FCN-16s的預(yù)測圖像,對比圖7c和圖7d可以得出,與FCN-16s的分辨率相比,本文算法對物體的細(xì)節(jié)更敏感,判別能力更強。由于Atrous卷積從網(wǎng)絡(luò)中Conv-3中的卷積開始使用,與Conv-3、Conv-4、Conv-5的卷積并聯(lián)的Atrous卷積的擴張率值設(shè)置為2,確保了兩個分支的感受野具有相同尺寸。通過實驗驗證了在基于全卷積結(jié)構(gòu)基礎(chǔ)上,引入Atrous卷積會對網(wǎng)絡(luò)精確度的提高有幫助。結(jié)果顯示(表1)在分割結(jié)果上,本文網(wǎng)絡(luò)的精確率要優(yōu)于全卷積網(wǎng)絡(luò)。
圖7 預(yù)測圖像對比圖
同時,本文所提網(wǎng)絡(luò)的復(fù)雜程度要大于全卷積網(wǎng)絡(luò),但是參數(shù)規(guī)模并沒有增加很多,網(wǎng)絡(luò)的計算效率更高。由此可知,本文設(shè)計的一個多尺度特征提取網(wǎng)絡(luò)(圖 5),能夠更加高效地提高特征提取的質(zhì)量。利用空洞卷積來獲取更大尺度的語義信息,將不同卷積核抓取的不同尺度信息進(jìn)行拼接,使網(wǎng)絡(luò)能夠獲得全局信息。本文也對預(yù)測結(jié)果做了可視化對比,如圖8所示。
圖8 可視化細(xì)節(jié)比較
多尺度特征的融合對圖像中物體細(xì)節(jié)特征采用深層特征,只能獲取基本的輪廓,缺少細(xì)節(jié)信息。融合了Conv5、Conv4、Conv3這3層特征之后,細(xì)節(jié)信息得到了一定程度上的恢復(fù)。分割的細(xì)節(jié)如圖8所示,F(xiàn)CN-16s和本文算法對汽車或者騎自行車的人的邊界輪廓清晰,相比FCN-16s分割圖像,本文算法的細(xì)節(jié)描述具有較好的效果,說明多尺度信息融合對預(yù)測圖像細(xì)節(jié)信息有著很大的幫助。
本文對全卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),設(shè)計了能夠抓取并融合多尺度特征信息的網(wǎng)絡(luò)。采用跳越結(jié)構(gòu)可以改善空間細(xì)節(jié)和并聯(lián)空洞卷積來抓取多尺度特征信息。提出了空洞卷積和卷積并行的方式,引入空洞卷積解決降采樣造成的分割像素精度下降的問題。對網(wǎng)絡(luò)增加一個分支,利用空洞卷積來更有效地抓取更多的上下文信息,融合兩個分支的輸出特征圖像,充分地利用各層的特征信息,從而利用圖像特征來提升網(wǎng)絡(luò)的學(xué)習(xí)能力和輸出結(jié)果的精確度。
實驗結(jié)果表明,加入跳躍結(jié)構(gòu)與空洞卷積后的網(wǎng)絡(luò)性能有所提高。本文的網(wǎng)絡(luò)所使用的卷積核都為小尺寸的卷積核,有助于提高系統(tǒng)的整體性能并且能夠促進(jìn)語義分割的應(yīng)用。