劉貝貝,華 蓓
(中國科學技術大學 計算機科學與技術學院,合肥 230027)
圖像語義分割是為圖像中的每一個像素點指定一個語義類別,是一種像素級的空間密集型預測任務,被廣泛應用到無人駕駛技術、無人機領域和醫療圖像檢測與分析等[1]任務中.深度卷積神經網絡(Convolutional Neural Network,CNN)的出現,尤其是全卷積神經網絡的出現(Fully Convolutional Network,FCN)[2],極大地推動了圖像語義分割的發展,目前大多數先進的圖像語義分割方法都是在FCN 的基礎上進行調整,通過使用更深的網絡、空洞卷積[3]、空洞空間金字塔池化模塊(Atrous Spatial Pyramid Pooling,ASPP)[4]等技術不斷刷新分割精度.
雖然基于CNN 的圖像語義分割方法已經取得了驚人的性能,但訓練這些方法需要大量的有標簽數據.不同于圖像分類、目標檢測任務,圖像語義分割需要的是像素級的標注,訓練數據的獲取費時又費力.為緩和這一問題,半監督/弱監督方法已應用到圖像語義分割任務中.在弱監督圖像語義分割方法中,分割網絡并不使用具有像素級標注的數據進行訓練,而是用的更容易獲取的各種弱監督信號,例如圖像類別[5]、物體邊界框等[6].文獻[5]提出,基于卷積神經網絡將多實例學習框架從檢測任務擴展到圖像語義分割任務,此時圖像語義分割可以被定義為給定一張圖像和其對象類別標簽,推斷圖像中的每一個像素是否屬于對象類,并約束模型為分類正確的像素分配更高的權重.BoxSup[6]則是使用物體邊界框作為弱監督信號,其基本思想是,首先使用區域建議方法生成候選分割掩模,分割網絡在這些候選掩模的監督下進行訓練,更新的網絡反過來改進了用于訓練的候選分割掩模,整個過程是迭代的.雖然分割掩模在剛開始的時候是粗糙的,但它們隨著訓練的進行逐漸得到改進,然后為訓練分割網絡提供有用的信息.基于半監督學習的圖像語義分割方法大多綜合使用少量的像素級標注的訓練圖像和大量的弱標注圖像.例如文獻[7]構建了一個由分類網絡和分割網絡組成的框架,其中分類網絡作為整個框架的特征提取器,首先用大量的具有圖像類別信息的數據進行訓練,然后在分類網絡固定的情況下,使用少量具有像素級標注的圖像優化分割網絡.然而,以上這些方法并沒有取得很好的性能,因為它們無法從弱監督信號或少量像素級標注圖像中恢復詳細的目標邊界.
生成對抗網絡(Generative Adversarial Networks,GAN)[8]自被提出以來就受到了各界的廣泛關注,并被嘗試應用到很多領域,例如圖像到圖像生成[9]、圖像語義分割等[10-12],并取得了很好的性能提升.典型的GAN模型包括生成器、鑒別器兩部分,這兩部分通過對抗的方式進行訓練.在訓練過程中,生成器的目標是將采樣自某固定分布的樣本變換成近似服從目標數據分布的樣本,而鑒別器的目標是準確判別出樣本來自生成數據還是目標數據.通過反向傳播算法,生成器、鑒別器的性能都得以提升,最終達到鑒別器無法準確區分數據來源的狀態,此時可以認為生成器生成的數據已近似服從目標數據分布.文獻[10]是第一個將生成對抗網絡應用于圖像語義分割的工作,該方法為后來的方法奠定了基本框架,即將主流語義分割網絡作為生成對抗網絡的生成器.通過對抗訓練,該方法可以在不需要增加復雜的后期處理的情況下,鼓勵分割網絡生成更加接近目標數據的樣本.然而,它并不是適用于所有數據集的通用方法,相比于基準方法也沒有明顯的性能提升.文獻[12]從另一角度思考問題,提出一種半監督圖像語義分割方法,并創造性的提出了全卷積鑒別器.該算法將鑒別器視為分割網絡,并用生成器生成的樣本擴展數據集.然而,該方法并沒有取得很好的效果,因為生成的樣本不足夠接近真實樣本,不能幫助訓練分割網絡.文獻[11]是目前性能最優的半監督語義分割方法,該方法沿用了文獻[10]中提出的基本框架,即分割網絡作為生成器,同時采用了全卷積方式的鑒別器,該鑒別器不僅能夠為輸入數據提供像素級的鑒別(鑒別每一個像素點采樣自生成圖像還是真實標簽),還能進一步為無標簽數據生成置信圖,并將置信圖作為額外的監督信號,來實現半監督學習.同時,文獻[11]也存在著一些問題,其中最為顯著的就是分割網絡過于簡單,直接通過一次上采樣操作將特征圖放大到輸入圖像大小,在分割過程沒有充分利用淺層網絡中包含的豐富的圖像細節信息,但是,將不同尺的度特征信息相融合有助于進一步提升網絡分割性能[4].
基于以上介紹和分析,本文在文獻[11]的基礎上,提出一種基于生成對抗網絡的半監督圖像語義分割方法,其中編碼器-解碼器作為生成對抗網絡生成器,鑒別器依然采用全卷積的方式.不同于文獻[11]使用的直接上采樣,本文提出的解碼器模塊在逐步上采樣逐漸增大特征分辨率的同時,通過整合來自淺層精細的外觀信息恢復目標分割細節.此外,全卷積鑒別器通過發現無標簽數據分割結果中的可信區域,并將可信區域作為額外的監督信號來實現半監督學習.實驗結果顯示,相較于其他半監督圖像語義分割方法,本文提出的算法有明顯的分割性能提升.
本文提出的網絡結構包括分割網絡(生成器)、鑒別網絡兩部分,如圖1所示.分割網絡將大小為H×W×3的RGB 圖像作為輸入,輸出大小為H×W×C的分割圖,其中C為語義類別.鑒別網絡將生成的分割結果或圖像真實標簽作為輸入,輸出大小為H×W×1的空間概率圖,也稱置信圖.
ASPP 是DeepLab-v2 提出的用于捕獲目標不同尺度上下文信息的重要模塊,如圖2所示.ASPP 中存在4 個并行的空洞卷積操作,其卷積核大小都為 3×3,步長也都為1,每個空洞卷積的膨脹率d分別為6,12,18,24,相應的輸入特征填充率p分別為6,12,18,24,由式(1)可知.

