席一帆,孫樂樂,何立明,呂 悅
(長安大學(xué) 信息工程學(xué)院,西安 710064)
圖像分割是計算機視覺領(lǐng)域的重要分支,在無人駕駛,醫(yī)學(xué)圖像,3D 重建等場景用廣泛的應(yīng)用.傳統(tǒng)的圖像分割算法利用圖像的顏色、紋理、形狀等低級語義信息進行分割,缺失像素的對比度,方向度等中級語義[1-4];聚類是利用像素中級語義進行分割,但缺少像素之間的實體類別之間的高級語義;深度學(xué)習(xí)算法學(xué)習(xí)圖像中的高級語義.深度學(xué)習(xí)的語義分割是對圖像像素進行逐個分類,解析圖像的深層次語義信息.Shelhamer 等[5]提出FCN (全卷積網(wǎng)絡(luò))可以對任意大小的圖片進行處理,同時還引入跳級連接使低級語義信息和高級語義信息的融合,反卷積上采樣恢復(fù)圖像分辨率,但在細節(jié)上分割效果不好;Ronneberger 等[6]提出一種基于編碼解碼器架構(gòu)的U-net,編碼器對圖像進行深層次的特征提取,生成高級語義信息,解碼器利用跳級連接的思想,對不同分辨率特征圖進行通道融合產(chǎn)生較好的分割效果.Vigay Badrinaryanan 等[7,8]提出SegNet,該網(wǎng)絡(luò)架構(gòu)與U-net 類似,不同的是SegNet 上采樣利用編碼器池化操作的下標去恢復(fù)圖像分辨率,加速網(wǎng)絡(luò)的推理,且占用更少的內(nèi)存.Zhao 等[9]提出PSPnet 利用空間金子塔模塊以不同的感受野提取全局特征,融合上下文信息進行上采樣得到預(yù)測結(jié)果.Lin 等[10]提出Refinet,充分利用下采樣的特征圖,利用長范圍殘差鏈接的思想,將粗糙的高層語義特征和細粒度的底層特征進行融合,通過Renfinet block 將特征圖進行逐層融合生成分割圖像.谷歌提出一系列Deeplab 模型[11-14],其中Deeplab V3+的分割效果最優(yōu),但該模型在處理速度和模型容量上并不占優(yōu)勢,本文依據(jù)Deeplab V3+模型提出一種優(yōu)化算法,對骨干網(wǎng)殘差單元重新設(shè)計,對ASPP 模塊進行優(yōu)化,且在公開數(shù)據(jù)集進行對比實驗,改進后的模型在準確度和精度提高的情況下,進一步提高網(wǎng)絡(luò)的處理速度,優(yōu)化該模型的內(nèi)存消耗.
Deeplab V3+網(wǎng)絡(luò)模型主要基于編碼解碼器結(jié)構(gòu),如圖1所示.該模型的編碼器架構(gòu)由骨干網(wǎng)ResNet101和ASPP 模塊組成,骨干網(wǎng)提取圖像特征生成高級語義特征圖,ASPP 模塊利用骨干網(wǎng)得到的高級語義特征圖進行多尺度采樣,生成多尺度的特征圖,在編碼器尾部將多尺度的高級語義特征圖在通道維度上進行組合,通過1×1 的卷積進行通道降維.解碼器部分將骨干網(wǎng)的低級語義特征通過1×1 卷積進行通道降維,保持與高級語義特征圖串聯(lián)在一起時的比重,增強網(wǎng)絡(luò)學(xué)習(xí)能力.再用3×3 的卷積提取特征,編碼器尾部進行上采樣,產(chǎn)生最終的語義分割圖.

