王柏涵,姜曉燕,范柳伊
(上海工程技術(shù)大學(xué)電子電氣工程學(xué)院,上海 201600)
語(yǔ)義分割是旨在圖像中每個(gè)像素分配其所屬類別的標(biāo)簽并進(jìn)行密集預(yù)測(cè)。在計(jì)算機(jī)視覺(jué)領(lǐng)域,圖像的語(yǔ)義分割是一項(xiàng)基礎(chǔ)且重要的任務(wù),是當(dāng)前的重要研究方向和研究熱點(diǎn),且在場(chǎng)景理解[1]、醫(yī)學(xué)圖像分析[2]、機(jī)器人系統(tǒng)感知[3]等方面具有重要應(yīng)用。
近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)(CNN)以其強(qiáng)大的紋理特征學(xué)習(xí)能力,在多個(gè)計(jì)算機(jī)視覺(jué)任務(wù)中成為研究熱點(diǎn)。文獻(xiàn)[4]提出一種全卷積網(wǎng)絡(luò)(FCN),該方法將傳統(tǒng)的全連接層替換為卷積層,使得網(wǎng)絡(luò)可以接受任意大小的輸入圖像,同時(shí)實(shí)現(xiàn)基于深度學(xué)習(xí)、端到端的 語(yǔ)義分 割流程。RONNEBERGER等[5]提出一種結(jié)構(gòu)呈U 字形的語(yǔ)義分割網(wǎng)絡(luò)U-Net,該方法采用編碼器-解碼器結(jié)構(gòu),在編碼階段使用卷積神經(jīng)網(wǎng)絡(luò),在解碼階段通過(guò)上采樣和反卷積操作逐漸將特征映射的分辨率恢復(fù)到輸入圖像尺寸,同時(shí)利用跳層連接,將編碼器中的特征映射與解碼器中的特征映射進(jìn)行融合,以提高分割結(jié)果的準(zhǔn)確性。為擴(kuò)大卷積核感受野且捕捉多尺度的上下文信息,CHEN等[6]提出空洞空間金字塔池化模塊,通過(guò)融合多尺度特征提升分割性能。上述經(jīng)典的語(yǔ)義分割方法,其主干網(wǎng)絡(luò)均采用了傳統(tǒng)的編解碼結(jié)構(gòu)及其變體,通過(guò)設(shè)計(jì)不同的特征融合策略、上采樣方式,有效提升語(yǔ)義分割的精度。
隨著深度學(xué)習(xí)的發(fā)展,針對(duì)性地對(duì)現(xiàn)有語(yǔ)義分割方法進(jìn)行改進(jìn)。例如,針對(duì)規(guī)則物體的邊緣區(qū)域分割結(jié)果不平滑問(wèn)題,DHINGRA等[7]提出使用2 個(gè)圖卷積網(wǎng)絡(luò),分別用于全局特征提取和邊界細(xì)化,實(shí)現(xiàn)對(duì)邊界區(qū)域的像素進(jìn)行建模;同時(shí)還使用邊界監(jiān)督損失函數(shù),通過(guò)迭代地調(diào)整邊界區(qū)域的權(quán)重來(lái)優(yōu)化網(wǎng)絡(luò),從而更好地利用邊界區(qū)域的信息。針對(duì)圖像分割任務(wù)中上下文特征聚合效率低的問(wèn)題,YUAN等[8]認(rèn)為1 個(gè)像素所屬的類別與其所屬物體強(qiáng)相關(guān),因此提出利用像素所屬類別表征像素,通過(guò)加權(quán)聚合上下文信息,增強(qiáng)像素的特征表征,實(shí)現(xiàn)分割結(jié)果的提升。
盡管上述針對(duì)性改進(jìn)的方法均提升了語(yǔ)義分割效果,解決了特定問(wèn)題,但語(yǔ)義分割領(lǐng)域仍然存在2 個(gè)方面的問(wèn)題:1)從實(shí)現(xiàn)過(guò)程上分析,現(xiàn)有分割方法大多數(shù)是基于卷積神經(jīng)網(wǎng)絡(luò),而傳統(tǒng)的卷積操作本身具有較強(qiáng)的局限性,其感受野大小與參數(shù)量成正比,因此,卷積操作盡管可以較好地學(xué)習(xí)局部的紋理特征,但是難以高效捕捉遠(yuǎn)距離區(qū)域間的關(guān)系,而在語(yǔ)義分割任務(wù)中,1 個(gè)像素的所屬類別不僅和其相鄰像素有關(guān),還可能與圖像中的任意像素有關(guān);2)從分割結(jié)果分析,現(xiàn)有方法存在反常識(shí)現(xiàn)象,該現(xiàn)象體現(xiàn)為分割結(jié)果中2 個(gè)緊密相鄰的區(qū)域被分割為沒(méi)有任何語(yǔ)義相關(guān)性的標(biāo)簽[9],究其原因在于現(xiàn)有方法的監(jiān)督學(xué)習(xí)對(duì)象僅為像素級(jí)的語(yǔ)義標(biāo)簽,難以學(xué)習(xí)到類別間的相互關(guān)系和物體內(nèi)的一致性。
為增強(qiáng)網(wǎng)絡(luò)針對(duì)區(qū)域間關(guān)系的學(xué)習(xí)能力,改善分割結(jié)果中的反常識(shí)現(xiàn)象,本文提出一種基于深度監(jiān)督隱空間構(gòu)建的語(yǔ)義分割改進(jìn)方法。本文工作如下:1)針對(duì)分割結(jié)果出現(xiàn)反常識(shí)現(xiàn)象問(wèn)題,提出使用“特征圖-隱空間-特征圖”流程,將圖像特征與自然語(yǔ)言標(biāo)簽共同投影至高維空間,使用對(duì)比損失函數(shù)輔助監(jiān)督訓(xùn)練過(guò)程,通過(guò)保持圖像特征與語(yǔ)言特征的一致性,實(shí)現(xiàn)特征轉(zhuǎn)換過(guò)程的準(zhǔn)確性;2)針對(duì)“特征圖-隱空間-特征圖”流程中出現(xiàn)的分配失衡和位置信息丟失問(wèn)題,使用深度監(jiān)督技術(shù)約束投影矩陣分布,避免部分像素特征丟失,在隱空間構(gòu)建過(guò)程中加入節(jié)點(diǎn)位置編碼,保留特征的位置信息。
FCN 網(wǎng)絡(luò)是一種用于語(yǔ)義分割的深度神經(jīng)網(wǎng)絡(luò)模型,其實(shí)現(xiàn)過(guò)程分為3 個(gè)步驟:
1)使用預(yù) 訓(xùn)練的 卷積神 經(jīng)網(wǎng)絡(luò)(如VGG[10]、ResNet[11])提取圖像特征,此過(guò)程包含多次卷積與下采樣操作,得到分辨率較低的多通道特征圖,該過(guò)程稱為編碼階段。為了獲得密集的像素級(jí)預(yù)測(cè),F(xiàn)CN需要將特征圖上采樣到原始圖像分辨率,該階段稱為解碼階段。FCN 中使用的上采樣方式為轉(zhuǎn)置卷積,也稱為反卷積,可以將輸入的低分辨率特征圖進(jìn)行擴(kuò)展,并且在擴(kuò)展過(guò)程中進(jìn)行卷積操作,從而得到高分辨率的特征圖。轉(zhuǎn)置卷積的實(shí)現(xiàn)過(guò)程為給定輸入特征圖、卷積核、步長(zhǎng)、填充大小和目標(biāo)的輸出特征圖尺寸,先對(duì)輸入特征圖進(jìn)行零填充,零填充的目的是為了保證輸出張量與輸入張量的尺寸相同。將卷積核與特征圖進(jìn)行卷積操作,得到輸出特征圖。
2)將得到的特征圖與來(lái)自主干網(wǎng)絡(luò)相應(yīng)層的特征圖通過(guò)跳層連接相結(jié)合,使得網(wǎng)絡(luò)能夠同時(shí)利用高層和低層的特征、保留空間信息,提高分割的準(zhǔn)確性。
3)合并后的特征圖通過(guò)1 個(gè)Softmax 層,以獲得分割類別的概率分布。具有最高概率的類別被選為每個(gè)像素的預(yù)測(cè)標(biāo)簽,結(jié)果是1 個(gè)分割掩碼,表明輸入圖像中每個(gè)像素的類別。
本文提出的基于深度監(jiān)督隱空間構(gòu)建的語(yǔ)義分割改進(jìn)方法作用于FCN 上采樣之后、Softmax 之前的特征圖。由于FCN 的主干網(wǎng)絡(luò)已在ImageNet 上進(jìn)行預(yù)訓(xùn)練,因此輸出特征圖具有初始語(yǔ)義信息。
與傳統(tǒng)的CNN 不同,圖神經(jīng)網(wǎng)絡(luò)(GNN)在處理非歐幾里得數(shù)據(jù)時(shí)具有明顯的優(yōu)勢(shì)[12]。近年來(lái),隨著相關(guān)研究的發(fā)展,圖神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于物體檢測(cè)、語(yǔ)義分割、行為識(shí)別[13-14]等任務(wù)中。其中,一些方法試圖通過(guò)結(jié)合CNN 和GNN 來(lái)捕捉抽象的語(yǔ)義關(guān)系,此類方法的實(shí)現(xiàn)流程可以被總結(jié)為“特征圖-隱空間-特征圖”流程。該流程主要包括3 個(gè)步驟:1)將特征從坐標(biāo)空間映射到隱藏的交互空間,構(gòu)建1 個(gè)語(yǔ)義感知圖;2)對(duì)圖進(jìn)行推理,更新節(jié)點(diǎn)特征;3)將圖映射回坐標(biāo)空間,獲得更新的特征圖。此類方法大多數(shù)在前2 個(gè)步驟上有所不同:如何從特征圖中構(gòu)建圖,如何執(zhí)行消息傳遞以更新節(jié)點(diǎn)特征。LI等[15]提出一種符號(hào)圖推理方法,該方法使用圖卷積網(wǎng)絡(luò)[16],對(duì)1 組符號(hào)節(jié)點(diǎn)進(jìn)行推理,旨在明確表示先驗(yàn)知識(shí)圖中的不同語(yǔ)義,捕捉不同區(qū)域之間的長(zhǎng)程依賴關(guān)系。CHEN等[17]提出1 個(gè)輕量但高效的全局推理模塊GloRe,該模塊通過(guò)全局池化和加權(quán)特征傳播,實(shí)現(xiàn)坐標(biāo)空間與隱空間的映射,并通過(guò)圖卷積在交互空間的小圖上進(jìn)行關(guān)系推理。
上述方法都指出了區(qū)域間語(yǔ)義關(guān)聯(lián)的重要性,并利用GNN 來(lái)提取語(yǔ)義特征,最終達(dá)到更好的特征提取性能,有利于下游任務(wù)的開(kāi)展。但此類方法存在分配失衡和位置模糊2 個(gè)主要問(wèn)題。分配失衡是指隨著訓(xùn)練的進(jìn)行,網(wǎng)絡(luò)傾向于將一部分像素分配多個(gè)節(jié)點(diǎn),而另一部分像素則不分配任何節(jié)點(diǎn)。此現(xiàn)象導(dǎo)致后者特征在GNN 中缺失,降低網(wǎng)絡(luò)性能。位置模糊是指上述方法僅根據(jù)語(yǔ)義相似性來(lái)衡量區(qū)域間的連通性,并未考慮位置信息。但是在語(yǔ)義分割任務(wù)中,決定1 個(gè)像素的所屬類別,不僅考慮與語(yǔ)義特征相近的像素特征,還要考慮位置鄰近的像素特征。
本文提出的基于深度監(jiān)督隱空間構(gòu)建的語(yǔ)義分割改進(jìn)方法將針對(duì)上述問(wèn)題進(jìn)行改進(jìn),通過(guò)加入位置編碼和深度監(jiān)督技術(shù),實(shí)現(xiàn)從特征圖到隱空間轉(zhuǎn)換過(guò)程中保留位置信息,避免部分像素語(yǔ)義特征丟失。
對(duì)比學(xué)習(xí)[18]通過(guò)學(xué)習(xí)如何將相似樣本在特征空間中彼此聚集,并將不相似樣本分散開(kāi),以達(dá)到學(xué)習(xí)特征表示的目的。對(duì)比學(xué)習(xí)中的目標(biāo)是最大化同類樣本之間的相似度,最小化異類樣本之間的相似度。InfoNCE[19]是對(duì)比學(xué)習(xí)中常用的一種損失函數(shù),通過(guò)將對(duì)比學(xué)習(xí)中的目標(biāo)轉(zhuǎn)化為最大化正確匹配樣本對(duì)的相似度、最小化不匹配樣本對(duì)的相似度,實(shí)現(xiàn)特征表示的學(xué)習(xí)。
為保證構(gòu)建的隱空間表征能力足夠、特征轉(zhuǎn)換有效,本文提出使用基于InfoNCE 的損失函數(shù)。通過(guò)最大化正樣本對(duì)在特征空間中的相似度、最小化負(fù)樣本對(duì)在特征空間中的相似度,使用語(yǔ)義標(biāo)簽輔助監(jiān)督訓(xùn)練過(guò)程,達(dá)到圖像特征與語(yǔ)義特征一致的目的。
深度監(jiān)督技術(shù)[20]是一種用于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方法,旨在解決傳統(tǒng)的端到端神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的梯度消失和梯度爆炸問(wèn)題。該方法在網(wǎng)絡(luò)結(jié)構(gòu)中引入額外的輔助損失函數(shù),并在網(wǎng)絡(luò)的不同層次處進(jìn)行監(jiān)督,以增加訓(xùn)練期間的梯度流動(dòng),加快收斂速度并提高模型的泛化能力。深度監(jiān)督技術(shù)的核心思想是通過(guò)將多個(gè)損失函數(shù)分布在網(wǎng)絡(luò)的不同層次中,增加網(wǎng)絡(luò)的訓(xùn)練深度,從而減輕梯度消失和梯度爆炸問(wèn)題[21]。在深度監(jiān)督技術(shù)中,網(wǎng)絡(luò)的每個(gè)輔助損失函數(shù)都可以看作是1 個(gè)短路徑,將梯度反向傳播到較早的層次。通過(guò)這些短路徑,輔助損失函數(shù)可以提供額外的監(jiān)督信號(hào),以加速網(wǎng)絡(luò)的收斂和優(yōu)化。
為保證特征轉(zhuǎn)換的質(zhì)量與效率,本文基于深度監(jiān)督思想,提出使用基于Kullback-Leibler(KL)散度的損失函數(shù)監(jiān)督投影矩陣分布,使用基于InfoNCE的損失函數(shù)監(jiān)督節(jié)點(diǎn)特征矩陣。
本文提出基于深度監(jiān)督隱空間構(gòu)建的語(yǔ)義分割改進(jìn)方法,位于語(yǔ)義分割網(wǎng)絡(luò)的解碼器之后,作用于Softmax 之前的特征圖。該方法的整體結(jié)構(gòu)如圖1所示。其中,實(shí)線空心單向箭頭表明該步驟在推理過(guò)程和訓(xùn)練過(guò)程中均有發(fā)生,虛線單向箭頭表明該步驟僅存在于訓(xùn)練階段,虛線雙向箭頭表示箭頭兩側(cè)用于計(jì)算損失函數(shù)的預(yù)測(cè)值與真實(shí)值。圖1 中的主分支描述了本文所提方法的推理過(guò)程,該過(guò)程分為3 個(gè)階段:基于特征轉(zhuǎn)換的隱空間構(gòu)建、基于圖神經(jīng)網(wǎng)絡(luò)的特征更新、反投影。上下2 個(gè)分支僅在訓(xùn)練過(guò)程中發(fā)生,分別對(duì)應(yīng)投影矩陣和節(jié)點(diǎn)特征矩陣的監(jiān)督學(xué)習(xí),這2 個(gè)矩陣均在隱空間的構(gòu)建階段生成。