圖2 分類器ASPP 示意圖

這種參數設置的空洞卷積具有相同大小的輸出,且與輸入特征的分辨率也相同,所以經ASPP 處理并不會改變特征分辨率.在本文中,我們對原始ASPP 做了如下簡化工作,去除了不同采樣率的空洞卷積之后的1 ×1卷積,取而代之的是,在進行不同采樣率的空洞卷積時將通道數設置為語義類別數,并將得到的不同尺度的特征相加,作為最終分類結果.最后,經雙線性插值上采樣和沿通道方向的Softmax 操作獲取最后的分割輸出.
編碼器-解碼器模塊由2 部分組成:編碼器和解碼器.其中編碼器逐漸減小特征圖大小并捕獲更高層次的語義信息;解碼器逐漸恢復對象細節信息和空間維度.整個結構利用來自編碼器模塊的多尺度特征,并從解碼器模塊恢復空間分辨率.
基于生成對抗網絡的語義分割方法中分割網絡可以是任意主流圖像語義分割模型,例如FCN、DeepLabv2 等,本文采用的是基于ResNet-101[13]的DeepLabv2 模型,并將其改造成編碼-解碼結構,如圖3所示.編碼器模塊經ResNet-101 中一個卷積、一個最大池化和4 個殘差塊處理后,逐漸降低特征分辨率為輸入圖像的1/8 大小,同時,不同深度的卷積層編碼了不同尺度的特征信息.解碼器模塊首先將第四個殘差塊輸出的特征圖經多尺度分類器ASPP 處理,然后進行2 倍的雙線性上采樣變為輸入圖像的1/4,同時將編碼器中輸入圖像1/4 大小的特征圖,也即為第一個殘差塊的輸出,同樣經過分類器ASPP 處理,將兩者相加進行第二次2 倍的雙線性上采樣,此時輸出的特征圖為輸入圖像的1/2.同樣地,將編碼器中輸入圖像1/2 大小的特征圖,也即為ResNet-101 中第一個卷積層的輸出,經過分類器ASPP 處理,并于之前求得的輸入圖像1/2 大小的特征圖相加,最后再經過一次2 倍的雙線性上采樣即可恢復至輸入圖像大小.在整個解碼過程中,始終保持特征圖的通道數為圖像語義類別數(例如對于數據集PASCAL VOC 2012,解碼過程中通道數為21),這將有效減少壓縮特征數的成本.解碼器模塊經過兩次加和、三次雙線性上采樣逐漸增大特征分辨率,并在此過程中不斷融合具有相同分辨率的淺層語義信息,從而優化物體分割細節.
這里鑒別器沿用了文獻[11]采用全卷積結構.整個鑒別器由5 個卷積核為4 ×4、步長為2 的卷積層組成,每個卷積層的通道數依次為64,128,256,512,1.此外,為了將輸出特征圖放縮到原圖大小,本文在整個鑒別器的最后加了一個上采樣層.

