席一帆,孫樂(lè)樂(lè),何立明,呂 悅
(長(zhǎng)安大學(xué) 信息工程學(xué)院,西安 710064)
圖像分割是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要分支,在無(wú)人駕駛,醫(yī)學(xué)圖像,3D 重建等場(chǎng)景用廣泛的應(yīng)用.傳統(tǒng)的圖像分割算法利用圖像的顏色、紋理、形狀等低級(jí)語(yǔ)義信息進(jìn)行分割,缺失像素的對(duì)比度,方向度等中級(jí)語(yǔ)義[1-4];聚類(lèi)是利用像素中級(jí)語(yǔ)義進(jìn)行分割,但缺少像素之間的實(shí)體類(lèi)別之間的高級(jí)語(yǔ)義;深度學(xué)習(xí)算法學(xué)習(xí)圖像中的高級(jí)語(yǔ)義.深度學(xué)習(xí)的語(yǔ)義分割是對(duì)圖像像素進(jìn)行逐個(gè)分類(lèi),解析圖像的深層次語(yǔ)義信息.Shelhamer 等[5]提出FCN (全卷積網(wǎng)絡(luò))可以對(duì)任意大小的圖片進(jìn)行處理,同時(shí)還引入跳級(jí)連接使低級(jí)語(yǔ)義信息和高級(jí)語(yǔ)義信息的融合,反卷積上采樣恢復(fù)圖像分辨率,但在細(xì)節(jié)上分割效果不好;Ronneberger 等[6]提出一種基于編碼解碼器架構(gòu)的U-net,編碼器對(duì)圖像進(jìn)行深層次的特征提取,生成高級(jí)語(yǔ)義信息,解碼器利用跳級(jí)連接的思想,對(duì)不同分辨率特征圖進(jìn)行通道融合產(chǎn)生較好的分割效果.Vigay Badrinaryanan 等[7,8]提出SegNet,該網(wǎng)絡(luò)架構(gòu)與U-net 類(lèi)似,不同的是SegNet 上采樣利用編碼器池化操作的下標(biāo)去恢復(fù)圖像分辨率,加速網(wǎng)絡(luò)的推理,且占用更少的內(nèi)存.Zhao 等[9]提出PSPnet 利用空間金子塔模塊以不同的感受野提取全局特征,融合上下文信息進(jìn)行上采樣得到預(yù)測(cè)結(jié)果.Lin 等[10]提出Refinet,充分利用下采樣的特征圖,利用長(zhǎng)范圍殘差鏈接的思想,將粗糙的高層語(yǔ)義特征和細(xì)粒度的底層特征進(jìn)行融合,通過(guò)Renfinet block 將特征圖進(jìn)行逐層融合生成分割圖像.谷歌提出一系列Deeplab 模型[11-14],其中Deeplab V3+的分割效果最優(yōu),但該模型在處理速度和模型容量上并不占優(yōu)勢(shì),本文依據(jù)Deeplab V3+模型提出一種優(yōu)化算法,對(duì)骨干網(wǎng)殘差單元重新設(shè)計(jì),對(duì)ASPP 模塊進(jìn)行優(yōu)化,且在公開(kāi)數(shù)據(jù)集進(jìn)行對(duì)比實(shí)驗(yàn),改進(jìn)后的模型在準(zhǔn)確度和精度提高的情況下,進(jìn)一步提高網(wǎng)絡(luò)的處理速度,優(yōu)化該模型的內(nèi)存消耗.
Deeplab V3+網(wǎng)絡(luò)模型主要基于編碼解碼器結(jié)構(gòu),如圖1所示.該模型的編碼器架構(gòu)由骨干網(wǎng)ResNet101和ASPP 模塊組成,骨干網(wǎng)提取圖像特征生成高級(jí)語(yǔ)義特征圖,ASPP 模塊利用骨干網(wǎng)得到的高級(jí)語(yǔ)義特征圖進(jìn)行多尺度采樣,生成多尺度的特征圖,在編碼器尾部將多尺度的高級(jí)語(yǔ)義特征圖在通道維度上進(jìn)行組合,通過(guò)1×1 的卷積進(jìn)行通道降維.解碼器部分將骨干網(wǎng)的低級(jí)語(yǔ)義特征通過(guò)1×1 卷積進(jìn)行通道降維,保持與高級(jí)語(yǔ)義特征圖串聯(lián)在一起時(shí)的比重,增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)能力.再用3×3 的卷積提取特征,編碼器尾部進(jìn)行上采樣,產(chǎn)生最終的語(yǔ)義分割圖.
圖1 Deeplab V3+模型圖
骨干網(wǎng)ResNet101 利用基于瓶頸設(shè)計(jì)的殘差塊作為基本單元,組成101 層的殘差網(wǎng)絡(luò).如圖2(b)骨干網(wǎng)由通道數(shù)為w0的殘差塊組成,w0的組合為(64,128,256,512),這4 類(lèi)瓶頸殘差單元的數(shù)目分別為(3,4,23,3),加上網(wǎng)絡(luò)前端的7×7 的卷積和最后1×1 卷積層共101 層.瓶頸單元擁有更少的參數(shù),可以訓(xùn)練更深層次的網(wǎng)絡(luò),而非瓶頸單元(如圖2(a))隨著深度增加,可以獲得更高的準(zhǔn)確率,結(jié)合瓶頸單元和非瓶頸單元的優(yōu)點(diǎn),重新設(shè)計(jì)殘差單元.文獻(xiàn)[15,16]已證明二維卷積能被分解成一系列一維卷積的組合.依據(jù)文獻(xiàn)[17]在卷積層松弛秩為1 約束的條件下,卷積層f i可以重新寫(xiě)成:
圖2 骨干網(wǎng)
式中,L為卷積層的數(shù)目,φ(·)為ReLU.將骨干網(wǎng)的瓶頸單元替換為1D 非瓶頸單元(如圖2(c)).在3×3 卷積輸入特征圖通道數(shù)相同的條件下,1D 非瓶頸單元能減少33% 非瓶頸單元的參數(shù)和29% 的瓶頸單元參數(shù).(假如c為3×3 卷積輸出通道數(shù),則3×3 常規(guī)卷積參數(shù)量為w0×3×3×c,2D 分解后的參數(shù)量為w0×3×1×c+w0×1×3×c,分解后能減少約33%權(quán)重參數(shù);1D 非瓶頸單元總參數(shù)量12w02,瓶頸單元的總參數(shù)量17w02,非瓶頸單元的總參數(shù)為18w02)分解2D 卷積后,增加ReLU 非線(xiàn)性操作,能增強(qiáng)1D 非瓶頸單元的學(xué)習(xí)能力.因此1D 非瓶頸單元擁有非瓶頸單元的準(zhǔn)確率高的和瓶頸單元參數(shù)少,易訓(xùn)練深層網(wǎng)絡(luò)的優(yōu)點(diǎn).
ASPP 模塊主要是對(duì)骨干網(wǎng)的特征圖進(jìn)行多尺度語(yǔ)義信息提取.由于ASPP 模塊中3×3 卷積會(huì)學(xué)到一些冗余信息,參數(shù)數(shù)量多,因此會(huì)在訓(xùn)練中耗費(fèi)很長(zhǎng)時(shí)間.常規(guī)卷積已被證明會(huì)計(jì)算許多重疊的冗余信息.依據(jù)骨干網(wǎng)改進(jìn)的方法,將ASPP 中3×3 的空洞卷積進(jìn)行2D 分解(如圖3所示),將其分解成3×1 和1×3 的卷積,保持其空洞率.該改進(jìn)的ASPP 模塊卷積參數(shù)量比常規(guī)卷積的參數(shù)量要少33%,在速度上比3×3 卷積快,能夠提取到重要的語(yǔ)義信息,有效的減少該模塊計(jì)算量.
圖3 改進(jìn)的ASPP 模塊
實(shí)驗(yàn)運(yùn)行環(huán)境Win10 操作系統(tǒng),工作站 GPU 型號(hào)為:NVIDIA GeForce GTX 1070 (8 GB 顯存),基于Tensorflow深度學(xué)習(xí)框架,本文利用Deeplab V3+原文的tensorflow官方源碼,并對(duì)其進(jìn)行改進(jìn),進(jìn)行對(duì)比實(shí)驗(yàn).
實(shí)驗(yàn)用的是PASCAL-VOC2012 增強(qiáng)版數(shù)據(jù)集,訓(xùn)練集10582 張,驗(yàn)證集1449 張,該數(shù)據(jù)集包括20 個(gè)類(lèi)別.本實(shí)驗(yàn)將圖片分辨率縮放至513×513 像素,由于真實(shí)標(biāo)簽和預(yù)測(cè)結(jié)果是灰度圖,為了顯示分割效果采用RGB 彩色圖顯示.訓(xùn)練網(wǎng)絡(luò)前,將圖像轉(zhuǎn)化為T(mén)frecord文件,便于高效讀取數(shù)據(jù).
本實(shí)驗(yàn)將基于的1D 非瓶頸單元的骨干網(wǎng)在Imagenet數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,再將其預(yù)訓(xùn)練權(quán)重加載到改進(jìn)的模型中.利用上述數(shù)據(jù)集進(jìn)行訓(xùn)練,超參數(shù)設(shè)置如表1所示.
表1 訓(xùn)練參數(shù)
學(xué)習(xí)率采用多項(xiàng)式衰減,當(dāng)?shù)螖?shù)超過(guò) Max iteration 次,學(xué)習(xí)率為End learning rate.采用動(dòng)量梯度下降法去優(yōu)化損失函數(shù),總共迭代71 epochs,如圖4所示,總共迭代150307 次,每迭代一次大約耗時(shí)7 s.總損失(總損失包括交叉熵?fù)p失、權(quán)重正則化損失)在大約12 萬(wàn)次左右開(kāi)始收斂,選取總損失最低的模型作為測(cè)試模型.改進(jìn)模型在訓(xùn)練集上的MIoU為89.9%,像素的平均準(zhǔn)確率97.3%.
圖4 總損失函數(shù)圖
圖5所示,改進(jìn)后的模型在擁有多個(gè)類(lèi)別對(duì)象的圖像上,有良好的分割結(jié)果,尤其是在第一幅圖將車(chē)與人兩個(gè)類(lèi)別的邊界處分割效果較好.
圖5 改進(jìn)后模型在驗(yàn)證集分割結(jié)果
語(yǔ)義分割有4 種評(píng)價(jià)指標(biāo),分別為像素精度(PA),均像素精度(MPA),均交并比(MIoU),頻權(quán)交并比(FWIoU).假設(shè)有K+1 個(gè)類(lèi),pij表示被屬于第i類(lèi)但預(yù)測(cè)為第j類(lèi)的像素?cái)?shù)目,即pii為真正的像素?cái)?shù)量(TP),pij為假負(fù)的像素?cái)?shù)量(FN),pji為假正像素?cái)?shù)量(FP).
PA:為被分類(lèi)正確的像素占總像素?cái)?shù)目的比例:
MPA:計(jì)算每個(gè)類(lèi)被正確分類(lèi)的像素比例,再取平均:
MIoU:真實(shí)標(biāo)簽與預(yù)測(cè)標(biāo)簽的交集比上它們的并集,計(jì)算每個(gè)類(lèi)的IoU,再取平均:
FWIoU:在IoU 的基礎(chǔ)上將每個(gè)類(lèi)出現(xiàn)的頻率作為權(quán)重:
為了便于對(duì)比,實(shí)驗(yàn)將MPA,MIoU作為原模型與改進(jìn)后的模型衡量標(biāo)準(zhǔn).
表2說(shuō)明,改進(jìn)后的模型在均像素精度上比原模型高0.78%,且在MIoU上比原模型高0.63%,因此改進(jìn)模型擁有更準(zhǔn)確和可靠的分割結(jié)果.表3可以得出,改進(jìn)后的模型在設(shè)備上所占內(nèi)存大小和單張圖片處理速度上,明顯優(yōu)于原模型,其中在單張圖片的運(yùn)行時(shí)間上,改進(jìn)后的模型速度提高約9.44%,且模型容量減少了19.6%.主要由于對(duì)骨干網(wǎng)和ASPP 模塊的卷積層進(jìn)行改進(jìn),去掉冗余的權(quán)值,參數(shù)量變少.
表2 Deeplab V3+與Modified Deeplab V3+的均像素精度和均交并比比較(%)
表3 Deeplab V3+與Modified Deeplab V3+在單張圖片處理時(shí)間與模型大小的比較
圖6所示總損失函數(shù),Deeplab V3+和Modified Deeplab V3+模型的損失函數(shù)收斂速度幾乎一樣,原模型Total loss 最終收斂到1.91,而改進(jìn)后模型Total loss收斂到1.73,且改進(jìn)模型的損失函數(shù)擺動(dòng)幅度小更穩(wěn)定,訓(xùn)練時(shí)間比原模型短3.5 小時(shí).
圖6 總損失函數(shù)
圖7中圓圈標(biāo)記出的圖像區(qū)域,Modified Deeplab V3+的分割結(jié)果更精細(xì).例如:第一幅圖Modified Deeplab V3+將椅子的空當(dāng)分割出來(lái),而原模型未分割出,且原模型將窗戶(hù)誤分類(lèi)為顯示屏;第二幅圖改進(jìn)模型將飛機(jī)機(jī)翼準(zhǔn)確分割出,原模型未分割出機(jī)翼;第三幅圖改進(jìn)模型能將車(chē)頂?shù)娜说奶S姿態(tài)和車(chē)下的人準(zhǔn)確分割,原模型對(duì)車(chē)頂?shù)娜朔指罱Y(jié)果模糊,且車(chē)下的人未被分割出;第四幅圖改進(jìn)模型準(zhǔn)確將椅子分割;最后一幅圖改進(jìn)模型在馬的腿部分割效果比原模型要完整.明顯可以看出改進(jìn)模型分割效果更好,且誤分類(lèi)少.主要?dú)w因于Modified Deeplab V3+的1D 非瓶頸單元提高了圖像分類(lèi)的準(zhǔn)確度,且ASPP 模塊卷積分解后,引入非線(xiàn)性操作,增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)能力,有助于減少誤分類(lèi),同時(shí)在分解的卷積上再引入空洞卷積,進(jìn)一步擴(kuò)大感受野,提高網(wǎng)絡(luò)在圖像邊緣分割的精細(xì)度.
圖7 Deeplab V3+與Modified DeeplabV3+測(cè)試集分割結(jié)果對(duì)比
本文提出了一種基于卷積分解優(yōu)化Deeplab V3+網(wǎng)絡(luò)的算法,該算法主要利用2D 卷積分解減少參數(shù)冗余,提高處理速度,同時(shí)引入非線(xiàn)性操作,增強(qiáng)模型學(xué)習(xí)能力.本文利用該算法重新設(shè)計(jì)Deeplab V3+模型骨干網(wǎng)的殘差單元,使其既擁有非瓶頸單元的準(zhǔn)確度,又有瓶頸單元參數(shù)少,易訓(xùn)練深層網(wǎng)絡(luò)的優(yōu)點(diǎn);同時(shí)又對(duì)ASPP 模塊也進(jìn)行優(yōu)化,加速網(wǎng)絡(luò)的推理速度,減少其訓(xùn)練和處理時(shí)間.實(shí)驗(yàn)結(jié)果證明Modified Deeplab V3+與原模型相比在提高均像素精度的同時(shí),明顯提升均交并比,且網(wǎng)絡(luò)處理速度提高9.44%,優(yōu)化網(wǎng)絡(luò)模型的內(nèi)存消耗.測(cè)試集的結(jié)果表明,Modified Deeplab V3+在圖像細(xì)節(jié)處分割結(jié)果更精確.進(jìn)一步的工作是探究如何控制感受野的大小,提高模型對(duì)小目標(biāo)分割的精確度.