圖1 基于深度監(jiān)督隱空間構(gòu)建的語(yǔ)義分割改進(jìn)網(wǎng)絡(luò)的整體流程Fig.1 Overall procedure of semantic segmentation improvement network based on deep supervised latent space construction
在本文提出的語(yǔ)義分割網(wǎng)絡(luò)模型中,基于特征轉(zhuǎn)換的隱空間構(gòu)建模塊位于語(yǔ)義分割網(wǎng)絡(luò)模型輸出的特征圖之后,其作用是將具有相似語(yǔ)義特征的區(qū)域投影到隱空間內(nèi)的同1 個(gè)節(jié)點(diǎn),并將區(qū)域之間的語(yǔ)義相似度和位置相近度表示為節(jié)點(diǎn)之間的邊緣權(quán)重。基于特征轉(zhuǎn)換的隱空間構(gòu)建流程如圖2 所示,隱空間的表現(xiàn)形式由若干個(gè)節(jié)點(diǎn)和帶權(quán)邊緣組成的圖數(shù)據(jù)。

圖2 基于特征轉(zhuǎn)換的隱空間構(gòu)建流程Fig.2 Procedure of latent space construction based on feature transformation
在隱空間構(gòu)建的實(shí)現(xiàn)過(guò)程中,投影矩陣是關(guān)鍵模塊,決定了從特征圖到隱空間的映射關(guān)系。隱空間由2 個(gè)矩陣表征:節(jié)點(diǎn)特征矩陣和鄰接矩陣。節(jié)點(diǎn)特征矩陣表示每個(gè)節(jié)點(diǎn)的語(yǔ)義特征向量,而鄰接矩陣則表示節(jié)點(diǎn)之間的邊緣權(quán)重。
2.2.1 投影矩陣
從特征圖到投影矩陣的變換,最直接的方法是區(qū)域生長(zhǎng)法。該方法通過(guò)將具有相似像素值的像素聚合到一起,形成1 個(gè)連通的區(qū)域,實(shí)現(xiàn)對(duì)圖像的分割。該方法的優(yōu)點(diǎn)在于它的簡(jiǎn)單性和可擴(kuò)展性,由于區(qū)域生長(zhǎng)法只需要一些簡(jiǎn)單的圖像處理操作和像素之間的相似度比較,因此可以快速地實(shí)現(xiàn)像素級(jí)的分類。但在本任務(wù)的實(shí)際操作中,使用區(qū)域生長(zhǎng)法不僅需要手動(dòng)選擇種子點(diǎn)、相似度閾值等參數(shù),而且由于特征圖是高維度的且數(shù)值為浮點(diǎn)數(shù),因此算法的實(shí)現(xiàn)也相應(yīng)更加復(fù)雜,需要花費(fèi)更多的計(jì)算時(shí)間和存儲(chǔ)空間。為解決該問(wèn)題,受到GloRe 方法的啟發(fā),本文從特征圖到投影矩陣的轉(zhuǎn)換由投影矩陣實(shí)現(xiàn)。投影矩陣作用在于:將坐標(biāo)空間中的像素特征投影為語(yǔ)義空間中的節(jié)點(diǎn)特征,在此過(guò)程中,坐標(biāo)空間中具有相似特征的像素,將會(huì)被分配給語(yǔ)義空間中的同一節(jié)點(diǎn)。生成投影矩陣的主要依據(jù)是編碼器-解碼器輸出的特征圖。具體地,對(duì)于特征圖X?RC×H×W,其對(duì)應(yīng)的投影矩陣為P?RC×H×W,其中C為特征圖的通道數(shù),在本文中等于類別數(shù),N為隱空間中的節(jié)點(diǎn)個(gè)數(shù)(該數(shù)值需人為預(yù)先設(shè)定),H、W分別為原始圖像的高和寬。
投影矩陣中處于(n,h,w)位置的元素,其數(shù)值取值范圍為(0,1),該位置元素?cái)?shù)值大小代表將原特征圖(h,w)處的像素投影至第n個(gè)節(jié)點(diǎn)的概率大小。具體地,根據(jù)特征圖X,可通過(guò)式(1)得到投影矩陣P:
其中:卷積操作的卷積核大小為1。
2.2.2 節(jié)點(diǎn)特征矩陣
節(jié)點(diǎn)特征矩陣描述了特征圖投射在隱空間后生成的節(jié)點(diǎn)特征。生成節(jié)點(diǎn)特征矩陣的過(guò)程也是從像素級(jí)別的特征圖轉(zhuǎn)換到節(jié)點(diǎn)級(jí)別的隱空間、建模節(jié)點(diǎn)特征的過(guò)程。該過(guò)程的輸入是投影矩陣和特征圖,輸出為節(jié)點(diǎn)特征V?RN×D,其中D為節(jié)點(diǎn)的特征維度。
生成節(jié)點(diǎn)特征矩陣的直接方法是將投影矩陣與特征圖進(jìn)行矩陣相乘,但存在2 個(gè)問(wèn)題:1)從計(jì)算量的角度看,此處構(gòu)建的節(jié)點(diǎn)特征將用于后續(xù)的圖神經(jīng)網(wǎng)絡(luò),圖神經(jīng)網(wǎng)絡(luò)中存在特征聚合與表征更新操作,若原始特征圖通道數(shù)較多,則用此方法生成的節(jié)點(diǎn)特征維度也相應(yīng)較高,導(dǎo)致圖神經(jīng)網(wǎng)絡(luò)階段需要較高的計(jì)算量,增加推理時(shí)間,降低運(yùn)行效率;2)從特征分布看,像素級(jí)別的特征圖轉(zhuǎn)換到節(jié)點(diǎn)級(jí)別的隱空間,兩者存在一定的特征分布差異,而直接使用矩陣乘法難以消除這種分布差異。為解決該問(wèn)題,本文方法將先對(duì)特征圖進(jìn)行特征轉(zhuǎn)換,再生成節(jié)點(diǎn)特征矩陣。具體地,首先將像素特征X轉(zhuǎn)換為語(yǔ)義特征S?RD×H×W,其目的在于升維或降維。當(dāng)特征圖維度較高時(shí),為降低在后續(xù)操作中的參數(shù)量,將高維度特征轉(zhuǎn)換為低維度特征;當(dāng)特征圖維度較低時(shí),為增加網(wǎng)絡(luò)的描述能力,將低維度特征轉(zhuǎn)換為高維度特征。該轉(zhuǎn)化過(guò)程由卷積操作實(shí)現(xiàn):
其中:卷積操作的卷積核大小為1。將投影矩陣與語(yǔ)義特征進(jìn)行矩陣相乘,得到節(jié)點(diǎn)特征矩陣,即可實(shí)現(xiàn)從像素級(jí)別到節(jié)點(diǎn)級(jí)別的特征轉(zhuǎn)換:
2.2.3 鄰接矩陣
本文提出使用鄰接矩陣A描述節(jié)點(diǎn)特征的相似度Asem及其位置相近度Apos,其目的在于以更加高效的方式,將具有相似語(yǔ)義且距離較近的2 個(gè)節(jié)點(diǎn)使用更高的權(quán)重邊緣連接。具體地,將投影矩陣P展平即可得到N個(gè)長(zhǎng)度為H×W的一維向量pi,該向量即為隱空間中第i個(gè)節(jié)點(diǎn)的位置編碼。本文將進(jìn)行形狀變換后的投影矩陣記為P'?RC×H×W。因此,將P'與其自身計(jì)算Cosine 相似度,即可得到描述節(jié)點(diǎn)位置相近度的矩陣:
其中:分子表示2 個(gè)向量的點(diǎn)積;分母表示2 個(gè)向量的模長(zhǎng)。類似地,已有節(jié)點(diǎn)特征矩陣,展平其每個(gè)通道即可得到該節(jié)點(diǎn)的語(yǔ)義編碼vi,將進(jìn)行形狀變換后的節(jié)點(diǎn)特征矩陣V'與其自身計(jì)算Cosine 相似度,即可得到描述節(jié)點(diǎn)位置相近度Asem。最后將2 個(gè)矩陣相加,即可得到目標(biāo)鄰接矩陣A。至此,從特征圖到隱空間的轉(zhuǎn)換完成,隱空間由若干個(gè)節(jié)點(diǎn)及邊緣特征組成,節(jié)點(diǎn)特征與邊緣特征分別由V和A表示。
基于圖神經(jīng)網(wǎng)絡(luò)的特征學(xué)習(xí)模塊將節(jié)點(diǎn)特征和鄰接矩陣作為輸入,輸出最新的節(jié)點(diǎn)特征該模塊的目的是對(duì)圖進(jìn)行特征學(xué)習(xí),捕捉語(yǔ)義空間中的關(guān)系以及坐標(biāo)空間中的位置屬性。該過(guò)程表達(dá)式如下:
其中:W代表圖神經(jīng)網(wǎng)絡(luò)的可學(xué)習(xí)參數(shù)。
本文使用圖卷積網(wǎng)絡(luò)(GCN)對(duì)得到的節(jié)點(diǎn)特征進(jìn)行學(xué)習(xí)。圖卷積網(wǎng)絡(luò)是一種用于處理圖數(shù)據(jù)的卷積神經(jīng)網(wǎng)絡(luò),它在節(jié)點(diǎn)上進(jìn)行卷積操作,類似于在圖像上進(jìn)行像素卷積操作。圖3 所示為給定1 組圖數(shù)據(jù),圖卷積網(wǎng)絡(luò)將節(jié)點(diǎn)特征與其鄰居特征進(jìn)行聚合,從而生成新的節(jié)點(diǎn)特征表示。