圖3 分割網絡示意圖
本文使用以下符號表示法:Xn表示大小為H×W×3 的待分割RGB 圖像,Yn表示大小為H×W×C的圖像真實標簽,其中C為類別數,G(.)表示分割網絡,其輸出維度同樣為H×W×C,D(·)表示鑒別網絡,其輸出維度為H×W×1.
(1) 鑒別網絡:本文通過最小化二分類交叉熵損失函數LD來訓練鑒別網絡.

其中,i為位置標號.需要指出的是,為了保持分割網絡和鑒別網絡的平衡這里只用有標簽數據訓練鑒別網絡.
(2) 分割網絡:本文通過最小化多任務交叉熵損失函數Lseg來訓練分割網絡,它是標準多分類交叉熵損失和對抗損失的加權和.由式(3)算得:

式(3)中的第一項Lmce為多分類交叉熵損失,它是應用于圖像語義分割任務的標準損失函數,Ladv是對抗損失,Lsemi為半監督學習損失.λadv和λsemi是為了最小化整個損失函數設置的兩個超參數.
首先考慮用有標簽數據訓練分割網絡的情況.給定一張待分割圖像Xn,分割網絡生成的分割圖為G(Xn),則多分類交叉熵Lmce可由式(4)算得:

對抗損失函數由式(5)算得:

通過對抗損失,整個網絡模型將鼓勵分割網絡生成對于鑒別網絡而言難以和圖像真實標簽區分開的分割圖,從而達到優化目標分割細節的目的.
當用無標簽數據訓練分割網絡時,我們考慮在半監督條件下的對抗訓練.對于無標簽數據,由式(4)和式(5)可知,由于缺少圖像真實標簽Yn,無法直接計算多分類交叉熵損失Lmce,但對抗損失Ladv只涉及到分割網絡、鑒別網絡和輸入圖像Xn,所以依然有效.為實現半監督學習任務,我們利用已經過少量有標簽數據訓練的鑒別網絡和大量的無標簽數據,以一種自學習的方式來進一步訓練分割網絡.主要思想是,整個網絡模型經少量有標簽數據訓練之后,鑒別器已基本具備對生成的分割結果進行鑒別的能力,由于分割網絡的分割性能還沒有達到足夠好的狀態,為無標簽數據生成的分割圖中存在一定的被嚴重錯誤分割的圖像區域,如果這些區域一起參與到進一步訓練分割網絡中,將會嚴重影響分割網絡性能.這里用全卷積鑒別器為無標簽數據生成置信圖,用來推斷生成的分割結果中哪些區域足夠接近圖像真實標簽分布,然后將置信圖二值化,以突出可信區域,最后將分割結果中的可信區域作為無標簽圖像的偽標簽,實習半監督學習.則半監督損失Lsemi可由式(6)算得:

