王云艷,王重陽,武華軒,楊智偉
(1. 湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北 武漢 430068;2. 太陽能高效利用及儲能運(yùn)行控制湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430068)
語義分割是智能計(jì)算機(jī)系統(tǒng)理解自然場景的關(guān)鍵性技術(shù),在無人駕駛、智能機(jī)器人、醫(yī)學(xué)圖像分析等領(lǐng)域得到了廣泛的應(yīng)用[1-2]。目前,語義分割算法可以分為兩類[3-4]:第一類是基于傳統(tǒng)機(jī)器學(xué)習(xí)的語義分割算法,傳統(tǒng)語義分割算法通過提取人工特征作為視覺信息來進(jìn)行圖像分割,如:楊蘊(yùn)等提出的基于局部空間信息的可變類模糊閾值分割算法,首先通過二分法原理和區(qū)域間最大相似度準(zhǔn)則來確定類別數(shù)及其中心,然后利用嶺形模糊隸屬函數(shù)計(jì)算各像素點(diǎn)對不同類的隸屬程度[5];龐明明等將模糊數(shù)學(xué)結(jié)合Canny算子提取目標(biāo)輪廓[6];胡高珍等利用Canny邊緣檢測算子解決局部區(qū)域馬爾可夫隨機(jī)場模型對圖像分割邊緣的模糊作用[7];楊夢等將單閾值隸屬度函數(shù)推廣到多閾值形式,提出基于標(biāo)準(zhǔn)離差法的模糊散度多閾值圖像分割算法[8];孫楊等利用特征融合策略提出一種融合區(qū)域和邊緣特征的圖像分割算法[9]。第二類是基于深度學(xué)習(xí)的語義分割算法,如:Long等提出的全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN),利用卷積層替換卷積神經(jīng)網(wǎng)絡(luò)中的全連接層,并以反卷積的方式進(jìn)行上采樣獲得結(jié)果[10-11];魏幗等利用遷移學(xué)習(xí)提高全卷積神經(jīng)網(wǎng)絡(luò)的模型的泛化能力,優(yōu)化了分割效果[12];王海鷗等利用濾波模型濾除噪聲,并利用批量歸一化層增強(qiáng)U-net網(wǎng)絡(luò)對參數(shù)的敏感性[13];chen等針對FCN下采樣過程中細(xì)節(jié)信息丟失的問題提出了deeplabv1模型,采用空洞卷積擴(kuò)大感受野范圍的方式提升分割精度[14];SegNet中首次提出編碼器-解碼器結(jié)構(gòu),減少訓(xùn)練參數(shù)的同時(shí)捕捉底層信息幫助分割更加精確的物體邊緣[15];chen等在Deeplabv2的基礎(chǔ)上進(jìn)行改進(jìn)提出了Deeplabv3模型,采用不同尺度大小的空洞卷積核構(gòu)建空間空洞金字塔模塊,從而獲取多尺度的特征信息[16-17]。
縱觀上述語義分割算法,基于傳統(tǒng)機(jī)器學(xué)習(xí)的語義分割算法過于依賴人工特征的選取,分割表現(xiàn)往往差于深度學(xué)習(xí)語義分割算法。上述深度學(xué)習(xí)語義分割算法通過擴(kuò)大感受野范圍等操作提升了模型的分割性能,但在分割物體邊界時(shí)往往容易出現(xiàn)不連續(xù)以及分割錯(cuò)誤的現(xiàn)象。本文以底層特征復(fù)用以及捕獲多尺度語義信息為出發(fā)點(diǎn),對Deeplabv3算法進(jìn)行改進(jìn),通過構(gòu)建并行卷積神經(jīng)網(wǎng)絡(luò)提取網(wǎng)絡(luò)淺層細(xì)節(jié)信息,之后進(jìn)行級聯(lián)式特征融合,完成底層信息的復(fù)用,最終利用空間金字塔結(jié)構(gòu)進(jìn)一步獲取多尺度特征信息,以達(dá)到物體邊界分割更加準(zhǔn)確的效果。
空洞卷積實(shí)際是一種數(shù)據(jù)采樣的方式,相較于傳統(tǒng)卷積,其不同之處在于在采樣的卷積核中增加了空洞,空洞的數(shù)量決定空洞率的大小以及采樣的稀疏程度。如圖1所示,傳統(tǒng)卷積得到的感受野范圍大小為3*3,而空洞率為1的空洞卷積得到的感受野范圍增加到5*5大小,從中看出空洞卷積在保持參數(shù)量不變的前提下有效的增加感受野范圍,感受野范圍大小如式(1)所示
N=i+(i-1)(j-1)
(1)
圖1 空洞卷積結(jié)構(gòu)
其中N為感受野范圍,i為原始卷積核大小,j為空洞率。對于神經(jīng)網(wǎng)絡(luò)而言,神經(jīng)元的感受野越大意味著特征包含的的全局信息更多,表述作用更強(qiáng)。本文分割模型使用空洞卷積為基礎(chǔ)卷積單元,有效減少了空間信息丟失同時(shí)能夠獲取多尺度的語義信息。
卷積神經(jīng)網(wǎng)絡(luò)提取圖像各種層次的特征,然而網(wǎng)絡(luò)達(dá)到一定的深度時(shí),會導(dǎo)致梯度彌散的問題,模型的正確率會開始飽和甚至下降。殘差單元可以解決深層網(wǎng)絡(luò)的退化問題,其結(jié)構(gòu)如圖2所示。
假設(shè)殘差單元的輸入為i,經(jīng)過三層卷積層后的期待輸出為H(i)。而殘差單元的實(shí)際輸出為F(i),其定義如式(2)所示
F(i)=w3σ(w2σ(w1i))
(2)
式中w1、w2、w3為三層卷積層的權(quán)重參數(shù),σ為Relu激活函數(shù)。
將F(i)與i進(jìn)行相加之后利用激活函數(shù)激活得到實(shí)際的H(i),如式(3)所示
H(i)=σ(w3σ(w2σ(w1i))+i)
(3)
輸出結(jié)果H(i)實(shí)際上是F(i)+i經(jīng)過激活函數(shù)的結(jié)果,倘若F(i)為0,則有H(i)=i,得到恒等映射。殘差單元的作用是將學(xué)習(xí)目標(biāo)轉(zhuǎn)化為期望輸出H(i)與輸入i的差值F(i),對于神經(jīng)網(wǎng)絡(luò)來講,顯而易見的是擬合F(i)=0遠(yuǎn)遠(yuǎn)比擬合H(i)=i更加容易,因此殘差網(wǎng)絡(luò)的網(wǎng)絡(luò)層數(shù)能夠達(dá)到的深度遠(yuǎn)超其它網(wǎng)絡(luò)結(jié)構(gòu)。
圖2 殘差單元結(jié)構(gòu)圖
Deeplabv3語義分割模型借鑒SPP-Net網(wǎng)絡(luò)提出空洞空間金字塔池化模塊(atrous spatial pyramid pooling,ASPP),ASPP模塊利用空洞卷積有效擴(kuò)大了感受野范圍,此外通過不同擴(kuò)張率的空洞卷積核獲取不同的感受野大小,增強(qiáng)分割模型對不同尺度大小物體的敏感程度。
如圖3所示,ASPP模塊中采用擴(kuò)展率為1、6、12、18大小的的空洞卷積核以及自適應(yīng)平均值池化,從而捕獲不同尺度的語義信息。
圖3 空洞空間金字塔池化模塊
Deeplab-v3框架中使用殘差網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),傳統(tǒng)殘差網(wǎng)絡(luò)下采樣的過程中,特征圖不斷變小的同時(shí)其包含的語義信息也更為抽象。理論上更復(fù)雜的特征信息擁有更強(qiáng)的表述能力,更能表述圖像的整體語義,但是由于特征圖分辨率的減小,許多關(guān)鍵的上下文細(xì)節(jié)信息隨之丟失,無疑限制了圖像語義分割的結(jié)果。
本文提出一種改進(jìn)型的ResNet-101網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。假設(shè)圖4中Block2的輸出Feature map3為x,經(jīng)過Block3、Block4下采樣處理后即可得到傳統(tǒng)ResNet-101網(wǎng)絡(luò)的輸出F(x),其表達(dá)式如式(4)所示。
F(x)=f2(f1(x))
(4)
而對于本文提出的改進(jìn)型ResNet-101網(wǎng)絡(luò)而言,設(shè)圖4中卷積核ConV2、ConV3為w1、w2,經(jīng)過Block3、Block4以及卷積核采樣處理之后得到改進(jìn)型ResNet-101網(wǎng)絡(luò)的輸出F1(x),其表達(dá)式如式(5)所示。
F1(x)=f2(f1(x))+w2?(w1?x+f1(x))
(5)
f1、f2代表Block3、Block4中殘差單元的下采樣過程。淺層網(wǎng)絡(luò)Block2的輸出x中含有大量的紋理、輪廓特征,伴隨f1、f2進(jìn)一步的下采樣,x中含有的細(xì)節(jié)信息會不斷丟失。對比式(4)與式(5)可以看出,提出的改進(jìn)型ResNet-101算法構(gòu)建并行的卷積網(wǎng)絡(luò)層提取Feature Map3的紋理、輪廓等細(xì)節(jié)特征信息,并且與Feature Map4進(jìn)行像素級融合,補(bǔ)充原始圖像的語義信息,其次使用融合得到Feature map4_1繼續(xù)進(jìn)行下采樣操作,最終與Feature Map5進(jìn)行特征圖融合,進(jìn)一步的補(bǔ)充細(xì)節(jié)信息。
圖4 改進(jìn)ResNet-101網(wǎng)絡(luò)結(jié)構(gòu)對比圖
完整語義分割網(wǎng)絡(luò)包含編碼器、解碼器兩個(gè)部分。本文中編碼器網(wǎng)絡(luò)由殘差網(wǎng)絡(luò)構(gòu)成,編碼過程圖像的分辨率不斷減小,同時(shí)特征信息變得更加抽象。如圖5所示,(a)-(d)為原有Deeplabv3網(wǎng)絡(luò)由淺到深輸出的特征圖。從特征圖(a)、(b)可以看出,圖像的輪廓、紋理信息較為清晰,結(jié)構(gòu)信息比較完整,而伴隨著網(wǎng)絡(luò)層的加深,從特征圖(c)、(d)中可以看出圖像的輪廓變得模糊,細(xì)節(jié)信息丟失,對分割任務(wù)造成了阻礙。
圖5 多層次特征可視化圖
針對下采樣過程中細(xì)節(jié)信息丟失的問題,構(gòu)建卷積核尺寸大小為2,步長為2的并行卷積神經(jīng)網(wǎng)絡(luò)提取特征圖(b)、(c)中包含的紋理、輪廓等細(xì)節(jié)信息如圖(e)、(j)所示。特征圖(f)-(i)為改進(jìn)Deeplabv3算法編碼器網(wǎng)絡(luò)由淺到深輸出的特征圖,對比改進(jìn)deeplabv3算法與原有deeplabv3算法最終輸出的特征圖(d)與(i),可以看出融合了特征(e)、(j)之后的特征圖(i)相較于特征圖(d),保留了更多的細(xì)節(jié)信息。
城市道路圖像語義分割是根據(jù)每個(gè)像素點(diǎn)所屬的類別將其劃分為不同的顏色區(qū)域,完成對圖像語義更細(xì)致的理解。傳統(tǒng)的聚類分割算法如聚類算法難以對類別進(jìn)行細(xì)分,從而無法獲取有用的語義信息。本文中街景圖像語義分割利用端對端的卷積神經(jīng)網(wǎng)絡(luò)獲取圖像的特征信息并對其進(jìn)行還原得到預(yù)測結(jié)果,然后通過隨機(jī)梯度下降算法減小預(yù)測結(jié)果與標(biāo)簽圖像的誤差,通過反復(fù)的迭代更新卷積神經(jīng)網(wǎng)絡(luò)中的權(quán)重參數(shù),得到理想的分割模型。
語義分割算法實(shí)現(xiàn)流程如圖6所示。
圖6 語義分割算法流程圖
語義分割算法實(shí)現(xiàn)流程具體步驟如下所示。
步驟一:構(gòu)建模型,采用改進(jìn)型ResNet-101網(wǎng)絡(luò)為模型的骨干網(wǎng)絡(luò),補(bǔ)充下采樣丟失的空間語義信息,然后使用空間金字塔結(jié)構(gòu)獲取多尺度語義信息,最終利用雙線性插值進(jìn)行上采樣得到預(yù)測結(jié)果。
步驟二:利用transform模塊對數(shù)據(jù)集進(jìn)行隨機(jī)翻轉(zhuǎn)、標(biāo)準(zhǔn)歸一化以及隨機(jī)裁剪等操作,增強(qiáng)模型的泛化能力。
步驟三:權(quán)重初始化,使用Imagenet訓(xùn)練過的參數(shù),其余部分參數(shù)初始化符合正態(tài)分布,幫助模型更快的完成收斂。
步驟四:計(jì)算預(yù)測結(jié)果與標(biāo)簽圖像的誤差,利用梯度優(yōu)化算法減小誤差,并更新模型權(quán)重參數(shù),通過不斷的優(yōu)化,模型完成收斂后結(jié)束訓(xùn)練過程。
為了驗(yàn)證本文提出的分割算法,采用Cityscape數(shù)據(jù)并設(shè)計(jì)5組對比試驗(yàn)進(jìn)行驗(yàn)證。實(shí)驗(yàn)環(huán)境使用window 10操作系統(tǒng),硬件配置使用Nvidia GTX1070 8GB顯卡,搭配CUDA Toolkit 10驅(qū)動(dòng)軟件組建本次實(shí)驗(yàn)所用的平臺,支撐網(wǎng)絡(luò)模型的計(jì)算。本次實(shí)驗(yàn)選擇Pytorch深度學(xué)習(xí)框架進(jìn)行圖像語義分割模型的訓(xùn)練和測試。
為了評估本文中提出算法的有效性,本次實(shí)驗(yàn)采用了像素準(zhǔn)確度平均像素準(zhǔn)確度,平均交并比指數(shù)對實(shí)驗(yàn)結(jié)果進(jìn)行了評估。像素準(zhǔn)確度(pixel accuracy,Pa)代表了正確像素占總像素的比例,其定義如式(6)所示。其中k代表類別的數(shù)量,Pii代表正確分類點(diǎn),Pij、Pji為誤分類的像素點(diǎn)。
(6)
平均像素準(zhǔn)確度(mean pixel accuracy,Mpa) 代表了每個(gè)類內(nèi)正確分類像素點(diǎn)比例,并對其每個(gè)類求均值,其定義如式(7)所示。
(7)
交并比(Intersection over Union,IoU)計(jì)算了真實(shí)值與預(yù)測值的重合程度,對每個(gè)類別求取IoU指數(shù),再求取平均值即可得到MIoU指數(shù),MIoU指數(shù)直觀的反應(yīng)分割的好壞,其定義如(8)所示。
(8)
Cityscapes數(shù)據(jù)集語義分割任務(wù)包含19個(gè)類別的物體,由于是全景標(biāo)注因此基本不存在背景。分割結(jié)果如表1所示,從中可以看出U-net、FCN-8s、SegNet算法相較于Deeplabv3系列算法,分割精度上有著不小的差距,此外采用Resnet-50為骨干網(wǎng)絡(luò)的 PsPNet模型相較于Deeplabv3(ResNet-50)在分割精度上仍然具有一定的差距。
表1 Cityscapes數(shù)據(jù)集分割精度表(單位:%)
而對于Deeplabv3-Res50以及Deeplabv3-Res101,后者采用Resnet101為基礎(chǔ)網(wǎng)絡(luò),相較于應(yīng)用Resnet50的前者,Pa、Mpa、Miou指數(shù)分別提升了0.26%、1.49%、1.83%,證明了更加深層的網(wǎng)絡(luò)結(jié)構(gòu)能夠提取更加有利的特征信息。而本文算法相較于Deeplabv3-Res101算法,MPA、MIoU指數(shù)分別提高了2.21%、1.30%。本文算法在Cityscapes數(shù)據(jù)集上的可視化收斂曲線如圖7所示,其中橫坐標(biāo)為迭代次數(shù),而縱坐標(biāo)為損失值,初始學(xué)習(xí)率為7e-3,從中可以看出,模型達(dá)到良好的收斂。
圖7 基于Cityscapes的改進(jìn)Deeplabv3算法收斂曲線
圖8 Cityscapes圖像部分對比分割結(jié)果
Cityscapes測試集的部分分割結(jié)果如圖8所示,對于第一列圖像,DeeplabV3以及SegNet等算法在圖像右上角標(biāo)注的橢圓中出現(xiàn)交通標(biāo)志(黃色區(qū)域)分割不足現(xiàn)象,而本文算法分割出更加完整的交通標(biāo)志,減少了誤分割以及分割不足現(xiàn)象。第二列SegNet、Deeplabv3等算法的分割結(jié)果出現(xiàn)卡車部分區(qū)域誤分割的現(xiàn)象,代表卡車的深藍(lán)色區(qū)域被誤分類為天空(淺藍(lán))與小汽車(藍(lán)色),而本文算法整體上分割出較為完整的卡車區(qū)域。針對于上述各例中分割不足、誤分割的現(xiàn)象,本文提出的改進(jìn)型DeepLabv3算法減少了誤分割區(qū)域,得到了更加連續(xù)的分割邊界,證明了改進(jìn)的Deeplabv3算法能夠利用提取淺層特征補(bǔ)充上下文信息,從而獲取更好的像素間關(guān)聯(lián)性,進(jìn)一步的模型的分割性能。
1)本文針對于傳統(tǒng)的DeepLab-v3算法下采樣丟失大量的細(xì)節(jié)信息的問題,從復(fù)用底層特征以及捕獲多尺度語義信息兩個(gè)方向出發(fā),實(shí)現(xiàn)減少誤分割區(qū)域的目的。
2)該方法通過設(shè)計(jì)輕量級并行卷積神經(jīng)網(wǎng)絡(luò)獲取圖像底層細(xì)節(jié)信息,然后利用特征融合補(bǔ)充傳統(tǒng)算法下采樣過程丟失的細(xì)節(jié)信息,并使用空洞金字塔池化模塊獲取多尺度語義信息,得到更加準(zhǔn)確的語義信息。
3)在城市道路分割結(jié)果對比實(shí)驗(yàn)中,本文方法相較于傳統(tǒng)DeepLabv3算法在平均像素準(zhǔn)確率以及平均交并比指數(shù)上分別提高2.21%、1.30%,驗(yàn)證本文方法的有效性。