圖3 圖卷積網(wǎng)絡(luò)的圖傳遞示意圖Fig.3 Schematic diagram of graph transfer in graph convolutional network
對(duì)于節(jié)點(diǎn)特征矩陣和鄰接矩陣,圖卷積層執(zhí)行消息計(jì)算和特征聚合操作,并輸出節(jié)點(diǎn)的更新特征在本文方法中,為保留節(jié)點(diǎn)本身的特征,將對(duì)節(jié)點(diǎn)本身和其鄰居進(jìn)行不同的特征計(jì)算:
其中:Ws和Wn表示針對(duì)節(jié)點(diǎn)表征進(jìn)行的線性變換;mv表示節(jié)點(diǎn)本身特征;mu代表節(jié)點(diǎn)鄰域聚合后的特征;AGG 操作可以是1 個(gè)簡(jiǎn)單的平均化、最大化或求和,以匯總鄰居的特征。通過(guò)式(8)獲得更新的節(jié)點(diǎn)特征:
其中:σ為激活層,用于增加網(wǎng)絡(luò)的非線性。
至此,特征圖經(jīng)過(guò)圖神經(jīng)網(wǎng)絡(luò),完成了特征更新,且整個(gè)流程是端到端、可訓(xùn)練、可進(jìn)行反向傳播的。
深度監(jiān)督技術(shù)可通過(guò)在網(wǎng)絡(luò)結(jié)構(gòu)中引入輔助損失函數(shù),并在不同層次處提供額外的監(jiān)督信號(hào),達(dá)到加速網(wǎng)絡(luò)收斂的目的。為保證特征轉(zhuǎn)換的質(zhì)量與效率,本文基于深度監(jiān)督思想,提出使用KL 散度損失函數(shù)監(jiān)督投影矩陣分布,使用InfoNCE 損失函數(shù)監(jiān)督節(jié)點(diǎn)特征矩陣。
2.5.1 使用KL 散度損失函數(shù)監(jiān)督投影矩陣的方法
投影矩陣的生成與應(yīng)用是端到端的,投影矩陣的數(shù)值可通過(guò)訓(xùn)練學(xué)習(xí)得到。但是在實(shí)踐過(guò)程中,本文發(fā)現(xiàn)原始的“特征圖-隱空間-特征圖”流程中存在分配失衡問(wèn)題:隨著訓(xùn)練的進(jìn)行,網(wǎng)絡(luò)傾向于將一部分像素分配給多個(gè)節(jié)點(diǎn),而另一部分像素不分配任何1 個(gè)節(jié)點(diǎn)。投影矩陣作為特征圖與隱空間相互轉(zhuǎn)換的關(guān)鍵模塊,其數(shù)據(jù)分布直接影響著特征轉(zhuǎn)換的效果。因此,本文基于深度監(jiān)督思想,提出使用基于KL 散度的損失函數(shù)監(jiān)督投影矩陣分布。KL 散度損失函數(shù)是一種用于衡量2 個(gè)概率分布之間的差異性指標(biāo),其值越小表示2 個(gè)分布越相似,反之則越不相似。對(duì)于2 個(gè)形狀同為N×(H×W)的特征分布P'、Q,其KL 散度計(jì)算式如下:
其中:P'i和Qi分別表示P'、Q第i層的概率分布。
本文提出2 種使用KL 散度損失函數(shù)監(jiān)督投影矩陣的方法。第1 種方法是首先對(duì)真實(shí)值掩碼進(jìn)行如式(1)所示的轉(zhuǎn)換操作,將得到的矩陣稱為投影參考矩陣,記作,然后計(jì)算與P'的KL 散度損 失。此方法通過(guò)顯式建模從特征圖到隱空間過(guò)程中投影矩陣的生成方式,使得網(wǎng)絡(luò)學(xué)習(xí)到的投影矩陣能夠?qū)⒃卣鲌D中具有相似語(yǔ)義特征的像素分配到同1個(gè)節(jié)點(diǎn)。第2 種方法則是使用與投影矩陣形狀相同的均勻分布矩陣Q,通過(guò)最小化P'與Q的KL 散度,使得投影矩陣的數(shù)值分布接近于均勻分布。此方法可視為第1 種方法的反面,可以減少低置信度的出現(xiàn)頻率,進(jìn)而避免轉(zhuǎn)換過(guò)程中的特征丟失。
2.5.2 使用InfoNCE 損失函數(shù)監(jiān)督節(jié)點(diǎn)特征矩陣的方法
為確保本文方法中從特征圖到隱空間的轉(zhuǎn)換過(guò)程有效,并且能夠構(gòu)建具有足夠表征能力的隱空間,本文提出采用InfoNCE 損失函數(shù),使用分割真實(shí)掩碼監(jiān)督得到的節(jié)點(diǎn)特征。具體地,首先,針對(duì)樣本圖像Ix得到的節(jié)點(diǎn)特征,使用多層感知機(jī)(MLP),將節(jié)點(diǎn)特征轉(zhuǎn)換為特征向量q?R1×D。接著,Ix對(duì)應(yīng)的真實(shí)值編碼為l+?R1×C作為對(duì)比損失中的正樣本,其元素?cái)?shù)值為1 或0,代表掩膜中是否出現(xiàn)某個(gè)類別。同時(shí)隨機(jī)生成K個(gè)負(fù)樣本特征向量l-?RK×C,每個(gè)特征向量的元素?cái)?shù)值同樣為1 或0,生成的l-應(yīng)滿足:使用多層感知機(jī)將l+轉(zhuǎn)換為z+?R1×D,l-轉(zhuǎn)換為z-?RK×D。至此,對(duì)比損失的計(jì)算式如下:
2.5.3 損失函數(shù)
本文采用的損失函數(shù)由3 個(gè)部分組成:預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽之間的像素級(jí)損失、投影矩陣與目標(biāo)矩陣的KL 散度損失、節(jié)點(diǎn)特征與語(yǔ)義標(biāo)簽的InfoNCE 對(duì)比損失。損失函數(shù)計(jì)算式如下:
其中:LossCE表示計(jì)算輸出的分割掩碼Y與真實(shí)值的交叉熵?fù)p失;LossKL表示計(jì)算投影矩陣P'與目標(biāo)同尺寸矩陣Q的KL 散度損失;LossNCE表示計(jì)算圖像表征與標(biāo)簽正負(fù)樣本的對(duì)比損失;α、β為可調(diào)節(jié)參數(shù),用于減小2 個(gè)損失值的差異。交叉熵?fù)p失的計(jì)算式如下:
在移栽前,為了滿足植株生長(zhǎng)對(duì)養(yǎng)分的需求,要改善土壤理化性質(zhì),提高地表溫度,每畝追施完全腐熟的有機(jī)肥2500 kg,追施磷肥25 kg、鉀肥10 kg。將肥料均勻撒入地面后深翻土壤,深翻深度30 cm,整平后按50 cm小行、70 cm大行開(kāi)溝,溝深15 cm、寬20 cm。壟高20 cm、寬30 cm,株距維持在50 cm左右。
本文在公開(kāi)數(shù)據(jù)集CityScapes[22]上訓(xùn)練和評(píng)估該方法。CityScapes 由德國(guó)斯圖加特大學(xué)的計(jì)算機(jī)視覺(jué)小組于2016 年創(chuàng)建,是1 個(gè)大規(guī)模的城市街景數(shù)據(jù)集。該數(shù)據(jù)集拍攝了不同天氣狀況下,德國(guó)和瑞士50 個(gè)城市的街景圖像,包括城市中心、住宅區(qū)、高速公路和鄉(xiāng)村道路等場(chǎng)景。該數(shù)據(jù)集提供5 000 張精細(xì)標(biāo)注數(shù)據(jù),為避免模型過(guò)擬合、增強(qiáng)模型泛化能力,該數(shù)據(jù)僅公開(kāi)了精細(xì)標(biāo)注數(shù)據(jù)中4 500 個(gè)樣本的真實(shí)掩碼,用于研究人員的訓(xùn)練與驗(yàn)證,另有500 個(gè)樣本未提供真實(shí)掩碼,需在線提交驗(yàn)證。在實(shí)驗(yàn)中,本文采取2 975 個(gè)樣本用于訓(xùn)練,500 個(gè)樣本用于測(cè)試。每個(gè)樣本都針對(duì)19 個(gè)類別分別進(jìn)行像素級(jí)標(biāo)注。
本文從模型運(yùn)行效果和運(yùn)行效率2 個(gè)方面評(píng)價(jià)提出的網(wǎng)絡(luò)模型。在模型運(yùn)行效果方面,使用平均交并比(mIoU,計(jì)算中用mmIoU)評(píng)價(jià)模型分割結(jié)果的精度,其計(jì)算式如下:
其中:TTP表示針對(duì)真實(shí)值為真的像素,模型預(yù)測(cè)也為真;FFN表示針對(duì)真實(shí)值為假的像素,模型預(yù)測(cè)也為假;TTN表示針對(duì)結(jié)果為假的像素,模型預(yù)測(cè)為真;FFP表示針對(duì)真實(shí)值為真的像素,模型預(yù)測(cè)為假。mIoU 取值范圍為[0,1],該數(shù)值越大,分割結(jié)果越準(zhǔn)確,網(wǎng)絡(luò)效果越好。
在模型運(yùn)行效率方面,使用每秒浮點(diǎn)運(yùn)算數(shù)(FLOPS)和模型參數(shù)量衡量所提方法的計(jì)算復(fù)雜度。
本文實(shí)驗(yàn)環(huán)境基于64 位的Ubuntu18.04 操作系統(tǒng),使用PyTorch 1.7.0 框架進(jìn)行網(wǎng)絡(luò)訓(xùn)練,計(jì)算機(jī)配置顯卡為NVIDA GeForce GTX 3090,CUDA 版本為11.0。在訓(xùn)練過(guò)程中,本文采用Adam 優(yōu)化器,初始學(xué)習(xí)率為 0.01,按照如下poly 策略,動(dòng)態(tài)設(shè)置學(xué)習(xí)率:
其中:llr表示學(xué)習(xí)率;llrinit表示初始學(xué)習(xí)率;iiter表示當(dāng)前迭代次數(shù);iitertotal表示最大迭代次數(shù);power 設(shè)置為0.9。在訓(xùn)練過(guò)程中采用的數(shù)據(jù)增強(qiáng)手段包括顏色變換、隨機(jī)翻轉(zhuǎn)、裁剪縮放,輸入數(shù)據(jù)尺寸統(tǒng)一為320×320 像素,Batch size 設(shè)置為16。本文使用像素級(jí)交叉熵?fù)p失函數(shù)、KL 散度損失函數(shù)和InfoNCE 損失函數(shù)聯(lián)合優(yōu)化網(wǎng)絡(luò),忽略未標(biāo)記的背景像素點(diǎn)。在評(píng)估過(guò)程中,使用相應(yīng)數(shù)據(jù)集的原始圖片,不對(duì)輸入圖片進(jìn)行任何形式的數(shù)據(jù)變換。