其中,I(·)為 指示函數,Yn′為由分割網絡生成的分割圖.在訓練期間可以發現偽標簽Yn′和指示函數的值都是常數,因此可以將式(6)簡單的看作是帶掩碼的多分類交叉熵損失函數.
為評估模型性能,本文在圖像語義分割數據集PASCAL VOC 2012[14]和Cityscapes[15]上進行了一系列實驗.整個模型實現在具有11G 內存的單個GPU k40 上,為訓練分割網絡,本文采用SGD 優化器,初始學習率為 2 .5×10-4,并按多項式衰減,衰減率為0.9,動量為0.9,權重衰減率為1 0-4.對于鑒別器網絡,本文使用Adam 優化器,學習率為 1 0-4.使用平均交并比(mIoU)作為測試指標.
PASCAL VOC 2012 包含20 種常見對象類和背景類.本文使用的是由文獻[16]提供額外標注的增強PASCAL VOC 2012 數據集,共有10 582 張訓練圖像,1449 張驗證圖像.Cityscapes 包含19 種對象類和背景類,共有2975 張訓練圖像,500 張驗證圖像和1525 張測試圖像.表1、表2分別給出了模型在數據集PASCAL VOC 2012 和Cityscapes 驗證集上的評估結果,并與其他半監督圖像語義分割方法進行了比較,其中基準方法指的是沒有加入對抗訓練的分割網絡,本文基準方法是指編碼器-解碼器結構的分割網絡.為營造半監督學習的環境,本文從10 582 張有標簽訓練集中隨機采樣1/8,1/4,1/2 數據,保留其標簽作為有標簽數據,其余圖像用作無標簽數據.實驗表明,本文提出的方法在兩個數據集上都取得更優的分割性能,其中在Cityscapes驗證集上更是比文獻[11]高出2.4%-4%.同時對抗訓練的加入,使得模型平均分別在兩個數據集取得了3.6%、3.2%的性能提升.

表1 PASCAL VOC 2012 驗證集上半監督方法性能比較

表2 Cityscapes 驗證集上半監督方法性能比較
雖然本文提出的算法是用于解決半監督語義分割問題的,但依然可以用全部有標簽數據參與訓練并驗證模型有效性.表3、表4分別展示的是在數據集PASCAL VOC 2012 和Cityscapes 上,用全Z 部有標簽數據訓練模型的評估結果,并與主流的圖像語義分割模型做了對比.實驗結果顯示,本文所提出的方法與目前主流圖像語義分割方法相比具有一定優勢.需要指出的是,基于ResNet-101 的DeepLab-v2 取得的性能略優于本文所提出方法.這主要是因為,為了減少內存占用量,本文并沒有使用DeepLab-v2 用到的多尺度輸入,并對分類器ASPP 做了一定的簡化,并且在DeepLab-v2 中也提到,將同一圖像縮放成不同尺度輸入到深度卷積神經,并將得到的不同粒度的特征聚合,可以取得更好的性能提升.圖4、圖5分別給出了本文提出算法在數據集PASCAL VOC 2012 和Cityscapes 上用1/8 有標簽數據訓練之后,在驗證集上的分割效果展示,從左到右依次為輸入圖像、圖像真實標簽和本方法分割結果.

表3 PASCAL VOC 2012 驗證集上實驗結果對比

表4 Cityscapes 驗證集上實驗結果對比

圖4 在PASCAL VOC 2012 驗證集上分割效果展示

圖5 在Cityscapes 驗證集上分割效果展示
本文基于DeepLab-v2 提出了一種簡潔、高效的編碼器-解碼器分割網絡,并將其與生成對抗網絡相結合,應用到半監督圖像語義分割任務中.解碼器模塊逐步上采樣逐漸增大特征分辨率的同時,不斷融合編碼器淺層語義信息,從而優化目標分割細節.在PASCAL VOC 2012 和Cityscapes 數據集上的實驗表明,該方法性能明顯優于其他半監督圖像語義分割方法.目前該方法在融合淺層特征時只是簡單的將這些特征加和,但深層特征更抽象,表達能力也更強.接下來將考慮不同層次特征融合時的權重,以期望進一步改善半監督圖像語義分割性能.