羅嗣卿,張志超,岳 琪
(東北林業(yè)大學(xué)信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040)
在傳統(tǒng)的計(jì)算機(jī)視覺領(lǐng)域中,研究人員需要通過手動(dòng)或統(tǒng)計(jì)的方式尋找圖像中具有代表性的區(qū)域或像素點(diǎn),并根據(jù)這些區(qū)域或像素點(diǎn)構(gòu)建對該圖像的全局描述特征。而利用全局描述特征解決圖像分類和目標(biāo)檢測等計(jì)算機(jī)視覺問題時(shí),典型的全局描述特征魯棒性不強(qiáng),且當(dāng)光照、視角、明暗以及紋理等發(fā)生改變時(shí),描述特征將會(huì)隨之改變甚至失效。針對該問題,卷積神經(jīng)網(wǎng)絡(luò)為其提供一種新的特征構(gòu)造方式,通過大量的訓(xùn)練樣本尋找最佳特征構(gòu)造方式,并利用這種構(gòu)造方式對每張圖像進(jìn)行特征建模。因?yàn)橛写罅坑?xùn)練樣本的支持,所以使用卷積神經(jīng)網(wǎng)絡(luò)得到的特征相比傳統(tǒng)的全局描述特征更加穩(wěn)定,并且對光照和視角等條件更加魯棒。因此,卷積神經(jīng)網(wǎng)絡(luò)逐漸取代了傳統(tǒng)方法,并在計(jì)算機(jī)視覺子領(lǐng)域中得到廣泛應(yīng)用。
圖像語義分割作為計(jì)算機(jī)視覺領(lǐng)域的主要分支,受到了國內(nèi)外研究人員的廣泛關(guān)注。在應(yīng)用于無人駕駛時(shí),圖像語義分割技術(shù)可自動(dòng)劃分出汽車在行駛過程中需要避讓的行人、路障和其他汽車等障礙,良好的語義分割效果促進(jìn)了自動(dòng)駕駛技術(shù)的快速發(fā)展。
目前,國內(nèi)外研究人員在圖像語義分割方面已取得顯著的研究成果。文獻(xiàn)[1]將深度學(xué)習(xí)技術(shù)引入至圖像語義分割領(lǐng)域中,并提出了著名的FCN 結(jié)構(gòu)。該方法利用全卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)對圖像進(jìn)行編碼,且端到端的訓(xùn)練方式簡化了語義分割問題過程,得到準(zhǔn)確率更優(yōu)的結(jié)果。文獻(xiàn)[2]在FCN 的基礎(chǔ)上加入了生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN),利用GAN 能夠較好擬合未知分布的能力提升了FCN 結(jié)構(gòu)對藍(lán)藻的分割精度。文獻(xiàn)[3]提出了SEGNET 模型,該模型的上采樣操作中使用了包含池化索引的上采樣,以降低池化操作導(dǎo)致的信息丟失,此外還使用跳層連接傳遞低層特征,增加特征中包含的信息量。文獻(xiàn)[4]基于FCN 提出了UNET 結(jié)構(gòu),并加入了反卷積操作、橫向連接以及更多的卷積層,將上采樣操作變?yōu)榭蓪W(xué)習(xí)的過程,使得從圖像特征編碼到最后預(yù)測結(jié)果更加平滑,有效提升分割效果。文獻(xiàn)[5]基于UNET 加入了條件GAN,利用判別器提供的額外信息來提升UNET 對咬翼片的分割精度。文獻(xiàn)[6]利用循環(huán)GAN 中具備的輸入與輸出能夠相互轉(zhuǎn)化的特性對道路場景進(jìn)行語義分割。文獻(xiàn)[7]提出了Deep Lab V3 模型,并在模型中加入了空洞金字塔池化模塊,通過整合不同尺度的語義信息來提升模型分割的精確度。
圖像語義分割問題的目標(biāo)是對圖像中包含每個(gè)像素的類別進(jìn)行準(zhǔn)確預(yù)測。然而在實(shí)際應(yīng)用場景中,由于對圖像中像素點(diǎn)間的關(guān)系考慮不充分,導(dǎo)致模型預(yù)測出現(xiàn)分割效果不佳以及同一目標(biāo)中像素點(diǎn)間的類別預(yù)測不一致的現(xiàn)象。針對該問題,本文提出一種改進(jìn)的SEGNET 模型,一方面通過改進(jìn)模型的結(jié)構(gòu)來豐富多尺度語義信息,增強(qiáng)模型對輸入圖像的表征能力,另一方面在原有模型的基礎(chǔ)上加入GAN[8]結(jié)構(gòu),使模型能夠考慮像素點(diǎn)間關(guān)系。
現(xiàn)有SEGNET 模型在實(shí)際使用中對整張圖像上像素點(diǎn)類別預(yù)測的準(zhǔn)確度不理想,這主要是因?yàn)镾EGNET 模型對多尺度語義信息的利用率有限,每個(gè)解碼器中僅包含一種尺度的語義信息,而多尺度信息是模型對像素點(diǎn)準(zhǔn)確分類的重要依據(jù)[9-12],缺乏該信息則限制了SEGNET 模型效率的提升。
為解決上述問題,本文對SEGNET 模型結(jié)構(gòu)進(jìn)行改進(jìn)。SEGNET 的結(jié)構(gòu)在編碼器部分存在多個(gè)卷積層,這些卷積層具備捕捉不同尺度特征的能力(即具備不同的感受野),為了使得解碼器能夠充分利用編碼器部分包含的多尺度特征,在SEGNET 中加入一條自底向上的通路。首先,編碼器中各層特征在自底向上通路與跳層連接的作用下層層遞進(jìn)整合,得到具備多尺度語義信息的特征。然后,將該特征發(fā)送至解碼器中進(jìn)行下一步卷積操作。顯然,相比原始的SEGNET 模型通過跳層連接將編碼器中的單尺度特征傳遞給解碼器,自底向上通路的加入使得編碼器中包含具有不同尺度語義信息的特征得到了充分利用,每個(gè)解碼器獲得了更加豐富的多尺度語義信息,為后續(xù)的解碼操作提供信息支撐。
圖1 改進(jìn)的SEGNET 模型結(jié)構(gòu)Fig.1 Improved SEGNET model structure
在實(shí)際應(yīng)用SEGNET 模型對圖像進(jìn)行語義分割時(shí),通常會(huì)出現(xiàn)對圖像中同一目標(biāo)內(nèi)相鄰的像素點(diǎn)預(yù)測值不一致的問題,即同屬一個(gè)目標(biāo)的像素點(diǎn)類別預(yù)測結(jié)果中出現(xiàn)了其他類別。這一問題產(chǎn)生的原因在于原始SEGNET 模型訓(xùn)練使用的是交叉熵?fù)p失函數(shù),這種損失函數(shù)在訓(xùn)練過程中僅關(guān)注當(dāng)前點(diǎn)的類別標(biāo)簽,每一張圖像反向傳播更新參數(shù)時(shí)所使用的梯度只與預(yù)測的點(diǎn)標(biāo)簽(Predict per pixel)與人工標(biāo)注的真實(shí)點(diǎn)標(biāo)簽(Ground truth per pixel)間的差異有關(guān),而并未考慮圖像中像素點(diǎn)與像素點(diǎn)間的關(guān)系。
在模型中加入生成對抗網(wǎng)絡(luò)結(jié)構(gòu),通過該結(jié)構(gòu)能夠較好地?cái)M合未知分布的能力來緩解上述問題[14-17]。具體的方法是將改進(jìn)的SEGNET 網(wǎng)絡(luò)作為生成器,同時(shí)使用卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建一個(gè)判別器。隨機(jī)初始化生成器后,使用生成器的輸出與人工標(biāo)注的真實(shí)值構(gòu)成樣本對,并利用該樣本對判別器進(jìn)行訓(xùn)練直至收斂。當(dāng)判別器收斂時(shí)就具備了分辨輸入來源的能力,而對于生成器的輸出,判別器的響應(yīng)為0,對于人工標(biāo)記的真實(shí)值,判別器的響應(yīng)為1。接下來使用訓(xùn)練好的判別器對生成器進(jìn)行訓(xùn)練,此時(shí)生成器的目標(biāo)在于盡可能騙過判別器,生成器將盡量去模仿人工標(biāo)注的真實(shí)值。對于每一個(gè)人工標(biāo)注的真實(shí)值,點(diǎn)與點(diǎn)間的相互關(guān)系作為幫助人類區(qū)分像素點(diǎn)類別的重要性質(zhì)而受到關(guān)注,則生成器在模仿真實(shí)值時(shí)也會(huì)學(xué)習(xí)關(guān)注點(diǎn)與點(diǎn)間的相互關(guān)系。在加入生成對抗網(wǎng)絡(luò)后,模型的整體結(jié)構(gòu)如圖2 所示。
圖2 加入生成對抗網(wǎng)絡(luò)后的模型結(jié)構(gòu)Fig.2 The model structure after adding the GAN
訓(xùn)練判別器D采用的損失函數(shù)(LD)為二分類交叉熵(Binary Cross Entropy,BCE),其中,xn表示生成器G的輸入,G(xn)表示生成器的輸出,yn表示xn對應(yīng)的Ground Truth。
在判別器D訓(xùn)練完成后,將D固定(即暫時(shí)固定D中的參數(shù)值)并開始訓(xùn)練生成器G,此時(shí)的損失函數(shù)為:
判別器D損失函數(shù)中的第一項(xiàng)會(huì)使得生成器對單像素點(diǎn)的預(yù)測標(biāo)簽盡可能與真實(shí)值相同,第二項(xiàng)包含了判別器對于生成器輸出G(xn)的響應(yīng),判別器對生成器結(jié)果的誤檢將會(huì)導(dǎo)致第二項(xiàng)的數(shù)值變大,損失函數(shù)的整體數(shù)值下降。因此最小化生成器損失函數(shù)時(shí),該項(xiàng)的存在會(huì)優(yōu)化生成器產(chǎn)生能夠使判別器誤判的輸出,促使生成器具備關(guān)注點(diǎn)與點(diǎn)間相互關(guān)系的能力。
模型的最終整體損失函數(shù)為:
需要注意的是,在本文結(jié)構(gòu)中作為生成器模型的SEGNET 編碼器部分使用了Imagenet[18]預(yù)訓(xùn)練模型,在解碼器部分使用了Xavier[19]初始化,并未使用經(jīng)過反向傳播訓(xùn)練好的SEGNET。這是因?yàn)樵嫉纳蓪咕W(wǎng)絡(luò)在訓(xùn)練中,通常因?yàn)榕袆e器的收斂速度總是優(yōu)于生成器而導(dǎo)致生成器訓(xùn)練過程震蕩,模型無法收斂,造成整個(gè)生成對抗網(wǎng)絡(luò)訓(xùn)練失敗。相應(yīng)的如果直接使用訓(xùn)練好的SEGNET 作為生成器,那么判別器的訓(xùn)練過程也會(huì)出現(xiàn)震蕩且無法收斂。使用IMAGENET 預(yù)訓(xùn)練模型以及Xavier 初始化的意義是在判別器的優(yōu)化曲面上選擇了一個(gè)較好的梯度下降起始點(diǎn),同時(shí)相對于常使用的隨機(jī)初始化方式,IMAGENET+Xavier 還可有效避免訓(xùn)練初期出現(xiàn)的梯度爆炸或梯度彌散問題,有益于算法的收斂速度和收斂結(jié)果。
根據(jù)大體積混凝土產(chǎn)生原因和現(xiàn)場施工管理特點(diǎn),需要從支撐設(shè)計(jì)、澆筑現(xiàn)場施工工藝控制和成品養(yǎng)生等多個(gè)角度綜合采用針對性方法進(jìn)行控制,以達(dá)到提前預(yù)防的目的。
本文選擇CAMVID[20]數(shù)據(jù)集進(jìn)行對比實(shí)驗(yàn),該數(shù)據(jù)集由劍橋大學(xué)收集整理和標(biāo)注,是一組分辨率大小為960×720 的道路街景圖像構(gòu)成,標(biāo)簽類別數(shù)統(tǒng)一設(shè)置為11 類。本文在CCF 衛(wèi)星影像的AI 分類與識(shí)別競賽提供的數(shù)據(jù)(下文簡稱CCF 衛(wèi)星影像數(shù)據(jù)集)遙感圖像上進(jìn)行測試,該數(shù)據(jù)集由高清分辨率遙感影像組成,圖像空間分辨率為亞米級,且共包含植被(綠色)、道路(黑色)、建筑(灰色)、水體(藍(lán)色)和其他(白色)5 個(gè)類別。數(shù)據(jù)集中包含5 幅人工標(biāo)記的遙感圖像,平均尺寸為8 000 像素×8 000 像素。
為進(jìn)一步擴(kuò)充CAMVID 數(shù)據(jù)集的圖像數(shù)量以防止過擬合,本文在對比實(shí)驗(yàn)階段的所有數(shù)據(jù)預(yù)處理中選擇與SEGNET 相同的操作對數(shù)據(jù)集進(jìn)行增強(qiáng),主要包括高斯平滑、隨機(jī)添加噪聲點(diǎn)、顏色抖動(dòng)以及圖像的旋轉(zhuǎn)與縮放等,而對測試集與驗(yàn)證集未做數(shù)據(jù)增強(qiáng)。
由于CCF 衛(wèi)星影像數(shù)據(jù)集的數(shù)據(jù)量稀少且計(jì)算資源存在限制,本文先對數(shù)據(jù)集中的5 幅遙感影像進(jìn)行劃分,將前4 張遙感影像作為訓(xùn)練集,而最后一張作為驗(yàn)證集。接下來將前4 張圖像切分(允許重疊)為256 像素×256 像素的圖像塊,并對得到的圖像塊添加椒鹽噪聲、顏色抖動(dòng)和圖像的旋轉(zhuǎn)與縮放等數(shù)據(jù)增強(qiáng)操作,從而得到10 萬幅256 像素×256 像素的圖像集合。
CAMVID 數(shù)據(jù)集上的對比實(shí)驗(yàn)是在Ubuntu 16.0.4環(huán)境下進(jìn)行的,并使用Tesla v100 GPU 作為硬件環(huán)境,訓(xùn)練過程的批(Batch)選擇由8 張圖像構(gòu)成,優(yōu)化器使用了具有自適應(yīng)能力的Adam 優(yōu)化器,學(xué)習(xí)率初始值設(shè)置為0.000 2,針對學(xué)習(xí)率使用指數(shù)衰減策略,動(dòng)量系數(shù)為0.9,共迭代了9 000 輪,在迭代次數(shù)為6 000 附近時(shí)達(dá)到了收斂,具體的訓(xùn)練過程如圖3所示。針對CCF衛(wèi)星影像數(shù)據(jù)集,在Ubuntu 16.0.4的環(huán)境下使用Titan V GPU作為硬件環(huán)境,訓(xùn)練過程的Batch 設(shè)置為16,優(yōu)化器選擇了具備自適應(yīng)調(diào)節(jié)步長的Adam 優(yōu)化器,學(xué)習(xí)率的初始值設(shè)置為0.000 2,以562 個(gè)Batch 為一個(gè)epoch,共訓(xùn)練了80 個(gè)epoch,具體的訓(xùn)練過程與圖3 相同。
圖3 訓(xùn)練流程示意圖Fig.3 Schematic diagram of training process
模型的測試階段中僅使用生成器,并將測試樣本送入生成器后得到預(yù)測結(jié)果。測試過程中為避免出現(xiàn)偏差,調(diào)整測試樣本的輸入尺寸與訓(xùn)練樣本尺寸相同,且測試過程中不使用數(shù)據(jù)增強(qiáng)操作。
在圖像分割中,通常使用平均像素精度(Mean Pixel Accuracy,MPA)和均交并比(Mean Intersection Over Union,MIOU)這2 種衡量指標(biāo)來衡量算法精度,其中,MPA 表示各個(gè)類別像素準(zhǔn)確率的平均值,MIOU 表示語義分割的標(biāo)準(zhǔn)度量,其計(jì)算模型預(yù)測得到的標(biāo)注圖與人工標(biāo)注圖的交集與并集之比。MPA 和MIOU 的計(jì)算方法分別如式(4)和式(5)所示。
在CAMVID 數(shù)據(jù)集和CCF 衛(wèi)星影像數(shù)據(jù)集上,以FCN、DeepLabV2[21]、DeepLabV3、原始SEGNET 模型和原始SEGNET+GAN 模型作為對比模型,驗(yàn)證本文改進(jìn)SEGNET 模型和改進(jìn)SEGNET+GAN 模型的性能優(yōu)勢。
3.2.1 CAMVID 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
7種模型在CAMVID 數(shù)據(jù)集上的MPA 與MIOU 實(shí)驗(yàn)結(jié)果對比如表1 所示。從表1 可以看出,改進(jìn)SEGNET+GAN 模型的MPA 與MIOU 都超越了原始SEGNET 模型、FCN 模型和DeepLab V2 模型,并且達(dá)到了與DeepLab V3 相近的效果。
表1 7 種模型在CAMVID 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對比Table 1 Comparison of the experimental results of seven models on the CAMVID dataset %
原始SEGNET、原始SEGNET+GAN、改進(jìn)SEGNET和改進(jìn)SEGNET+GAN 模型在CAMVID 測試集上對建筑物、樹和天空等11種類別圖像分割的像素精度如表2所示。從表2 可以看出,與原始SEGNET 模型相比,在加入GAN 結(jié)構(gòu)后,模型對建筑物、樹、天空和道路等較大目標(biāo)類別的像素精確度有明顯提升,并且加入自底向上通路的改進(jìn)SEGNE 模型得到的提升效果更加均衡,在各個(gè)類別上的像素精度都有較大提升。
表2 4 種模型在不同類別圖像下的平均像素精度Table 2 MAP of four models in different types of images %
表3 給出了在Tesla V100 硬件條件下,5 種模型對測試集上的各張圖像預(yù)測的平均時(shí)長。從表3 可以看出,本文改進(jìn)SEGNET+GAN 模型在測試階段的用時(shí)與SEGNET 模型較為相近。與DeepLab V2 和DeepLab V3 模型相比,本文模型在得到更強(qiáng)和相近的分割效果的同時(shí),推理速度更快。這是因?yàn)楸疚哪P蛢H在訓(xùn)練時(shí)增加了參數(shù)量,在測試時(shí)并未有大量參數(shù)增加,因此對測試時(shí)的推理速度影響較小。
表3 5 種模型的平均測試運(yùn)行時(shí)間Table 3 Average test running time of five models ms
為了更加直觀地體現(xiàn)加入GAN 結(jié)構(gòu)對像素類別一致性的提升效果,本文對原始SEGNET 模型與加入GAN 結(jié)構(gòu)后的原始SEGNET 模型的預(yù)測結(jié)果進(jìn)行可視化處理,對比結(jié)果如圖4 所示(彩色效果見《計(jì)算機(jī)工程》官網(wǎng)HTML 版)。通過對比圖4(b)和圖4(c)可以看出,與傳統(tǒng)的SEGNET 模型相比,在原始SEGNET 模型中加入GAN 后,模型對相鄰像素間的類別一致性有明顯改善,且包含在同一目標(biāo)中的像素點(diǎn)類別誤檢率大幅降低。
圖4 原始SEGNET 模型和原始SEGNET+GAN 模型在CAMVID 數(shù)據(jù)集上的可視化結(jié)果對比Fig.4 Comparison of the visualization results of the original SEGNET model and the original SEGNET+GAN model on the CAMVID dataset
3.2.2 CCF 衛(wèi)星影像數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
在Titan V 的硬件條件下,5 種模型在CCF 衛(wèi)星影像數(shù)據(jù)測試集上的MPA 和MIOU 結(jié)果對比如表4所示。通過表4 可以看出,本文模型的效果均優(yōu)于傳統(tǒng)的SEGNET 模型和DeepLabV2 模型。
表4 5 種模型在CCF 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對比Table 4 Comparison of the experimental results of seven models on the CCF dataset %
本文對原始SEGNET 模型和原始SEGNET+GAN模型的預(yù)測結(jié)果進(jìn)行可視化處理,對比結(jié)果如圖5 所示(彩色效果見《計(jì)算機(jī)工程》官網(wǎng)HTML 版)。從圖5可以看出,原始SEGNET+GAN 對道路(黑色)中出現(xiàn)的同屬一目標(biāo)的像素類別不一致現(xiàn)象有所壓制,在原始SEGNET 預(yù)測中出現(xiàn)的建筑被植被包圍的錯(cuò)誤預(yù)測也大幅降低。
圖5 原始SEGNET 模型和原始SEGNET+GAN 模型在CCF 數(shù)據(jù)集上的可視化結(jié)果對比Fig.5 Comparison of the visualization results of the original SEGNET model and the original SEGNET+GAN model on the CCF dataset
針對原始SEGNET 對同一目標(biāo)中像素點(diǎn)類別預(yù)測結(jié)果不一致的問題,本文提出了改進(jìn)的SEGNET模型。通過在原始SEGNET 中加入一條自底向上的通路,以充分利用模型中包含的多尺度語義信息,提升模型單像素的分類準(zhǔn)確率。此外,在模型訓(xùn)練過程中引入有助于模型學(xué)習(xí)聯(lián)合概率分布的生成對抗結(jié)構(gòu),解決同一目標(biāo)中像素點(diǎn)類別預(yù)測不一致的問題。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的SEGNET 模型在CAMVID 數(shù)據(jù)集上取得了相比原始SEGNET 模型更優(yōu)的分割效果。下一步將使用殘差網(wǎng)絡(luò)替換當(dāng)前骨干網(wǎng)絡(luò),并對模型的上采樣過程進(jìn)行改進(jìn),以減少上采樣過程中引入的噪聲,進(jìn)一步提升模型的分割效果。