表1 消融實(shí)驗(yàn)結(jié)果Table 1 Results of ablation experiment
本文使用FCN+GloRe 作為基線方法,其中FCN的編碼器為ResNet101,GloRe 模塊位于FCN 編碼器之后,該模塊的節(jié)點(diǎn)數(shù)為2 048 個(gè),節(jié)點(diǎn)特征維度為1 024。從方法①和方法②可觀察到:本文方法基于深度監(jiān)督思想,使用KL 散度損失監(jiān)督投影矩陣過(guò)程中,當(dāng)投影矩陣分布的學(xué)習(xí)對(duì)象為均勻分布時(shí),相比投影參考矩陣分布,mIoU 提高1.0 個(gè)百分點(diǎn);而B(niǎo)aseline 方法沒(méi)有對(duì)投影矩陣進(jìn)行任何形式的監(jiān)督或約束,其生成過(guò)程是完全隱式的。為尋找生成邊緣權(quán)重的最佳方法,實(shí)驗(yàn)比較3 種不同的方法:僅考慮語(yǔ)義相似性、僅考慮位置相似性、同時(shí)考慮語(yǔ)義和位置相似性。3 種方式分別對(duì)應(yīng)表1 中的方法②、方法③、方法④。同時(shí)考慮節(jié)點(diǎn)間的語(yǔ)義相似性和位置相近度,相比原始的僅考慮語(yǔ)義相似性,mIoU 可提升0.5個(gè)百分點(diǎn);而B(niǎo)aseline 方法中的鄰接矩陣是可訓(xùn)練的,隨著網(wǎng)絡(luò)的迭代在不斷變化。對(duì)比方法④和方法⑤,使用InfoNCE 損失函數(shù)監(jiān)督對(duì)比節(jié)點(diǎn)特征與標(biāo)簽特征,mIoU 提升0.8 個(gè)百分點(diǎn)。綜上,與Baseline 方法相比,本文方法在構(gòu)建隱空間過(guò)程中基于深度監(jiān)督思想,一方面使用KL 散度損失函數(shù)監(jiān)督投影參考矩陣分布,以解決原方法中的分配失衡問(wèn)題;另一方面根據(jù)區(qū)域之間的語(yǔ)義相似性與位置相似性,顯性建模鄰接矩陣,以解決原方法中的位置模糊問(wèn)題。對(duì)比Baseline方法,方法⑤的mIoU 提升2.6 個(gè)百分點(diǎn),降低了模型參數(shù)量與FLOPS,驗(yàn)證本文方法的優(yōu)越性。
隱空間作為本文提出方法的關(guān)鍵組成部分,其節(jié)點(diǎn)個(gè)數(shù)與單個(gè)節(jié)點(diǎn)特征維度需提前設(shè)定。表2 所示為針對(duì)分辨率為1 024×2 048 像素、類別數(shù)為19 的CityScapes 數(shù)據(jù)集,隱空間參數(shù)對(duì)模型性能的影響,加粗表示最優(yōu)數(shù)據(jù)。從表2 可以看出,當(dāng)節(jié)點(diǎn)個(gè)數(shù)設(shè)置為32 個(gè)、單個(gè)節(jié)點(diǎn)特征的維度為16 時(shí),模型性能達(dá)到最佳效果。

