王柏涵,姜曉燕,范柳伊
(上海工程技術(shù)大學(xué)電子電氣工程學(xué)院,上海 201600)
語義分割是旨在圖像中每個像素分配其所屬類別的標(biāo)簽并進(jìn)行密集預(yù)測。在計算機(jī)視覺領(lǐng)域,圖像的語義分割是一項基礎(chǔ)且重要的任務(wù),是當(dāng)前的重要研究方向和研究熱點,且在場景理解[1]、醫(yī)學(xué)圖像分析[2]、機(jī)器人系統(tǒng)感知[3]等方面具有重要應(yīng)用。
近年來,卷積神經(jīng)網(wǎng)絡(luò)(CNN)以其強(qiáng)大的紋理特征學(xué)習(xí)能力,在多個計算機(jī)視覺任務(wù)中成為研究熱點。文獻(xiàn)[4]提出一種全卷積網(wǎng)絡(luò)(FCN),該方法將傳統(tǒng)的全連接層替換為卷積層,使得網(wǎng)絡(luò)可以接受任意大小的輸入圖像,同時實現(xiàn)基于深度學(xué)習(xí)、端到端的 語義分 割流程。RONNEBERGER等[5]提出一種結(jié)構(gòu)呈U 字形的語義分割網(wǎng)絡(luò)U-Net,該方法采用編碼器-解碼器結(jié)構(gòu),在編碼階段使用卷積神經(jīng)網(wǎng)絡(luò),在解碼階段通過上采樣和反卷積操作逐漸將特征映射的分辨率恢復(fù)到輸入圖像尺寸,同時利用跳層連接,將編碼器中的特征映射與解碼器中的特征映射進(jìn)行融合,以提高分割結(jié)果的準(zhǔn)確性。為擴(kuò)大卷積核感受野且捕捉多尺度的上下文信息,CHEN等[6]提出空洞空間金字塔池化模塊,通過融合多尺度特征提升分割性能。上述經(jīng)典的語義分割方法,其主干網(wǎng)絡(luò)均采用了傳統(tǒng)的編解碼結(jié)構(gòu)及其變體,通過設(shè)計不同的特征融合策略、上采樣方式,有效提升語義分割的精度。
隨著深度學(xué)習(xí)的發(fā)展,針對性地對現(xiàn)有語義分割方法進(jìn)行改進(jìn)。例如,針對規(guī)則物體的邊緣區(qū)域分割結(jié)果不平滑問題,DHINGRA等[7]提出使用2 個圖卷積網(wǎng)絡(luò),分別用于全局特征提取和邊界細(xì)化,實現(xiàn)對邊界區(qū)域的像素進(jìn)行建模;同時還使用邊界監(jiān)督損失函數(shù),通過迭代地調(diào)整邊界區(qū)域的權(quán)重來優(yōu)化網(wǎng)絡(luò),從而更好地利用邊界區(qū)域的信息。針對圖像分割任務(wù)中上下文特征聚合效率低的問題,YUAN等[8]認(rèn)為1 個像素所屬的類別與其所屬物體強(qiáng)相關(guān),因此提出利用像素所屬類別表征像素,通過加權(quán)聚合上下文信息,增強(qiáng)像素的特征表征,實現(xiàn)分割結(jié)果的提升。
盡管上述針對性改進(jìn)的方法均提升了語義分割效果,解決了特定問題,但語義分割領(lǐng)域仍然存在2 個方面的問題:1)從實現(xiàn)過程上分析,現(xiàn)有分割方法大多數(shù)是基于卷積神經(jīng)網(wǎng)絡(luò),而傳統(tǒng)的卷積操作本身具有較強(qiáng)的局限性,其感受野大小與參數(shù)量成正比,因此,卷積操作盡管可以較好地學(xué)習(xí)局部的紋理特征,但是難以高效捕捉遠(yuǎn)距離區(qū)域間的關(guān)系,而在語義分割任務(wù)中,1 個像素的所屬類別不僅和其相鄰像素有關(guān),還可能與圖像中的任意像素有關(guān);2)從分割結(jié)果分析,現(xiàn)有方法存在反常識現(xiàn)象,該現(xiàn)象體現(xiàn)為分割結(jié)果中2 個緊密相鄰的區(qū)域被分割為沒有任何語義相關(guān)性的標(biāo)簽[9],究其原因在于現(xiàn)有方法的監(jiān)督學(xué)習(xí)對象僅為像素級的語義標(biāo)簽,難以學(xué)習(xí)到類別間的相互關(guān)系和物體內(nèi)的一致性。
為增強(qiáng)網(wǎng)絡(luò)針對區(qū)域間關(guān)系的學(xué)習(xí)能力,改善分割結(jié)果中的反常識現(xiàn)象,本文提出一種基于深度監(jiān)督隱空間構(gòu)建的語義分割改進(jìn)方法。本文工作如下:1)針對分割結(jié)果出現(xiàn)反常識現(xiàn)象問題,提出使用“特征圖-隱空間-特征圖”流程,將圖像特征與自然語言標(biāo)簽共同投影至高維空間,使用對比損失函數(shù)輔助監(jiān)督訓(xùn)練過程,通過保持圖像特征與語言特征的一致性,實現(xiàn)特征轉(zhuǎn)換過程的準(zhǔn)確性;2)針對“特征圖-隱空間-特征圖”流程中出現(xiàn)的分配失衡和位置信息丟失問題,使用深度監(jiān)督技術(shù)約束投影矩陣分布,避免部分像素特征丟失,在隱空間構(gòu)建過程中加入節(jié)點位置編碼,保留特征的位置信息。
FCN 網(wǎng)絡(luò)是一種用于語義分割的深度神經(jīng)網(wǎng)絡(luò)模型,其實現(xiàn)過程分為3 個步驟:
1)使用預(yù) 訓(xùn)練的 卷積神 經(jīng)網(wǎng)絡(luò)(如VGG[10]、ResNet[11])提取圖像特征,此過程包含多次卷積與下采樣操作,得到分辨率較低的多通道特征圖,該過程稱為編碼階段。為了獲得密集的像素級預(yù)測,F(xiàn)CN需要將特征圖上采樣到原始圖像分辨率,該階段稱為解碼階段。FCN 中使用的上采樣方式為轉(zhuǎn)置卷積,也稱為反卷積,可以將輸入的低分辨率特征圖進(jìn)行擴(kuò)展,并且在擴(kuò)展過程中進(jìn)行卷積操作,從而得到高分辨率的特征圖。轉(zhuǎn)置卷積的實現(xiàn)過程為給定輸入特征圖、卷積核、步長、填充大小和目標(biāo)的輸出特征圖尺寸,先對輸入特征圖進(jìn)行零填充,零填充的目的是為了保證輸出張量與輸入張量的尺寸相同。將卷積核與特征圖進(jìn)行卷積操作,得到輸出特征圖。
2)將得到的特征圖與來自主干網(wǎng)絡(luò)相應(yīng)層的特征圖通過跳層連接相結(jié)合,使得網(wǎng)絡(luò)能夠同時利用高層和低層的特征、保留空間信息,提高分割的準(zhǔn)確性。
3)合并后的特征圖通過1 個Softmax 層,以獲得分割類別的概率分布。具有最高概率的類別被選為每個像素的預(yù)測標(biāo)簽,結(jié)果是1 個分割掩碼,表明輸入圖像中每個像素的類別。
本文提出的基于深度監(jiān)督隱空間構(gòu)建的語義分割改進(jìn)方法作用于FCN 上采樣之后、Softmax 之前的特征圖。由于FCN 的主干網(wǎng)絡(luò)已在ImageNet 上進(jìn)行預(yù)訓(xùn)練,因此輸出特征圖具有初始語義信息。
與傳統(tǒng)的CNN 不同,圖神經(jīng)網(wǎng)絡(luò)(GNN)在處理非歐幾里得數(shù)據(jù)時具有明顯的優(yōu)勢[12]。近年來,隨著相關(guān)研究的發(fā)展,圖神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于物體檢測、語義分割、行為識別[13-14]等任務(wù)中。其中,一些方法試圖通過結(jié)合CNN 和GNN 來捕捉抽象的語義關(guān)系,此類方法的實現(xiàn)流程可以被總結(jié)為“特征圖-隱空間-特征圖”流程。該流程主要包括3 個步驟:1)將特征從坐標(biāo)空間映射到隱藏的交互空間,構(gòu)建1 個語義感知圖;2)對圖進(jìn)行推理,更新節(jié)點特征;3)將圖映射回坐標(biāo)空間,獲得更新的特征圖。此類方法大多數(shù)在前2 個步驟上有所不同:如何從特征圖中構(gòu)建圖,如何執(zhí)行消息傳遞以更新節(jié)點特征。LI等[15]提出一種符號圖推理方法,該方法使用圖卷積網(wǎng)絡(luò)[16],對1 組符號節(jié)點進(jìn)行推理,旨在明確表示先驗知識圖中的不同語義,捕捉不同區(qū)域之間的長程依賴關(guān)系。CHEN等[17]提出1 個輕量但高效的全局推理模塊GloRe,該模塊通過全局池化和加權(quán)特征傳播,實現(xiàn)坐標(biāo)空間與隱空間的映射,并通過圖卷積在交互空間的小圖上進(jìn)行關(guān)系推理。
上述方法都指出了區(qū)域間語義關(guān)聯(lián)的重要性,并利用GNN 來提取語義特征,最終達(dá)到更好的特征提取性能,有利于下游任務(wù)的開展。但此類方法存在分配失衡和位置模糊2 個主要問題。分配失衡是指隨著訓(xùn)練的進(jìn)行,網(wǎng)絡(luò)傾向于將一部分像素分配多個節(jié)點,而另一部分像素則不分配任何節(jié)點。此現(xiàn)象導(dǎo)致后者特征在GNN 中缺失,降低網(wǎng)絡(luò)性能。位置模糊是指上述方法僅根據(jù)語義相似性來衡量區(qū)域間的連通性,并未考慮位置信息。但是在語義分割任務(wù)中,決定1 個像素的所屬類別,不僅考慮與語義特征相近的像素特征,還要考慮位置鄰近的像素特征。
本文提出的基于深度監(jiān)督隱空間構(gòu)建的語義分割改進(jìn)方法將針對上述問題進(jìn)行改進(jìn),通過加入位置編碼和深度監(jiān)督技術(shù),實現(xiàn)從特征圖到隱空間轉(zhuǎn)換過程中保留位置信息,避免部分像素語義特征丟失。
對比學(xué)習(xí)[18]通過學(xué)習(xí)如何將相似樣本在特征空間中彼此聚集,并將不相似樣本分散開,以達(dá)到學(xué)習(xí)特征表示的目的。對比學(xué)習(xí)中的目標(biāo)是最大化同類樣本之間的相似度,最小化異類樣本之間的相似度。InfoNCE[19]是對比學(xué)習(xí)中常用的一種損失函數(shù),通過將對比學(xué)習(xí)中的目標(biāo)轉(zhuǎn)化為最大化正確匹配樣本對的相似度、最小化不匹配樣本對的相似度,實現(xiàn)特征表示的學(xué)習(xí)。
為保證構(gòu)建的隱空間表征能力足夠、特征轉(zhuǎn)換有效,本文提出使用基于InfoNCE 的損失函數(shù)。通過最大化正樣本對在特征空間中的相似度、最小化負(fù)樣本對在特征空間中的相似度,使用語義標(biāo)簽輔助監(jiān)督訓(xùn)練過程,達(dá)到圖像特征與語義特征一致的目的。
深度監(jiān)督技術(shù)[20]是一種用于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方法,旨在解決傳統(tǒng)的端到端神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的梯度消失和梯度爆炸問題。該方法在網(wǎng)絡(luò)結(jié)構(gòu)中引入額外的輔助損失函數(shù),并在網(wǎng)絡(luò)的不同層次處進(jìn)行監(jiān)督,以增加訓(xùn)練期間的梯度流動,加快收斂速度并提高模型的泛化能力。深度監(jiān)督技術(shù)的核心思想是通過將多個損失函數(shù)分布在網(wǎng)絡(luò)的不同層次中,增加網(wǎng)絡(luò)的訓(xùn)練深度,從而減輕梯度消失和梯度爆炸問題[21]。在深度監(jiān)督技術(shù)中,網(wǎng)絡(luò)的每個輔助損失函數(shù)都可以看作是1 個短路徑,將梯度反向傳播到較早的層次。通過這些短路徑,輔助損失函數(shù)可以提供額外的監(jiān)督信號,以加速網(wǎng)絡(luò)的收斂和優(yōu)化。
為保證特征轉(zhuǎn)換的質(zhì)量與效率,本文基于深度監(jiān)督思想,提出使用基于Kullback-Leibler(KL)散度的損失函數(shù)監(jiān)督投影矩陣分布,使用基于InfoNCE的損失函數(shù)監(jiān)督節(jié)點特征矩陣。
本文提出基于深度監(jiān)督隱空間構(gòu)建的語義分割改進(jìn)方法,位于語義分割網(wǎng)絡(luò)的解碼器之后,作用于Softmax 之前的特征圖。該方法的整體結(jié)構(gòu)如圖1所示。其中,實線空心單向箭頭表明該步驟在推理過程和訓(xùn)練過程中均有發(fā)生,虛線單向箭頭表明該步驟僅存在于訓(xùn)練階段,虛線雙向箭頭表示箭頭兩側(cè)用于計算損失函數(shù)的預(yù)測值與真實值。圖1 中的主分支描述了本文所提方法的推理過程,該過程分為3 個階段:基于特征轉(zhuǎn)換的隱空間構(gòu)建、基于圖神經(jīng)網(wǎng)絡(luò)的特征更新、反投影。上下2 個分支僅在訓(xùn)練過程中發(fā)生,分別對應(yīng)投影矩陣和節(jié)點特征矩陣的監(jiān)督學(xué)習(xí),這2 個矩陣均在隱空間的構(gòu)建階段生成。
圖1 基于深度監(jiān)督隱空間構(gòu)建的語義分割改進(jìn)網(wǎng)絡(luò)的整體流程Fig.1 Overall procedure of semantic segmentation improvement network based on deep supervised latent space construction
在本文提出的語義分割網(wǎng)絡(luò)模型中,基于特征轉(zhuǎn)換的隱空間構(gòu)建模塊位于語義分割網(wǎng)絡(luò)模型輸出的特征圖之后,其作用是將具有相似語義特征的區(qū)域投影到隱空間內(nèi)的同1 個節(jié)點,并將區(qū)域之間的語義相似度和位置相近度表示為節(jié)點之間的邊緣權(quán)重?;谔卣鬓D(zhuǎn)換的隱空間構(gòu)建流程如圖2 所示,隱空間的表現(xiàn)形式由若干個節(jié)點和帶權(quán)邊緣組成的圖數(shù)據(jù)。
圖2 基于特征轉(zhuǎn)換的隱空間構(gòu)建流程Fig.2 Procedure of latent space construction based on feature transformation
在隱空間構(gòu)建的實現(xiàn)過程中,投影矩陣是關(guān)鍵模塊,決定了從特征圖到隱空間的映射關(guān)系。隱空間由2 個矩陣表征:節(jié)點特征矩陣和鄰接矩陣。節(jié)點特征矩陣表示每個節(jié)點的語義特征向量,而鄰接矩陣則表示節(jié)點之間的邊緣權(quán)重。
2.2.1 投影矩陣
從特征圖到投影矩陣的變換,最直接的方法是區(qū)域生長法。該方法通過將具有相似像素值的像素聚合到一起,形成1 個連通的區(qū)域,實現(xiàn)對圖像的分割。該方法的優(yōu)點在于它的簡單性和可擴(kuò)展性,由于區(qū)域生長法只需要一些簡單的圖像處理操作和像素之間的相似度比較,因此可以快速地實現(xiàn)像素級的分類。但在本任務(wù)的實際操作中,使用區(qū)域生長法不僅需要手動選擇種子點、相似度閾值等參數(shù),而且由于特征圖是高維度的且數(shù)值為浮點數(shù),因此算法的實現(xiàn)也相應(yīng)更加復(fù)雜,需要花費(fèi)更多的計算時間和存儲空間。為解決該問題,受到GloRe 方法的啟發(fā),本文從特征圖到投影矩陣的轉(zhuǎn)換由投影矩陣實現(xiàn)。投影矩陣作用在于:將坐標(biāo)空間中的像素特征投影為語義空間中的節(jié)點特征,在此過程中,坐標(biāo)空間中具有相似特征的像素,將會被分配給語義空間中的同一節(jié)點。生成投影矩陣的主要依據(jù)是編碼器-解碼器輸出的特征圖。具體地,對于特征圖X?RC×H×W,其對應(yīng)的投影矩陣為P?RC×H×W,其中C為特征圖的通道數(shù),在本文中等于類別數(shù),N為隱空間中的節(jié)點個數(shù)(該數(shù)值需人為預(yù)先設(shè)定),H、W分別為原始圖像的高和寬。
投影矩陣中處于(n,h,w)位置的元素,其數(shù)值取值范圍為(0,1),該位置元素數(shù)值大小代表將原特征圖(h,w)處的像素投影至第n個節(jié)點的概率大小。具體地,根據(jù)特征圖X,可通過式(1)得到投影矩陣P:
其中:卷積操作的卷積核大小為1。
2.2.2 節(jié)點特征矩陣
節(jié)點特征矩陣描述了特征圖投射在隱空間后生成的節(jié)點特征。生成節(jié)點特征矩陣的過程也是從像素級別的特征圖轉(zhuǎn)換到節(jié)點級別的隱空間、建模節(jié)點特征的過程。該過程的輸入是投影矩陣和特征圖,輸出為節(jié)點特征V?RN×D,其中D為節(jié)點的特征維度。
生成節(jié)點特征矩陣的直接方法是將投影矩陣與特征圖進(jìn)行矩陣相乘,但存在2 個問題:1)從計算量的角度看,此處構(gòu)建的節(jié)點特征將用于后續(xù)的圖神經(jīng)網(wǎng)絡(luò),圖神經(jīng)網(wǎng)絡(luò)中存在特征聚合與表征更新操作,若原始特征圖通道數(shù)較多,則用此方法生成的節(jié)點特征維度也相應(yīng)較高,導(dǎo)致圖神經(jīng)網(wǎng)絡(luò)階段需要較高的計算量,增加推理時間,降低運(yùn)行效率;2)從特征分布看,像素級別的特征圖轉(zhuǎn)換到節(jié)點級別的隱空間,兩者存在一定的特征分布差異,而直接使用矩陣乘法難以消除這種分布差異。為解決該問題,本文方法將先對特征圖進(jìn)行特征轉(zhuǎn)換,再生成節(jié)點特征矩陣。具體地,首先將像素特征X轉(zhuǎn)換為語義特征S?RD×H×W,其目的在于升維或降維。當(dāng)特征圖維度較高時,為降低在后續(xù)操作中的參數(shù)量,將高維度特征轉(zhuǎn)換為低維度特征;當(dāng)特征圖維度較低時,為增加網(wǎng)絡(luò)的描述能力,將低維度特征轉(zhuǎn)換為高維度特征。該轉(zhuǎn)化過程由卷積操作實現(xiàn):
其中:卷積操作的卷積核大小為1。將投影矩陣與語義特征進(jìn)行矩陣相乘,得到節(jié)點特征矩陣,即可實現(xiàn)從像素級別到節(jié)點級別的特征轉(zhuǎn)換:
2.2.3 鄰接矩陣
本文提出使用鄰接矩陣A描述節(jié)點特征的相似度Asem及其位置相近度Apos,其目的在于以更加高效的方式,將具有相似語義且距離較近的2 個節(jié)點使用更高的權(quán)重邊緣連接。具體地,將投影矩陣P展平即可得到N個長度為H×W的一維向量pi,該向量即為隱空間中第i個節(jié)點的位置編碼。本文將進(jìn)行形狀變換后的投影矩陣記為P'?RC×H×W。因此,將P'與其自身計算Cosine 相似度,即可得到描述節(jié)點位置相近度的矩陣:
其中:分子表示2 個向量的點積;分母表示2 個向量的模長。類似地,已有節(jié)點特征矩陣,展平其每個通道即可得到該節(jié)點的語義編碼vi,將進(jìn)行形狀變換后的節(jié)點特征矩陣V'與其自身計算Cosine 相似度,即可得到描述節(jié)點位置相近度Asem。最后將2 個矩陣相加,即可得到目標(biāo)鄰接矩陣A。至此,從特征圖到隱空間的轉(zhuǎn)換完成,隱空間由若干個節(jié)點及邊緣特征組成,節(jié)點特征與邊緣特征分別由V和A表示。
基于圖神經(jīng)網(wǎng)絡(luò)的特征學(xué)習(xí)模塊將節(jié)點特征和鄰接矩陣作為輸入,輸出最新的節(jié)點特征該模塊的目的是對圖進(jìn)行特征學(xué)習(xí),捕捉語義空間中的關(guān)系以及坐標(biāo)空間中的位置屬性。該過程表達(dá)式如下:
其中:W代表圖神經(jīng)網(wǎng)絡(luò)的可學(xué)習(xí)參數(shù)。
本文使用圖卷積網(wǎng)絡(luò)(GCN)對得到的節(jié)點特征進(jìn)行學(xué)習(xí)。圖卷積網(wǎng)絡(luò)是一種用于處理圖數(shù)據(jù)的卷積神經(jīng)網(wǎng)絡(luò),它在節(jié)點上進(jìn)行卷積操作,類似于在圖像上進(jìn)行像素卷積操作。圖3 所示為給定1 組圖數(shù)據(jù),圖卷積網(wǎng)絡(luò)將節(jié)點特征與其鄰居特征進(jìn)行聚合,從而生成新的節(jié)點特征表示。
圖3 圖卷積網(wǎng)絡(luò)的圖傳遞示意圖Fig.3 Schematic diagram of graph transfer in graph convolutional network
對于節(jié)點特征矩陣和鄰接矩陣,圖卷積層執(zhí)行消息計算和特征聚合操作,并輸出節(jié)點的更新特征在本文方法中,為保留節(jié)點本身的特征,將對節(jié)點本身和其鄰居進(jìn)行不同的特征計算:
其中:Ws和Wn表示針對節(jié)點表征進(jìn)行的線性變換;mv表示節(jié)點本身特征;mu代表節(jié)點鄰域聚合后的特征;AGG 操作可以是1 個簡單的平均化、最大化或求和,以匯總鄰居的特征。通過式(8)獲得更新的節(jié)點特征:
其中:σ為激活層,用于增加網(wǎng)絡(luò)的非線性。
至此,特征圖經(jīng)過圖神經(jīng)網(wǎng)絡(luò),完成了特征更新,且整個流程是端到端、可訓(xùn)練、可進(jìn)行反向傳播的。
深度監(jiān)督技術(shù)可通過在網(wǎng)絡(luò)結(jié)構(gòu)中引入輔助損失函數(shù),并在不同層次處提供額外的監(jiān)督信號,達(dá)到加速網(wǎng)絡(luò)收斂的目的。為保證特征轉(zhuǎn)換的質(zhì)量與效率,本文基于深度監(jiān)督思想,提出使用KL 散度損失函數(shù)監(jiān)督投影矩陣分布,使用InfoNCE 損失函數(shù)監(jiān)督節(jié)點特征矩陣。
2.5.1 使用KL 散度損失函數(shù)監(jiān)督投影矩陣的方法
投影矩陣的生成與應(yīng)用是端到端的,投影矩陣的數(shù)值可通過訓(xùn)練學(xué)習(xí)得到。但是在實踐過程中,本文發(fā)現(xiàn)原始的“特征圖-隱空間-特征圖”流程中存在分配失衡問題:隨著訓(xùn)練的進(jìn)行,網(wǎng)絡(luò)傾向于將一部分像素分配給多個節(jié)點,而另一部分像素不分配任何1 個節(jié)點。投影矩陣作為特征圖與隱空間相互轉(zhuǎn)換的關(guān)鍵模塊,其數(shù)據(jù)分布直接影響著特征轉(zhuǎn)換的效果。因此,本文基于深度監(jiān)督思想,提出使用基于KL 散度的損失函數(shù)監(jiān)督投影矩陣分布。KL 散度損失函數(shù)是一種用于衡量2 個概率分布之間的差異性指標(biāo),其值越小表示2 個分布越相似,反之則越不相似。對于2 個形狀同為N×(H×W)的特征分布P'、Q,其KL 散度計算式如下:
其中:P'i和Qi分別表示P'、Q第i層的概率分布。
本文提出2 種使用KL 散度損失函數(shù)監(jiān)督投影矩陣的方法。第1 種方法是首先對真實值掩碼進(jìn)行如式(1)所示的轉(zhuǎn)換操作,將得到的矩陣稱為投影參考矩陣,記作,然后計算與P'的KL 散度損 失。此方法通過顯式建模從特征圖到隱空間過程中投影矩陣的生成方式,使得網(wǎng)絡(luò)學(xué)習(xí)到的投影矩陣能夠?qū)⒃卣鲌D中具有相似語義特征的像素分配到同1個節(jié)點。第2 種方法則是使用與投影矩陣形狀相同的均勻分布矩陣Q,通過最小化P'與Q的KL 散度,使得投影矩陣的數(shù)值分布接近于均勻分布。此方法可視為第1 種方法的反面,可以減少低置信度的出現(xiàn)頻率,進(jìn)而避免轉(zhuǎn)換過程中的特征丟失。
2.5.2 使用InfoNCE 損失函數(shù)監(jiān)督節(jié)點特征矩陣的方法
為確保本文方法中從特征圖到隱空間的轉(zhuǎn)換過程有效,并且能夠構(gòu)建具有足夠表征能力的隱空間,本文提出采用InfoNCE 損失函數(shù),使用分割真實掩碼監(jiān)督得到的節(jié)點特征。具體地,首先,針對樣本圖像Ix得到的節(jié)點特征,使用多層感知機(jī)(MLP),將節(jié)點特征轉(zhuǎn)換為特征向量q?R1×D。接著,Ix對應(yīng)的真實值編碼為l+?R1×C作為對比損失中的正樣本,其元素數(shù)值為1 或0,代表掩膜中是否出現(xiàn)某個類別。同時隨機(jī)生成K個負(fù)樣本特征向量l-?RK×C,每個特征向量的元素數(shù)值同樣為1 或0,生成的l-應(yīng)滿足:使用多層感知機(jī)將l+轉(zhuǎn)換為z+?R1×D,l-轉(zhuǎn)換為z-?RK×D。至此,對比損失的計算式如下:
2.5.3 損失函數(shù)
本文采用的損失函數(shù)由3 個部分組成:預(yù)測結(jié)果與真實標(biāo)簽之間的像素級損失、投影矩陣與目標(biāo)矩陣的KL 散度損失、節(jié)點特征與語義標(biāo)簽的InfoNCE 對比損失。損失函數(shù)計算式如下:
其中:LossCE表示計算輸出的分割掩碼Y與真實值的交叉熵?fù)p失;LossKL表示計算投影矩陣P'與目標(biāo)同尺寸矩陣Q的KL 散度損失;LossNCE表示計算圖像表征與標(biāo)簽正負(fù)樣本的對比損失;α、β為可調(diào)節(jié)參數(shù),用于減小2 個損失值的差異。交叉熵?fù)p失的計算式如下:
在移栽前,為了滿足植株生長對養(yǎng)分的需求,要改善土壤理化性質(zhì),提高地表溫度,每畝追施完全腐熟的有機(jī)肥2500 kg,追施磷肥25 kg、鉀肥10 kg。將肥料均勻撒入地面后深翻土壤,深翻深度30 cm,整平后按50 cm小行、70 cm大行開溝,溝深15 cm、寬20 cm。壟高20 cm、寬30 cm,株距維持在50 cm左右。
本文在公開數(shù)據(jù)集CityScapes[22]上訓(xùn)練和評估該方法。CityScapes 由德國斯圖加特大學(xué)的計算機(jī)視覺小組于2016 年創(chuàng)建,是1 個大規(guī)模的城市街景數(shù)據(jù)集。該數(shù)據(jù)集拍攝了不同天氣狀況下,德國和瑞士50 個城市的街景圖像,包括城市中心、住宅區(qū)、高速公路和鄉(xiāng)村道路等場景。該數(shù)據(jù)集提供5 000 張精細(xì)標(biāo)注數(shù)據(jù),為避免模型過擬合、增強(qiáng)模型泛化能力,該數(shù)據(jù)僅公開了精細(xì)標(biāo)注數(shù)據(jù)中4 500 個樣本的真實掩碼,用于研究人員的訓(xùn)練與驗證,另有500 個樣本未提供真實掩碼,需在線提交驗證。在實驗中,本文采取2 975 個樣本用于訓(xùn)練,500 個樣本用于測試。每個樣本都針對19 個類別分別進(jìn)行像素級標(biāo)注。
本文從模型運(yùn)行效果和運(yùn)行效率2 個方面評價提出的網(wǎng)絡(luò)模型。在模型運(yùn)行效果方面,使用平均交并比(mIoU,計算中用mmIoU)評價模型分割結(jié)果的精度,其計算式如下:
其中:TTP表示針對真實值為真的像素,模型預(yù)測也為真;FFN表示針對真實值為假的像素,模型預(yù)測也為假;TTN表示針對結(jié)果為假的像素,模型預(yù)測為真;FFP表示針對真實值為真的像素,模型預(yù)測為假。mIoU 取值范圍為[0,1],該數(shù)值越大,分割結(jié)果越準(zhǔn)確,網(wǎng)絡(luò)效果越好。
在模型運(yùn)行效率方面,使用每秒浮點運(yùn)算數(shù)(FLOPS)和模型參數(shù)量衡量所提方法的計算復(fù)雜度。
本文實驗環(huán)境基于64 位的Ubuntu18.04 操作系統(tǒng),使用PyTorch 1.7.0 框架進(jìn)行網(wǎng)絡(luò)訓(xùn)練,計算機(jī)配置顯卡為NVIDA GeForce GTX 3090,CUDA 版本為11.0。在訓(xùn)練過程中,本文采用Adam 優(yōu)化器,初始學(xué)習(xí)率為 0.01,按照如下poly 策略,動態(tài)設(shè)置學(xué)習(xí)率:
其中:llr表示學(xué)習(xí)率;llrinit表示初始學(xué)習(xí)率;iiter表示當(dāng)前迭代次數(shù);iitertotal表示最大迭代次數(shù);power 設(shè)置為0.9。在訓(xùn)練過程中采用的數(shù)據(jù)增強(qiáng)手段包括顏色變換、隨機(jī)翻轉(zhuǎn)、裁剪縮放,輸入數(shù)據(jù)尺寸統(tǒng)一為320×320 像素,Batch size 設(shè)置為16。本文使用像素級交叉熵?fù)p失函數(shù)、KL 散度損失函數(shù)和InfoNCE 損失函數(shù)聯(lián)合優(yōu)化網(wǎng)絡(luò),忽略未標(biāo)記的背景像素點。在評估過程中,使用相應(yīng)數(shù)據(jù)集的原始圖片,不對輸入圖片進(jìn)行任何形式的數(shù)據(jù)變換。
表1 消融實驗結(jié)果Table 1 Results of ablation experiment
本文使用FCN+GloRe 作為基線方法,其中FCN的編碼器為ResNet101,GloRe 模塊位于FCN 編碼器之后,該模塊的節(jié)點數(shù)為2 048 個,節(jié)點特征維度為1 024。從方法①和方法②可觀察到:本文方法基于深度監(jiān)督思想,使用KL 散度損失監(jiān)督投影矩陣過程中,當(dāng)投影矩陣分布的學(xué)習(xí)對象為均勻分布時,相比投影參考矩陣分布,mIoU 提高1.0 個百分點;而Baseline 方法沒有對投影矩陣進(jìn)行任何形式的監(jiān)督或約束,其生成過程是完全隱式的。為尋找生成邊緣權(quán)重的最佳方法,實驗比較3 種不同的方法:僅考慮語義相似性、僅考慮位置相似性、同時考慮語義和位置相似性。3 種方式分別對應(yīng)表1 中的方法②、方法③、方法④。同時考慮節(jié)點間的語義相似性和位置相近度,相比原始的僅考慮語義相似性,mIoU 可提升0.5個百分點;而Baseline 方法中的鄰接矩陣是可訓(xùn)練的,隨著網(wǎng)絡(luò)的迭代在不斷變化。對比方法④和方法⑤,使用InfoNCE 損失函數(shù)監(jiān)督對比節(jié)點特征與標(biāo)簽特征,mIoU 提升0.8 個百分點。綜上,與Baseline 方法相比,本文方法在構(gòu)建隱空間過程中基于深度監(jiān)督思想,一方面使用KL 散度損失函數(shù)監(jiān)督投影參考矩陣分布,以解決原方法中的分配失衡問題;另一方面根據(jù)區(qū)域之間的語義相似性與位置相似性,顯性建模鄰接矩陣,以解決原方法中的位置模糊問題。對比Baseline方法,方法⑤的mIoU 提升2.6 個百分點,降低了模型參數(shù)量與FLOPS,驗證本文方法的優(yōu)越性。
隱空間作為本文提出方法的關(guān)鍵組成部分,其節(jié)點個數(shù)與單個節(jié)點特征維度需提前設(shè)定。表2 所示為針對分辨率為1 024×2 048 像素、類別數(shù)為19 的CityScapes 數(shù)據(jù)集,隱空間參數(shù)對模型性能的影響,加粗表示最優(yōu)數(shù)據(jù)。從表2 可以看出,當(dāng)節(jié)點個數(shù)設(shè)置為32 個、單個節(jié)點特征的維度為16 時,模型性能達(dá)到最佳效果。
表2 隱空間參數(shù)對模型性能的影響Table 2 The influence of hidden space parameters on model performance
表3 所示為本文方法與其他SOTA 方法在CityScapes 數(shù)據(jù)集上的實驗結(jié)果對比,其中,“*”表示該方法使用多尺度訓(xùn)練。本文方法采用ResNet101作為主干網(wǎng)絡(luò)、FCN 作為基礎(chǔ)預(yù)分割模型、單尺度監(jiān)督訓(xùn)練,隱空間的節(jié)點個數(shù)與節(jié)點維度選擇表2 中表現(xiàn)最佳的配置,即節(jié)點個數(shù)為32 個、節(jié)點特征維度為16;GloRe[17]表示Baseline 方法。文獻(xiàn)[23]提出的SegFormer 是一種編碼器基于多層Transformer 結(jié)構(gòu)、解碼器基于多層感知機(jī)的語義分割方法。CSWin-T[28]、HRViT-b2[29]則是2 種基于Transformer結(jié)構(gòu)、針對語義分割任務(wù)設(shè)計的編碼器。因此,CSWin-T 和HRViT-b2 采用2 種更新的編碼器連接SegFormer 解碼器的語義分割網(wǎng)絡(luò)。
表3 不同方法在CityScapes 數(shù)據(jù)集上的實驗結(jié)果對比Table 3 Experimental results comparison among different methods on the CityScapes dataset
從表3 可以看出,實時語義分割方法BiSeNet 系列和ESANet 方法在FLOPS 和參數(shù)量方面具有明顯優(yōu)勢,但是在精度上有所不足。本文提出的方法、CSWin-T 以及HRViT-b2 3 種方法在分割精度上具有一定優(yōu) 勢。其 中,CSWin 和HRViT 均為基 于Transformer 的大型語義分割網(wǎng)絡(luò)。盡管HRViT 在參數(shù)量及計算量方面進(jìn)行重點優(yōu)化與改進(jìn),但相比其他方法,此類方法的計算量與參數(shù)量仍然較大。本文提出的方法采用GloRe 流程,與Transformer 類方法實現(xiàn)原理完全不同,本文方法的優(yōu)勢在于以圖隱式表征圖像,通過圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)區(qū)域間的關(guān)系,且因隱空間的存在,本文方法未來在多模態(tài)數(shù)據(jù)融合方向具有一定潛力。
相比基線方法GloRe,本文提出的方法在參數(shù)量與計算量有輕微減少的同時,精度獲得了明顯的提升。其原因為本文方法提出將GloRe 模塊應(yīng)用于分割網(wǎng)絡(luò)之后而非編碼器之后,可有效避免GNN 中節(jié)點維度過高,減少參數(shù)量,本文方法提出深度監(jiān)督隱空間構(gòu)建過程,避免了原始方法中特征轉(zhuǎn)換步驟的特征丟失與特征冗余,有利于后續(xù)特征更新過程,同時,由于深度監(jiān)督過程僅存在于訓(xùn)練階段,因此推理過程的計算量并沒有顯著增加。
3.5.1 投影矩陣可視化結(jié)果與分析
作為本方法的重要組成部分,投影矩陣在將特征從像素轉(zhuǎn)換至隱空間方面起著關(guān)鍵作用。為深入探究KL 散度約束的有效性,從數(shù)據(jù)集中隨機(jī)選擇1個樣本,可視化在不同訓(xùn)練階段、KL 散度監(jiān)督不同對象情況下,投影矩陣的分配情況。考慮到原始高維投影矩陣不易可視化,本文采用在通道維度上取其最大值的方法,在投影矩陣的每個像素位置取通道最大值,進(jìn)行可視化分析。
投影矩陣在不同訓(xùn)練階段的可視化結(jié)果如圖4所示。投影矩陣某個位置在通道維度的最大值越大,表明網(wǎng)絡(luò)將該像素分配給某個隱空間節(jié)點的置信度越高,體現(xiàn)到圖像上即為該位置的亮度越亮。對比圖4 中2 行的差異,可以看到第1 行,在使用了KL 散度損失函數(shù)監(jiān)督投影矩陣與投影參考矩陣的分布差異時,隨著迭代的進(jìn)行,圖片亮度未產(chǎn)生明顯變化。而在使用KL 散度損失函數(shù)監(jiān)督投影矩陣與同形狀的均勻分布矩陣的分布差異時,隨著迭代的進(jìn)行,圖片亮度越來越低,即網(wǎng)絡(luò)將該位置像素分配給某個節(jié)點的概率差別變小。此現(xiàn)象表明KL 散度損失函數(shù)的使用在一定程度上起到了困難像素挖掘的作用,促使更多像素參與到了GNN 的學(xué)習(xí)中,從而實現(xiàn)了對分割結(jié)果的改進(jìn)。
圖4 投影矩陣在不同訓(xùn)練階段的可視化結(jié)果Fig.4 Visualization results of the projection matrix at different training stages
3.5.2 分割結(jié)果可視化結(jié)果與分析
本節(jié)從CityScapes 數(shù)據(jù)集的驗證集樣本中,挑取2 個具有一定代表性的樣本,分別對其分割結(jié)果進(jìn)行可視化。圖5 所示為不同方法語義分割的可視化結(jié)果。第1 列為樣本A,第2 列為樣本B。
圖5 不同方法的語義分割可視化結(jié)果Fig.5 Visualization results of semantic segmentation among different methods
從樣本A 中可以看出:基線方法在圖片右上角的“天空”中分割出一小塊“汽車”,此反常識現(xiàn)象在本文方法中得到完全修正;基線方法在圖片水平方向中間區(qū)域的“圍墻”遠(yuǎn)端分割出“墻”,而在本文方法中此現(xiàn)象得到了極大改善。分析其原因可以發(fā)現(xiàn)“圍墻”和“墻”兩者的紋理特征有一定差別,但語義相近?;€方法主要根據(jù)紋理特征進(jìn)行分割,而本文方法考慮不同類別語義特征之間的關(guān)聯(lián)性,從而改進(jìn)分割效果。在樣本B 中,基線方法在圖片左側(cè)的“汽車”上方分割出“人行道”、在圖片下方的“道路”中間分割出“摩托車”,此類反常識現(xiàn)象均在本文方法的分割結(jié)果中得到了極大改善。樣本B 的真實值顯示,畫面左側(cè)及下方存在“地形”類別,但觀察其輸入圖片,發(fā)現(xiàn)此區(qū)域的紋理特征與地面基本一致。此類標(biāo)注是從“汽車可行駛”條件為標(biāo)注依據(jù),即使停車位與地面紋理特征一致,但由于上方存在停放車輛,因此此區(qū)域未被分割為“道路”。此類場景需要更多先驗知識進(jìn)行理解,對比樣本B 中的圖5(c)~圖5(f)可知,現(xiàn)有分割方法在此類場景下仍存在改進(jìn)空間。
本文提出一種基于深度監(jiān)督隱空間構(gòu)建的語義分割改進(jìn)方法。該方法采用“特征圖-隱空間-特征圖”范式,在隱空間構(gòu)建過程中,加入位置編碼保留特征的位置信息,以緩解原流程中的“位置模糊”問題;使用KL 散度損失函數(shù)監(jiān)督投影矩陣,以緩解原流程中的“分配失衡”問題。為確保從特征圖到隱空間的轉(zhuǎn)換過程有效,并且能夠構(gòu)建具有足夠表征能力的隱空間,本文采用InfoNCE 損失函數(shù),使用分割真實掩碼標(biāo)簽,監(jiān)督轉(zhuǎn)換得到節(jié)點特征。在CityScapes 數(shù)據(jù)集上的實驗結(jié)果表明,本文網(wǎng)絡(luò)能夠有效改善語義分割中出現(xiàn)的不規(guī)則、反常識區(qū)域,并在精度方面相較于基線有顯著提升。后續(xù)將對本文提出的特征轉(zhuǎn)換及隱空間構(gòu)建方法進(jìn)行改進(jìn),使其適用于圖像、自然語言、激光點云等多模態(tài)任務(wù),通過將多模態(tài)特征統(tǒng)一投影至同一隱空間,增強(qiáng)模型的表征能力,進(jìn)而提升其在下游任務(wù)中的表現(xiàn)。