圖1 Deeplab V3+模型圖
骨干網(wǎng)ResNet101 利用基于瓶頸設(shè)計的殘差塊作為基本單元,組成101 層的殘差網(wǎng)絡(luò).如圖2(b)骨干網(wǎng)由通道數(shù)為w0的殘差塊組成,w0的組合為(64,128,256,512),這4 類瓶頸殘差單元的數(shù)目分別為(3,4,23,3),加上網(wǎng)絡(luò)前端的7×7 的卷積和最后1×1 卷積層共101 層.瓶頸單元擁有更少的參數(shù),可以訓(xùn)練更深層次的網(wǎng)絡(luò),而非瓶頸單元(如圖2(a))隨著深度增加,可以獲得更高的準確率,結(jié)合瓶頸單元和非瓶頸單元的優(yōu)點,重新設(shè)計殘差單元.文獻[15,16]已證明二維卷積能被分解成一系列一維卷積的組合.依據(jù)文獻[17]在卷積層松弛秩為1 約束的條件下,卷積層f i可以重新寫成:

圖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 非線性操作,能增強1D 非瓶頸單元的學(xué)習(xí)能力.因此1D 非瓶頸單元擁有非瓶頸單元的準確率高的和瓶頸單元參數(shù)少,易訓(xùn)練深層網(wǎng)絡(luò)的優(yōu)點.
ASPP 模塊主要是對骨干網(wǎng)的特征圖進行多尺度語義信息提取.由于ASPP 模塊中3×3 卷積會學(xué)到一些冗余信息,參數(shù)數(shù)量多,因此會在訓(xùn)練中耗費很長時間.常規(guī)卷積已被證明會計算許多重疊的冗余信息.依據(jù)骨干網(wǎng)改進的方法,將ASPP 中3×3 的空洞卷積進行2D 分解(如圖3所示),將其分解成3×1 和1×3 的卷積,保持其空洞率.該改進的ASPP 模塊卷積參數(shù)量比常規(guī)卷積的參數(shù)量要少33%,在速度上比3×3 卷積快,能夠提取到重要的語義信息,有效的減少該模塊計算量.

圖3 改進的ASPP 模塊
實驗運行環(huán)境Win10 操作系統(tǒng),工作站 GPU 型號為:NVIDIA GeForce GTX 1070 (8 GB 顯存),基于Tensorflow深度學(xué)習(xí)框架,本文利用Deeplab V3+原文的tensorflow官方源碼,并對其進行改進,進行對比實驗.
實驗用的是PASCAL-VOC2012 增強版數(shù)據(jù)集,訓(xùn)練集10582 張,驗證集1449 張,該數(shù)據(jù)集包括20 個類別.本實驗將圖片分辨率縮放至513×513 像素,由于真實標簽和預(yù)測結(jié)果是灰度圖,為了顯示分割效果采用RGB 彩色圖顯示.訓(xùn)練網(wǎng)絡(luò)前,將圖像轉(zhuǎn)化為Tfrecord文件,便于高效讀取數(shù)據(jù).
本實驗將基于的1D 非瓶頸單元的骨干網(wǎng)在Imagenet數(shù)據(jù)集上進行預(yù)訓(xùn)練,再將其預(yù)訓(xùn)練權(quán)重加載到改進的模型中.利用上述數(shù)據(jù)集進行訓(xùn)練,超參數(shù)設(shè)置如表1所示.

表1 訓(xùn)練參數(shù)
學(xué)習(xí)率采用多項式衰減,當?shù)螖?shù)超過 Max iteration 次,學(xué)習(xí)率為End learning rate.采用動量梯度下降法去優(yōu)化損失函數(shù),總共迭代71 epochs,如圖4所示,總共迭代150307 次,每迭代一次大約耗時7 s.總損失(總損失包括交叉熵損失、權(quán)重正則化損失)在大約12 萬次左右開始收斂,選取總損失最低的模型作為測試模型.改進模型在訓(xùn)練集上的MIoU為89.9%,像素的平均準確率97.3%.

圖4 總損失函數(shù)圖
圖5所示,改進后的模型在擁有多個類別對象的圖像上,有良好的分割結(jié)果,尤其是在第一幅圖將車與人兩個類別的邊界處分割效果較好.

圖5 改進后模型在驗證集分割結(jié)果
語義分割有4 種評價指標,分別為像素精度(PA),均像素精度(MPA),均交并比(MIoU),頻權(quán)交并比(FWIoU).假設(shè)有K+1 個類,pij表示被屬于第i類但預(yù)測為第j類的像素數(shù)目,即pii為真正的像素數(shù)量(TP),pij為假負的像素數(shù)量(FN),pji為假正像素數(shù)量(FP).
PA:為被分類正確的像素占總像素數(shù)目的比例:

MPA:計算每個類被正確分類的像素比例,再取平均:

MIoU:真實標簽與預(yù)測標簽的交集比上它們的并集,計算每個類的IoU,再取平均:
FWIoU:在IoU 的基礎(chǔ)上將每個類出現(xiàn)的頻率作為權(quán)重:
為了便于對比,實驗將MPA,MIoU作為原模型與改進后的模型衡量標準.
表2說明,改進后的模型在均像素精度上比原模型高0.78%,且在MIoU上比原模型高0.63%,因此改進模型擁有更準確和可靠的分割結(jié)果.表3可以得出,改進后的模型在設(shè)備上所占內(nèi)存大小和單張圖片處理速度上,明顯優(yōu)于原模型,其中在單張圖片的運行時間上,改進后的模型速度提高約9.44%,且模型容量減少了19.6%.主要由于對骨干網(wǎng)和ASPP 模塊的卷積層進行改進,去掉冗余的權(quán)值,參數(shù)量變少.

表2 Deeplab V3+與Modified Deeplab V3+的均像素精度和均交并比比較(%)

表3 Deeplab V3+與Modified Deeplab V3+在單張圖片處理時間與模型大小的比較
圖6所示總損失函數(shù),Deeplab V3+和Modified Deeplab V3+模型的損失函數(shù)收斂速度幾乎一樣,原模型Total loss 最終收斂到1.91,而改進后模型Total loss收斂到1.73,且改進模型的損失函數(shù)擺動幅度小更穩(wěn)定,訓(xùn)練時間比原模型短3.5 小時.

圖6 總損失函數(shù)
圖7中圓圈標記出的圖像區(qū)域,Modified Deeplab V3+的分割結(jié)果更精細.例如:第一幅圖Modified Deeplab V3+將椅子的空當分割出來,而原模型未分割出,且原模型將窗戶誤分類為顯示屏;第二幅圖改進模型將飛機機翼準確分割出,原模型未分割出機翼;第三幅圖改進模型能將車頂?shù)娜说奶S姿態(tài)和車下的人準確分割,原模型對車頂?shù)娜朔指罱Y(jié)果模糊,且車下的人未被分割出;第四幅圖改進模型準確將椅子分割;最后一幅圖改進模型在馬的腿部分割效果比原模型要完整.明顯可以看出改進模型分割效果更好,且誤分類少.主要歸因于Modified Deeplab V3+的1D 非瓶頸單元提高了圖像分類的準確度,且ASPP 模塊卷積分解后,引入非線性操作,增強網(wǎng)絡(luò)學(xué)習(xí)能力,有助于減少誤分類,同時在分解的卷積上再引入空洞卷積,進一步擴大感受野,提高網(wǎng)絡(luò)在圖像邊緣分割的精細度.

圖7 Deeplab V3+與Modified DeeplabV3+測試集分割結(jié)果對比
本文提出了一種基于卷積分解優(yōu)化Deeplab V3+網(wǎng)絡(luò)的算法,該算法主要利用2D 卷積分解減少參數(shù)冗余,提高處理速度,同時引入非線性操作,增強模型學(xué)習(xí)能力.本文利用該算法重新設(shè)計Deeplab V3+模型骨干網(wǎng)的殘差單元,使其既擁有非瓶頸單元的準確度,又有瓶頸單元參數(shù)少,易訓(xùn)練深層網(wǎng)絡(luò)的優(yōu)點;同時又對ASPP 模塊也進行優(yōu)化,加速網(wǎng)絡(luò)的推理速度,減少其訓(xùn)練和處理時間.實驗結(jié)果證明Modified Deeplab V3+與原模型相比在提高均像素精度的同時,明顯提升均交并比,且網(wǎng)絡(luò)處理速度提高9.44%,優(yōu)化網(wǎng)絡(luò)模型的內(nèi)存消耗.測試集的結(jié)果表明,Modified Deeplab V3+在圖像細節(jié)處分割結(jié)果更精確.進一步的工作是探究如何控制感受野的大小,提高模型對小目標分割的精確度.