表2 隱空間參數(shù)對(duì)模型性能的影響Table 2 The influence of hidden space parameters on model performance
表3 所示為本文方法與其他SOTA 方法在CityScapes 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對(duì)比,其中,“*”表示該方法使用多尺度訓(xùn)練。本文方法采用ResNet101作為主干網(wǎng)絡(luò)、FCN 作為基礎(chǔ)預(yù)分割模型、單尺度監(jiān)督訓(xùn)練,隱空間的節(jié)點(diǎn)個(gè)數(shù)與節(jié)點(diǎn)維度選擇表2 中表現(xiàn)最佳的配置,即節(jié)點(diǎn)個(gè)數(shù)為32 個(gè)、節(jié)點(diǎn)特征維度為16;GloRe[17]表示Baseline 方法。文獻(xiàn)[23]提出的SegFormer 是一種編碼器基于多層Transformer 結(jié)構(gòu)、解碼器基于多層感知機(jī)的語(yǔ)義分割方法。CSWin-T[28]、HRViT-b2[29]則是2 種基于Transformer結(jié)構(gòu)、針對(duì)語(yǔ)義分割任務(wù)設(shè)計(jì)的編碼器。因此,CSWin-T 和HRViT-b2 采用2 種更新的編碼器連接SegFormer 解碼器的語(yǔ)義分割網(wǎng)絡(luò)。

