趙偉楓
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
語義分割任務[1-4]是對圖像中的每一個像素進行分類,是像素級別的分類任務,廣泛應用于自動駕駛[5]等領域。但是,標注像素級別的標簽需要耗費大量的人力物力。目前研究人員利用電腦合成圖像[6-7]訓練卷積神經網絡,由于合成圖像的標簽簡單易得,因此理論上可以無限擴充數據集。在電腦合成數據集上訓練的卷積神經網絡應用在對應的數據集上具有很高的識別率,但是應用在現實場景圖像中時卻表現出較差的性能,原因是合成數據集和現實場景數據集中的圖像存在域的差距。無監督域自適應方法可以將源域學到的知識遷移到目標領域中,從而有效解決語義分割中的域偏移問題[8-10]。
將合成圖片數據集視為源域,即源域為帶標簽的數據集;將現實場景的圖像數據集視為目標域,即目標域的圖像是不帶標簽的。跨域語義分割任務的本質是如何利用源域數據集來引導網絡對到目標域數據集圖像的分類更加準確,也就是提取到更多具有域不變性質的特征。文獻[11]和文獻[12]將對抗思想應用在跨域語義分割任務中,但都只在整體層面上進行了對抗,沒有考慮到城市道路場景圖像中的空間位置關系。源域數據集和目標域數據集中的圖像都是道路場景,圖像中類的分布和空間位置關系有強烈的相關性[13]。例如,天空、樹木等在圖像的上部,交通標志、建筑等主要分布在圖像的中部,而馬路、行人等主要分布在圖像的下半部分。圖像中這種類別關系是不變的,如果不考慮這些位置關系直接利用對抗思想將兩個域的圖像拉近,往往會導致卷積神經網絡去提取更容易識別的特征。考慮到上述方法存在的問題,根據圖像的空間位置關系,本文提出了縱向分塊對抗和橫向分塊對抗策略。為了使網絡可以更多地關注到塊內的特征,將源域圖像分為整體和局部兩個層面進行有監督的訓練。
語義分割是計算機視覺任務中最具有挑戰性的任務之一,目前大部分語義分割算法都是基于全卷積網絡(Fully Convolutional Networks,FCN)[14]發展而來。為了擴大感受野,使卷積神經網絡可以提取到更加豐富的特征,通常采用空洞卷積方法進行語義分割[15-19]。由于卷積神經網絡的層數較多,利用較深層的特征圖進行上采樣得到的分割圖往往會丟失較多的信息,因此研究人員提出了多尺度融合和多層金字塔池化的方法來融合不同層數的 特征。
語義分割任務需要像素級別的標簽,但是像素級別的標簽需要耗費大量的人力物力。文獻[11]將對抗學習方法應用到跨域語義分割任務中,利用中間層和輸出層的特征圖分別進行對抗來實現跨域的目的。但是該研究沒有考慮圖像中的空間位置關系,在對齊兩個域的特征的時候往往會導致一些類別的差距越拉越大導致負面的結果。文獻[20]采用基于熵最小化的方法來進行無監督域自適應語義分割,利用目標域的輸出預測圖的熵值大小來衡量預測是否準確。但這種方法會使預測概率值高的類別在熵損失函數中有較大的梯度,網絡就會更傾向于遷移簡單樣本(像素數量占比較大的類別)而忽略難樣本。也就是說,采用基于熵最小化的語義分割方法會導致難樣本難以遷移,加劇了類不平衡的問題,跨域效果較差。

圖1 整體網絡處理流程
此外,傳統的方法在源域和目標域進行對抗訓練的過程中,生成器會偏向于提取數量占比更多類別的特征而忽視數量占比較少的類別,導致在數據集中存在的類不平衡問題更加嚴重。而分塊對抗方法可以從一定程度上解決這個問題,源域和目標域塊與塊之間的類別占比相較于整幅圖像來說差距會明顯縮小,在減少類別的同時對抗損失函數會更容易收斂。
考慮到不同類別在圖像中的空間位置關系,利用分塊的對抗方法來幫助網絡提取源域和目標域中塊與塊之間的域公共信息。將源域特征圖Fs∈RH×W×C均分為上、中、下3部分,分別為。同時將與之對應的目標域特征圖Ft∈RH×W×C也分為上、中、下3部分,分別為、。針對整張特征圖進行對抗損失,即:

式中:E(·)為期望值,D為鑒別器。根據式(1)在上、中、下3個位置做對抗損失,保證各個位置可以提取到與位置信息相關的域不變特征,即:

式中,Ladvup為上部分的對抗損失函數,Ladvm為中間部分的損失函數,Ladvd為下部分的損失函數。
道路場景數據集中類與類之間不僅存在上、中、下的空間位置關系,同時還存在左、中、右的空間位置關系。例如,在圖像的中間的類別一般是道路、行人、汽車等,而在道路兩旁的類別一般是樹木、建筑、地臺等。基于此,不僅在圖像的上、中、下3部分進行分塊對抗學習,同時也在圖像的左、中、右3部分進行分塊對抗學習。同時,為了盡可能多地提取到域不變信息,將分塊對抗學習與整體對抗學習方法相結合,以此來保證網絡能提取到盡可能多的有效信息。將源域特征圖Fs∈RH×W×C均分為左、中、右3部分,分別為、。同時把與之對應的目標域特征圖Ft∈RH×W×C分為左、中、右3部分,分別為。在左、中、右3個位置進行對抗損失,保證各個位置可以提取到與位置信息相關的域不變特征,即:

式中,Ladv1為左邊部分的對抗損失函數,Ladvm為中間部分的損失函數,Ladvr為右邊部分的損失函數。
由于本文將源域圖像和目標域圖像進行了上、中、下和左、中、右的分塊操作,因此分別在塊內利用標簽進行有監督的訓練。同時為了不丟失圖像整體之間類與類之間的相關聯性,將分塊交叉熵損失與整體交叉熵損失相結合,保證網絡能夠同時提取局部和整體的特征。整體交叉熵損失函數為:

式中:G為分割網絡,c為類別數目。為了提取到塊內獨有的特征,本文提出了分塊的交叉熵損失函數,即:

總的損失函數為:

在深度學習框架PyTorch上進行實驗,使用NVIDIA 2080TI GPU進行訓練和測試工作。受限于GPU內存,在訓練過程中把源域數據集GTA5中的圖片剪裁為720×1 280像素,把源域數據集SYNTHIA中的圖片剪裁為760×1 280像素,把目標域數據集Cityscapes中的圖片剪裁為512×1 024像素。網絡包含VGG16和ResNet101兩種,采用隨機梯度下降(Stochastic Gradient Descent,SGD)[21]優化器來優化分割網絡,利用poly策略[22]來更新學習率。由于語義分割任務是預測像素級別的標簽,因此為了使源域和目標域像素之間的風格更加相近,本文在BN(Batch Normalization)的基礎上加入了IN(Instance Normalization)來實現域之間像素分割的靠攏[23]。
為了驗證本文所提方法的有效性,分別做了數據集GTA5到Cityscapes和數據集Synthia到Cityscapes的跨域實驗,采用平均交并比(Mean Intersection over Union,MIoU)評 測 實 驗 結 果。MIoU表示模型對每一類預測的結果和真實值的交集與并集的比值,求和再平均的結果。
為了保證實驗結果的有效性,利用ResNet101和VGG16兩種網絡作為基礎框架進行實驗。將本文所提方法與Adapt[11]、CLAN[24]以及Advent[20]跨域語義分割方法在GTA5數據集到Cityscapes數據集的19個公共類上進行跨域實驗,定量評價結果如表1所示。Adapt和CLAN主要采取對抗損失的方法來對齊兩個域的特征分布,Advent則利用熵值最小化的思想通過約束目標域預測圖的熵值損失函數來對齊兩個域。

表1 數據集GTA5到Cityscapes的跨域語義分割MIoU值對比
由表1可知,本文所提方法對Road、Wall、Fence以及Sky等類別的識別率較高,優于從整體層面進行對抗的方法,不僅對主要類別的像素級分類起到了正向的作用,同時對次要類別以及占比極小類別的分類正確率也有一定的提升。
除此之外,開展Synthia數據集到Cityscapes數據集的跨域實驗。由于Synthia數據集到Cityscapes數據集之間的域差異比GTA5到Cityscapes數據集之間的域差異要大,因此在Synthia數據集到Cityscapes數據集的跨域語義分割是非常有挑戰性的。表2給出了不同方法在13個公共類上的MIoU值。

表2 數據集Synthia到 Cityscapes的跨域語義分割MIoU值對比
通過觀察可以發現,本文所提出方法在Synthia到Cityscapes的跨域語義分割中同樣取得了較好的結果。
GTA5到Cityscapes的跨域語義分割的視覺效果如圖2所示。
根據圖2,本文方法不僅較好地分割出了公交車、建筑物以及道路等主要類別,而且相較于其他方法對次要類別的分割效果也有了明顯的提高。對于較為復雜的城市道路場景圖像,其包含的類別較多,本文所提方法能夠顯著提高對交通標志、欄桿的分割效果,同時分割邊緣也更加平滑。基于以上分割結果對比,本文所提出的分塊對抗跨域語義分割方法可以有效提升圖像的分割效果,并且緩解了數據集中存在的數據不平衡等問題。

圖2 GTA5到Cityscapes上的分割效果
為了提升圖像跨域語義分割網絡的性能,本文充分挖掘了城市道路場景圖像中類別之間的空間位置關系,提出了分塊對抗學習的方法。相較于現有的跨域語義分割方法,基于位置對抗學習的道路場景無監督域自適應語義分割在分割效果方面有了一定的提升。但是該方法也存在一定的局限性,例如域之間的位置信息挖掘得不夠充分,導致模型在一些類別較復雜的場景仍會出現錯誤分類的情況。在接下來的工作中,將會尋找更加有效的方法來建立類與類之間的位置關系,進一步優化跨域語義分割 網絡。