劉貝貝,華 蓓
(中國科學(xué)技術(shù)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,合肥 230027)
圖像語義分割是為圖像中的每一個像素點指定一個語義類別,是一種像素級的空間密集型預(yù)測任務(wù),被廣泛應(yīng)用到無人駕駛技術(shù)、無人機領(lǐng)域和醫(yī)療圖像檢測與分析等[1]任務(wù)中.深度卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的出現(xiàn),尤其是全卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn)(Fully Convolutional Network,F(xiàn)CN)[2],極大地推動了圖像語義分割的發(fā)展,目前大多數(shù)先進的圖像語義分割方法都是在FCN 的基礎(chǔ)上進行調(diào)整,通過使用更深的網(wǎng)絡(luò)、空洞卷積[3]、空洞空間金字塔池化模塊(Atrous Spatial Pyramid Pooling,ASPP)[4]等技術(shù)不斷刷新分割精度.
雖然基于CNN 的圖像語義分割方法已經(jīng)取得了驚人的性能,但訓(xùn)練這些方法需要大量的有標(biāo)簽數(shù)據(jù).不同于圖像分類、目標(biāo)檢測任務(wù),圖像語義分割需要的是像素級的標(biāo)注,訓(xùn)練數(shù)據(jù)的獲取費時又費力.為緩和這一問題,半監(jiān)督/弱監(jiān)督方法已應(yīng)用到圖像語義分割任務(wù)中.在弱監(jiān)督圖像語義分割方法中,分割網(wǎng)絡(luò)并不使用具有像素級標(biāo)注的數(shù)據(jù)進行訓(xùn)練,而是用的更容易獲取的各種弱監(jiān)督信號,例如圖像類別[5]、物體邊界框等[6].文獻[5]提出,基于卷積神經(jīng)網(wǎng)絡(luò)將多實例學(xué)習(xí)框架從檢測任務(wù)擴展到圖像語義分割任務(wù),此時圖像語義分割可以被定義為給定一張圖像和其對象類別標(biāo)簽,推斷圖像中的每一個像素是否屬于對象類,并約束模型為分類正確的像素分配更高的權(quán)重.BoxSup[6]則是使用物體邊界框作為弱監(jiān)督信號,其基本思想是,首先使用區(qū)域建議方法生成候選分割掩模,分割網(wǎng)絡(luò)在這些候選掩模的監(jiān)督下進行訓(xùn)練,更新的網(wǎng)絡(luò)反過來改進了用于訓(xùn)練的候選分割掩模,整個過程是迭代的.雖然分割掩模在剛開始的時候是粗糙的,但它們隨著訓(xùn)練的進行逐漸得到改進,然后為訓(xùn)練分割網(wǎng)絡(luò)提供有用的信息.基于半監(jiān)督學(xué)習(xí)的圖像語義分割方法大多綜合使用少量的像素級標(biāo)注的訓(xùn)練圖像和大量的弱標(biāo)注圖像.例如文獻[7]構(gòu)建了一個由分類網(wǎng)絡(luò)和分割網(wǎng)絡(luò)組成的框架,其中分類網(wǎng)絡(luò)作為整個框架的特征提取器,首先用大量的具有圖像類別信息的數(shù)據(jù)進行訓(xùn)練,然后在分類網(wǎng)絡(luò)固定的情況下,使用少量具有像素級標(biāo)注的圖像優(yōu)化分割網(wǎng)絡(luò).然而,以上這些方法并沒有取得很好的性能,因為它們無法從弱監(jiān)督信號或少量像素級標(biāo)注圖像中恢復(fù)詳細的目標(biāo)邊界.
生成對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)[8]自被提出以來就受到了各界的廣泛關(guān)注,并被嘗試應(yīng)用到很多領(lǐng)域,例如圖像到圖像生成[9]、圖像語義分割等[10-12],并取得了很好的性能提升.典型的GAN模型包括生成器、鑒別器兩部分,這兩部分通過對抗的方式進行訓(xùn)練.在訓(xùn)練過程中,生成器的目標(biāo)是將采樣自某固定分布的樣本變換成近似服從目標(biāo)數(shù)據(jù)分布的樣本,而鑒別器的目標(biāo)是準(zhǔn)確判別出樣本來自生成數(shù)據(jù)還是目標(biāo)數(shù)據(jù).通過反向傳播算法,生成器、鑒別器的性能都得以提升,最終達到鑒別器無法準(zhǔn)確區(qū)分數(shù)據(jù)來源的狀態(tài),此時可以認為生成器生成的數(shù)據(jù)已近似服從目標(biāo)數(shù)據(jù)分布.文獻[10]是第一個將生成對抗網(wǎng)絡(luò)應(yīng)用于圖像語義分割的工作,該方法為后來的方法奠定了基本框架,即將主流語義分割網(wǎng)絡(luò)作為生成對抗網(wǎng)絡(luò)的生成器.通過對抗訓(xùn)練,該方法可以在不需要增加復(fù)雜的后期處理的情況下,鼓勵分割網(wǎng)絡(luò)生成更加接近目標(biāo)數(shù)據(jù)的樣本.然而,它并不是適用于所有數(shù)據(jù)集的通用方法,相比于基準(zhǔn)方法也沒有明顯的性能提升.文獻[12]從另一角度思考問題,提出一種半監(jiān)督圖像語義分割方法,并創(chuàng)造性的提出了全卷積鑒別器.該算法將鑒別器視為分割網(wǎng)絡(luò),并用生成器生成的樣本擴展數(shù)據(jù)集.然而,該方法并沒有取得很好的效果,因為生成的樣本不足夠接近真實樣本,不能幫助訓(xùn)練分割網(wǎng)絡(luò).文獻[11]是目前性能最優(yōu)的半監(jiān)督語義分割方法,該方法沿用了文獻[10]中提出的基本框架,即分割網(wǎng)絡(luò)作為生成器,同時采用了全卷積方式的鑒別器,該鑒別器不僅能夠為輸入數(shù)據(jù)提供像素級的鑒別(鑒別每一個像素點采樣自生成圖像還是真實標(biāo)簽),還能進一步為無標(biāo)簽數(shù)據(jù)生成置信圖,并將置信圖作為額外的監(jiān)督信號,來實現(xiàn)半監(jiān)督學(xué)習(xí).同時,文獻[11]也存在著一些問題,其中最為顯著的就是分割網(wǎng)絡(luò)過于簡單,直接通過一次上采樣操作將特征圖放大到輸入圖像大小,在分割過程沒有充分利用淺層網(wǎng)絡(luò)中包含的豐富的圖像細節(jié)信息,但是,將不同尺的度特征信息相融合有助于進一步提升網(wǎng)絡(luò)分割性能[4].
基于以上介紹和分析,本文在文獻[11]的基礎(chǔ)上,提出一種基于生成對抗網(wǎng)絡(luò)的半監(jiān)督圖像語義分割方法,其中編碼器-解碼器作為生成對抗網(wǎng)絡(luò)生成器,鑒別器依然采用全卷積的方式.不同于文獻[11]使用的直接上采樣,本文提出的解碼器模塊在逐步上采樣逐漸增大特征分辨率的同時,通過整合來自淺層精細的外觀信息恢復(fù)目標(biāo)分割細節(jié).此外,全卷積鑒別器通過發(fā)現(xiàn)無標(biāo)簽數(shù)據(jù)分割結(jié)果中的可信區(qū)域,并將可信區(qū)域作為額外的監(jiān)督信號來實現(xiàn)半監(jiān)督學(xué)習(xí).實驗結(jié)果顯示,相較于其他半監(jiān)督圖像語義分割方法,本文提出的算法有明顯的分割性能提升.
本文提出的網(wǎng)絡(luò)結(jié)構(gòu)包括分割網(wǎng)絡(luò)(生成器)、鑒別網(wǎng)絡(luò)兩部分,如圖1所示.分割網(wǎng)絡(luò)將大小為H×W×3的RGB 圖像作為輸入,輸出大小為H×W×C的分割圖,其中C為語義類別.鑒別網(wǎng)絡(luò)將生成的分割結(jié)果或圖像真實標(biāo)簽作為輸入,輸出大小為H×W×1的空間概率圖,也稱置信圖.
ASPP 是DeepLab-v2 提出的用于捕獲目標(biāo)不同尺度上下文信息的重要模塊,如圖2所示.ASPP 中存在4 個并行的空洞卷積操作,其卷積核大小都為 3×3,步長也都為1,每個空洞卷積的膨脹率d分別為6,12,18,24,相應(yīng)的輸入特征填充率p分別為6,12,18,24,由式(1)可知.
圖2 分類器ASPP 示意圖
這種參數(shù)設(shè)置的空洞卷積具有相同大小的輸出,且與輸入特征的分辨率也相同,所以經(jīng)ASPP 處理并不會改變特征分辨率.在本文中,我們對原始ASPP 做了如下簡化工作,去除了不同采樣率的空洞卷積之后的1 ×1卷積,取而代之的是,在進行不同采樣率的空洞卷積時將通道數(shù)設(shè)置為語義類別數(shù),并將得到的不同尺度的特征相加,作為最終分類結(jié)果.最后,經(jīng)雙線性插值上采樣和沿通道方向的Softmax 操作獲取最后的分割輸出.
編碼器-解碼器模塊由2 部分組成:編碼器和解碼器.其中編碼器逐漸減小特征圖大小并捕獲更高層次的語義信息;解碼器逐漸恢復(fù)對象細節(jié)信息和空間維度.整個結(jié)構(gòu)利用來自編碼器模塊的多尺度特征,并從解碼器模塊恢復(fù)空間分辨率.
基于生成對抗網(wǎng)絡(luò)的語義分割方法中分割網(wǎng)絡(luò)可以是任意主流圖像語義分割模型,例如FCN、DeepLabv2 等,本文采用的是基于ResNet-101[13]的DeepLabv2 模型,并將其改造成編碼-解碼結(jié)構(gòu),如圖3所示.編碼器模塊經(jīng)ResNet-101 中一個卷積、一個最大池化和4 個殘差塊處理后,逐漸降低特征分辨率為輸入圖像的1/8 大小,同時,不同深度的卷積層編碼了不同尺度的特征信息.解碼器模塊首先將第四個殘差塊輸出的特征圖經(jīng)多尺度分類器ASPP 處理,然后進行2 倍的雙線性上采樣變?yōu)檩斎雸D像的1/4,同時將編碼器中輸入圖像1/4 大小的特征圖,也即為第一個殘差塊的輸出,同樣經(jīng)過分類器ASPP 處理,將兩者相加進行第二次2 倍的雙線性上采樣,此時輸出的特征圖為輸入圖像的1/2.同樣地,將編碼器中輸入圖像1/2 大小的特征圖,也即為ResNet-101 中第一個卷積層的輸出,經(jīng)過分類器ASPP 處理,并于之前求得的輸入圖像1/2 大小的特征圖相加,最后再經(jīng)過一次2 倍的雙線性上采樣即可恢復(fù)至輸入圖像大小.在整個解碼過程中,始終保持特征圖的通道數(shù)為圖像語義類別數(shù)(例如對于數(shù)據(jù)集PASCAL VOC 2012,解碼過程中通道數(shù)為21),這將有效減少壓縮特征數(shù)的成本.解碼器模塊經(jīng)過兩次加和、三次雙線性上采樣逐漸增大特征分辨率,并在此過程中不斷融合具有相同分辨率的淺層語義信息,從而優(yōu)化物體分割細節(jié).
這里鑒別器沿用了文獻[11]采用全卷積結(jié)構(gòu).整個鑒別器由5 個卷積核為4 ×4、步長為2 的卷積層組成,每個卷積層的通道數(shù)依次為64,128,256,512,1.此外,為了將輸出特征圖放縮到原圖大小,本文在整個鑒別器的最后加了一個上采樣層.
圖3 分割網(wǎng)絡(luò)示意圖
本文使用以下符號表示法:Xn表示大小為H×W×3 的待分割RGB 圖像,Yn表示大小為H×W×C的圖像真實標(biāo)簽,其中C為類別數(shù),G(.)表示分割網(wǎng)絡(luò),其輸出維度同樣為H×W×C,D(·)表示鑒別網(wǎng)絡(luò),其輸出維度為H×W×1.
(1) 鑒別網(wǎng)絡(luò):本文通過最小化二分類交叉熵損失函數(shù)LD來訓(xùn)練鑒別網(wǎng)絡(luò).
其中,i為位置標(biāo)號.需要指出的是,為了保持分割網(wǎng)絡(luò)和鑒別網(wǎng)絡(luò)的平衡這里只用有標(biāo)簽數(shù)據(jù)訓(xùn)練鑒別網(wǎng)絡(luò).
(2) 分割網(wǎng)絡(luò):本文通過最小化多任務(wù)交叉熵損失函數(shù)Lseg來訓(xùn)練分割網(wǎng)絡(luò),它是標(biāo)準(zhǔn)多分類交叉熵損失和對抗損失的加權(quán)和.由式(3)算得:
式(3)中的第一項Lmce為多分類交叉熵損失,它是應(yīng)用于圖像語義分割任務(wù)的標(biāo)準(zhǔn)損失函數(shù),Ladv是對抗損失,Lsemi為半監(jiān)督學(xué)習(xí)損失.λadv和λsemi是為了最小化整個損失函數(shù)設(shè)置的兩個超參數(shù).
首先考慮用有標(biāo)簽數(shù)據(jù)訓(xùn)練分割網(wǎng)絡(luò)的情況.給定一張待分割圖像Xn,分割網(wǎng)絡(luò)生成的分割圖為G(Xn),則多分類交叉熵Lmce可由式(4)算得:
對抗損失函數(shù)由式(5)算得:
通過對抗損失,整個網(wǎng)絡(luò)模型將鼓勵分割網(wǎng)絡(luò)生成對于鑒別網(wǎng)絡(luò)而言難以和圖像真實標(biāo)簽區(qū)分開的分割圖,從而達到優(yōu)化目標(biāo)分割細節(jié)的目的.
當(dāng)用無標(biāo)簽數(shù)據(jù)訓(xùn)練分割網(wǎng)絡(luò)時,我們考慮在半監(jiān)督條件下的對抗訓(xùn)練.對于無標(biāo)簽數(shù)據(jù),由式(4)和式(5)可知,由于缺少圖像真實標(biāo)簽Yn,無法直接計算多分類交叉熵損失Lmce,但對抗損失Ladv只涉及到分割網(wǎng)絡(luò)、鑒別網(wǎng)絡(luò)和輸入圖像Xn,所以依然有效.為實現(xiàn)半監(jiān)督學(xué)習(xí)任務(wù),我們利用已經(jīng)過少量有標(biāo)簽數(shù)據(jù)訓(xùn)練的鑒別網(wǎng)絡(luò)和大量的無標(biāo)簽數(shù)據(jù),以一種自學(xué)習(xí)的方式來進一步訓(xùn)練分割網(wǎng)絡(luò).主要思想是,整個網(wǎng)絡(luò)模型經(jīng)少量有標(biāo)簽數(shù)據(jù)訓(xùn)練之后,鑒別器已基本具備對生成的分割結(jié)果進行鑒別的能力,由于分割網(wǎng)絡(luò)的分割性能還沒有達到足夠好的狀態(tài),為無標(biāo)簽數(shù)據(jù)生成的分割圖中存在一定的被嚴重錯誤分割的圖像區(qū)域,如果這些區(qū)域一起參與到進一步訓(xùn)練分割網(wǎng)絡(luò)中,將會嚴重影響分割網(wǎng)絡(luò)性能.這里用全卷積鑒別器為無標(biāo)簽數(shù)據(jù)生成置信圖,用來推斷生成的分割結(jié)果中哪些區(qū)域足夠接近圖像真實標(biāo)簽分布,然后將置信圖二值化,以突出可信區(qū)域,最后將分割結(jié)果中的可信區(qū)域作為無標(biāo)簽圖像的偽標(biāo)簽,實習(xí)半監(jiān)督學(xué)習(xí).則半監(jiān)督損失Lsemi可由式(6)算得:
其中,I(·)為 指示函數(shù),Yn′為由分割網(wǎng)絡(luò)生成的分割圖.在訓(xùn)練期間可以發(fā)現(xiàn)偽標(biāo)簽Yn′和指示函數(shù)的值都是常數(shù),因此可以將式(6)簡單的看作是帶掩碼的多分類交叉熵損失函數(shù).
為評估模型性能,本文在圖像語義分割數(shù)據(jù)集PASCAL VOC 2012[14]和Cityscapes[15]上進行了一系列實驗.整個模型實現(xiàn)在具有11G 內(nèi)存的單個GPU k40 上,為訓(xùn)練分割網(wǎng)絡(luò),本文采用SGD 優(yōu)化器,初始學(xué)習(xí)率為 2 .5×10-4,并按多項式衰減,衰減率為0.9,動量為0.9,權(quán)重衰減率為1 0-4.對于鑒別器網(wǎng)絡(luò),本文使用Adam 優(yōu)化器,學(xué)習(xí)率為 1 0-4.使用平均交并比(mIoU)作為測試指標(biāo).
PASCAL VOC 2012 包含20 種常見對象類和背景類.本文使用的是由文獻[16]提供額外標(biāo)注的增強PASCAL VOC 2012 數(shù)據(jù)集,共有10 582 張訓(xùn)練圖像,1449 張驗證圖像.Cityscapes 包含19 種對象類和背景類,共有2975 張訓(xùn)練圖像,500 張驗證圖像和1525 張測試圖像.表1、表2分別給出了模型在數(shù)據(jù)集PASCAL VOC 2012 和Cityscapes 驗證集上的評估結(jié)果,并與其他半監(jiān)督圖像語義分割方法進行了比較,其中基準(zhǔn)方法指的是沒有加入對抗訓(xùn)練的分割網(wǎng)絡(luò),本文基準(zhǔn)方法是指編碼器-解碼器結(jié)構(gòu)的分割網(wǎng)絡(luò).為營造半監(jiān)督學(xué)習(xí)的環(huán)境,本文從10 582 張有標(biāo)簽訓(xùn)練集中隨機采樣1/8,1/4,1/2 數(shù)據(jù),保留其標(biāo)簽作為有標(biāo)簽數(shù)據(jù),其余圖像用作無標(biāo)簽數(shù)據(jù).實驗表明,本文提出的方法在兩個數(shù)據(jù)集上都取得更優(yōu)的分割性能,其中在Cityscapes驗證集上更是比文獻[11]高出2.4%-4%.同時對抗訓(xùn)練的加入,使得模型平均分別在兩個數(shù)據(jù)集取得了3.6%、3.2%的性能提升.
表1 PASCAL VOC 2012 驗證集上半監(jiān)督方法性能比較
表2 Cityscapes 驗證集上半監(jiān)督方法性能比較
雖然本文提出的算法是用于解決半監(jiān)督語義分割問題的,但依然可以用全部有標(biāo)簽數(shù)據(jù)參與訓(xùn)練并驗證模型有效性.表3、表4分別展示的是在數(shù)據(jù)集PASCAL VOC 2012 和Cityscapes 上,用全Z 部有標(biāo)簽數(shù)據(jù)訓(xùn)練模型的評估結(jié)果,并與主流的圖像語義分割模型做了對比.實驗結(jié)果顯示,本文所提出的方法與目前主流圖像語義分割方法相比具有一定優(yōu)勢.需要指出的是,基于ResNet-101 的DeepLab-v2 取得的性能略優(yōu)于本文所提出方法.這主要是因為,為了減少內(nèi)存占用量,本文并沒有使用DeepLab-v2 用到的多尺度輸入,并對分類器ASPP 做了一定的簡化,并且在DeepLab-v2 中也提到,將同一圖像縮放成不同尺度輸入到深度卷積神經(jīng),并將得到的不同粒度的特征聚合,可以取得更好的性能提升.圖4、圖5分別給出了本文提出算法在數(shù)據(jù)集PASCAL VOC 2012 和Cityscapes 上用1/8 有標(biāo)簽數(shù)據(jù)訓(xùn)練之后,在驗證集上的分割效果展示,從左到右依次為輸入圖像、圖像真實標(biāo)簽和本方法分割結(jié)果.
表3 PASCAL VOC 2012 驗證集上實驗結(jié)果對比
表4 Cityscapes 驗證集上實驗結(jié)果對比
圖4 在PASCAL VOC 2012 驗證集上分割效果展示
圖5 在Cityscapes 驗證集上分割效果展示
本文基于DeepLab-v2 提出了一種簡潔、高效的編碼器-解碼器分割網(wǎng)絡(luò),并將其與生成對抗網(wǎng)絡(luò)相結(jié)合,應(yīng)用到半監(jiān)督圖像語義分割任務(wù)中.解碼器模塊逐步上采樣逐漸增大特征分辨率的同時,不斷融合編碼器淺層語義信息,從而優(yōu)化目標(biāo)分割細節(jié).在PASCAL VOC 2012 和Cityscapes 數(shù)據(jù)集上的實驗表明,該方法性能明顯優(yōu)于其他半監(jiān)督圖像語義分割方法.目前該方法在融合淺層特征時只是簡單的將這些特征加和,但深層特征更抽象,表達能力也更強.接下來將考慮不同層次特征融合時的權(quán)重,以期望進一步改善半監(jiān)督圖像語義分割性能.