表3 不同方法在CityScapes 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對(duì)比Table 3 Experimental results comparison among different methods on the CityScapes dataset
從表3 可以看出,實(shí)時(shí)語(yǔ)義分割方法BiSeNet 系列和ESANet 方法在FLOPS 和參數(shù)量方面具有明顯優(yōu)勢(shì),但是在精度上有所不足。本文提出的方法、CSWin-T 以及HRViT-b2 3 種方法在分割精度上具有一定優(yōu) 勢(shì)。其 中,CSWin 和HRViT 均為基 于Transformer 的大型語(yǔ)義分割網(wǎng)絡(luò)。盡管HRViT 在參數(shù)量及計(jì)算量方面進(jìn)行重點(diǎn)優(yōu)化與改進(jìn),但相比其他方法,此類方法的計(jì)算量與參數(shù)量仍然較大。本文提出的方法采用GloRe 流程,與Transformer 類方法實(shí)現(xiàn)原理完全不同,本文方法的優(yōu)勢(shì)在于以圖隱式表征圖像,通過(guò)圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)區(qū)域間的關(guān)系,且因隱空間的存在,本文方法未來(lái)在多模態(tài)數(shù)據(jù)融合方向具有一定潛力。
相比基線方法GloRe,本文提出的方法在參數(shù)量與計(jì)算量有輕微減少的同時(shí),精度獲得了明顯的提升。其原因?yàn)楸疚姆椒ㄌ岢鰧loRe 模塊應(yīng)用于分割網(wǎng)絡(luò)之后而非編碼器之后,可有效避免GNN 中節(jié)點(diǎn)維度過(guò)高,減少參數(shù)量,本文方法提出深度監(jiān)督隱空間構(gòu)建過(guò)程,避免了原始方法中特征轉(zhuǎn)換步驟的特征丟失與特征冗余,有利于后續(xù)特征更新過(guò)程,同時(shí),由于深度監(jiān)督過(guò)程僅存在于訓(xùn)練階段,因此推理過(guò)程的計(jì)算量并沒(méi)有顯著增加。
3.5.1 投影矩陣可視化結(jié)果與分析
作為本方法的重要組成部分,投影矩陣在將特征從像素轉(zhuǎn)換至隱空間方面起著關(guān)鍵作用。為深入探究KL 散度約束的有效性,從數(shù)據(jù)集中隨機(jī)選擇1個(gè)樣本,可視化在不同訓(xùn)練階段、KL 散度監(jiān)督不同對(duì)象情況下,投影矩陣的分配情況。考慮到原始高維投影矩陣不易可視化,本文采用在通道維度上取其最大值的方法,在投影矩陣的每個(gè)像素位置取通道最大值,進(jìn)行可視化分析。
投影矩陣在不同訓(xùn)練階段的可視化結(jié)果如圖4所示。投影矩陣某個(gè)位置在通道維度的最大值越大,表明網(wǎng)絡(luò)將該像素分配給某個(gè)隱空間節(jié)點(diǎn)的置信度越高,體現(xiàn)到圖像上即為該位置的亮度越亮。對(duì)比圖4 中2 行的差異,可以看到第1 行,在使用了KL 散度損失函數(shù)監(jiān)督投影矩陣與投影參考矩陣的分布差異時(shí),隨著迭代的進(jìn)行,圖片亮度未產(chǎn)生明顯變化。而在使用KL 散度損失函數(shù)監(jiān)督投影矩陣與同形狀的均勻分布矩陣的分布差異時(shí),隨著迭代的進(jìn)行,圖片亮度越來(lái)越低,即網(wǎng)絡(luò)將該位置像素分配給某個(gè)節(jié)點(diǎn)的概率差別變小。此現(xiàn)象表明KL 散度損失函數(shù)的使用在一定程度上起到了困難像素挖掘的作用,促使更多像素參與到了GNN 的學(xué)習(xí)中,從而實(shí)現(xiàn)了對(duì)分割結(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ù)集的驗(yàn)證集樣本中,挑取2 個(gè)具有一定代表性的樣本,分別對(duì)其分割結(jié)果進(jìn)行可視化。圖5 所示為不同方法語(yǔ)義分割的可視化結(jié)果。第1 列為樣本A,第2 列為樣本B。

圖5 不同方法的語(yǔ)義分割可視化結(jié)果Fig.5 Visualization results of semantic segmentation among different methods
從樣本A 中可以看出:基線方法在圖片右上角的“天空”中分割出一小塊“汽車”,此反常識(shí)現(xiàn)象在本文方法中得到完全修正;基線方法在圖片水平方向中間區(qū)域的“圍墻”遠(yuǎn)端分割出“墻”,而在本文方法中此現(xiàn)象得到了極大改善。分析其原因可以發(fā)現(xiàn)“圍墻”和“墻”兩者的紋理特征有一定差別,但語(yǔ)義相近。基線方法主要根據(jù)紋理特征進(jìn)行分割,而本文方法考慮不同類別語(yǔ)義特征之間的關(guān)聯(lián)性,從而改進(jìn)分割效果。在樣本B 中,基線方法在圖片左側(cè)的“汽車”上方分割出“人行道”、在圖片下方的“道路”中間分割出“摩托車”,此類反常識(shí)現(xiàn)象均在本文方法的分割結(jié)果中得到了極大改善。樣本B 的真實(shí)值顯示,畫面左側(cè)及下方存在“地形”類別,但觀察其輸入圖片,發(fā)現(xiàn)此區(qū)域的紋理特征與地面基本一致。此類標(biāo)注是從“汽車可行駛”條件為標(biāo)注依據(jù),即使停車位與地面紋理特征一致,但由于上方存在停放車輛,因此此區(qū)域未被分割為“道路”。此類場(chǎng)景需要更多先驗(yàn)知識(shí)進(jìn)行理解,對(duì)比樣本B 中的圖5(c)~圖5(f)可知,現(xiàn)有分割方法在此類場(chǎng)景下仍存在改進(jìn)空間。
本文提出一種基于深度監(jiān)督隱空間構(gòu)建的語(yǔ)義分割改進(jìn)方法。該方法采用“特征圖-隱空間-特征圖”范式,在隱空間構(gòu)建過(guò)程中,加入位置編碼保留特征的位置信息,以緩解原流程中的“位置模糊”問(wèn)題;使用KL 散度損失函數(shù)監(jiān)督投影矩陣,以緩解原流程中的“分配失衡”問(wèn)題。為確保從特征圖到隱空間的轉(zhuǎn)換過(guò)程有效,并且能夠構(gòu)建具有足夠表征能力的隱空間,本文采用InfoNCE 損失函數(shù),使用分割真實(shí)掩碼標(biāo)簽,監(jiān)督轉(zhuǎn)換得到節(jié)點(diǎn)特征。在CityScapes 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文網(wǎng)絡(luò)能夠有效改善語(yǔ)義分割中出現(xiàn)的不規(guī)則、反常識(shí)區(qū)域,并在精度方面相較于基線有顯著提升。后續(xù)將對(duì)本文提出的特征轉(zhuǎn)換及隱空間構(gòu)建方法進(jìn)行改進(jìn),使其適用于圖像、自然語(yǔ)言、激光點(diǎn)云等多模態(tài)任務(wù),通過(guò)將多模態(tài)特征統(tǒng)一投影至同一隱空間,增強(qiáng)模型的表征能力,進(jìn)而提升其在下游任務(wù)中的表現(xiàn)。