劉臘梅,王曉娜,劉萬軍,曲海成
遼寧工程技術(shù)大學(xué) 軟件學(xué)院,遼寧 葫蘆島 125105
圖像語義分割將圖像分為具有語義信息的區(qū)域,其原理是把原始數(shù)據(jù)作為輸入,通過一系列技術(shù)操作將它們轉(zhuǎn)換為具有感興趣區(qū)域的掩膜。語義分割是處理典型計算機視覺和模式識別領(lǐng)域的關(guān)鍵技術(shù)。計算機視覺中場景理解和行為識別的關(guān)鍵任務(wù)是通過語義分割為圖像的每個像素標(biāo)注所屬的類別信息。語義分割依據(jù)網(wǎng)絡(luò)訓(xùn)練方式的不同可分為全監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)圖像語義分割,當(dāng)前主要應(yīng)用于機器人感知、自動駕駛、人臉分割、醫(yī)療影像分析、地表地質(zhì)檢測、精準(zhǔn)農(nóng)業(yè)、遙感圖像處理等領(lǐng)域。
早期圖像語義分割主要使用的是聚類算法,為了使圖像語義分割在深度學(xué)習(xí)領(lǐng)域快速發(fā)展,Long 等人提出一種端到端的全卷積網(wǎng)絡(luò)(fully convolutional networks,F(xiàn)CN),F(xiàn)CN 以CNN 為基本架構(gòu)將最后一層的全連接層替換為卷積層,F(xiàn)CN 解決了傳統(tǒng)模型重復(fù)存儲和卷積計算的問題,提高了語義分割的精度。但FCN 中池化操作會降低特征圖的分辨率,Ronneberger等人基于FCN 模型提出了一種網(wǎng)絡(luò)模型U-net。針對自動駕駛中場景理解存在的圖像語義分割精度低問題提出了一種Encoder-Decoder 的卷積神經(jīng)網(wǎng)絡(luò)SegNet,SegNet在FCN 的基礎(chǔ)上增加了池化層。近幾年,圖像語義分割較為常用的算法是由Google 公司提出的DeepLab 系列方法。DeepLabv1利用DCNN 和FCCR(fully connected conditional random field)提高了深度網(wǎng)絡(luò)定位的準(zhǔn)確性;DeepLabv2利用擴張卷積和ASPP(atrous spatial pyramid pooling)解決了圖像語義分割存在分辨率低的問題,進一步改善了語義分割的效果。在DeepLabv1與DeepLabv2的思想基礎(chǔ)上提出了DeepLabv3,主要應(yīng)用于超聲圖像分割,ASPP 可以捕獲多尺度的圖像信息,但缺乏淺層圖像精細(xì)的位置信息,因此DeepLabv3+對網(wǎng)絡(luò)繼續(xù)優(yōu)化,將DeepLabv3 作為解碼器,增加了編碼器結(jié)構(gòu),恢復(fù)了邊界細(xì)節(jié)且提高網(wǎng)絡(luò)的運行速率,平衡了語義分割的精度和速度。DeepLab 系列有效擴大網(wǎng)絡(luò)的感受野,多個尺度捕獲圖像的上下文信息,提高了語義分割的空間精度。
迄今為止,深度卷積神經(jīng)網(wǎng)絡(luò)在分割精度上取得了很大的進展,其中一個研究方向是通過增加網(wǎng)絡(luò)的深度、增大復(fù)雜度來提升分割精度,但隨著智能設(shè)備的發(fā)展,對網(wǎng)絡(luò)模型、算法復(fù)雜度、效率提出了更高的要求,因此通過降低算法復(fù)雜度、減少參數(shù)以提升網(wǎng)絡(luò)的效率,Zhao 等人提出了圖像級聯(lián)網(wǎng)絡(luò)(image cascade network,ICNet),限制圖片輸入的尺寸,減小計算量,以提高網(wǎng)絡(luò)的推理速度,但由于邊界處空間細(xì)節(jié)的丟失,導(dǎo)致分割精度下降。除此之外,Paszke 等人提出了ENet,通過剪切通道來減少網(wǎng)絡(luò)的參數(shù),提高模型的分割速度,由于下采樣提取的信息缺乏細(xì)節(jié)特征,導(dǎo)致這些方法在損失精度的前提下才能實現(xiàn)提高速度。為了獲取更豐富的細(xì)節(jié)特征,使用U 型結(jié)構(gòu)提高空間分辨率,補充了細(xì)節(jié)信息,U-net 在醫(yī)學(xué)圖像分割和其他圖像語義分割領(lǐng)域都得到了專家學(xué)者的廣泛應(yīng)用。近年來,較為成功的是將U-net 模型應(yīng)用于Kaggle Carvana 圖像語義分割競賽對KITTI 數(shù)據(jù)集中背景和車兩種類別的分割問題上,在處理二分類問題時語義分割精度達到了98.9%,損失率降低到0.02。利用U-net 解決了模型對大量樣本和計算資源的需求,但是處理多分類問題卻只能達到76.8%,損失率只達到1.43,且分割物體存在混淆。當(dāng)前,針對缺乏空間細(xì)節(jié)特征,導(dǎo)致精度低的問題,Zhang 等人在U-net 框架的基礎(chǔ)上設(shè)計了深度殘差模塊,提出DResUnet對遙感圖像進行語義分割取得了好的分割效果。改進的U-net++通過疊加不同層次的特征,縮減了網(wǎng)絡(luò)參數(shù)量,提升了分割精度。綜上,以U-net網(wǎng)絡(luò)模型為基準(zhǔn),融合深度殘差網(wǎng)絡(luò)學(xué)習(xí)模塊、轉(zhuǎn)置卷積、Dropout提出了一種處理圖像語義分割多分類問題算法,命名為TDDResUnet。算法獲得了高的語義分割精度、低的損失率,對比原U-net 圖像語義分割網(wǎng)絡(luò)模型,多分類效果得到了明顯的提升,有效提升了算法的魯棒性。
圖像語義分割為了獲得更好的分割效果,將基于編碼-解碼器的U 型網(wǎng)絡(luò)模型U-net 應(yīng)用到語義分割領(lǐng)域,在保留低層特征信息的同時,也保留高層語義信息。U-net 由收縮路徑和擴展路徑兩部分組成,U-net 是FCN 模型的一種變形,主要有編碼器、跳躍連接和解碼器,U-net網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1 所示。
圖1 U-net模型結(jié)構(gòu)Fig.1 U-net model structure
編碼器位于模型左側(cè)用于提取圖像的空間特征,包含四個子模塊的編碼器,每個輸入模塊圖像分辨率為572×572、284×284、140×140、68×68 與32×32,卷積塊包含兩個3×3 卷積,然后進行最大池化,通過下采樣操作捕捉上下文信息逐層提取圖像中目標(biāo)特征。解碼器位于模型右側(cè),解碼器對編碼器的特征構(gòu)造分割圖,包含四個子模塊的解碼器,通過反卷積進行上采樣操作恢復(fù)物體的細(xì)節(jié)和圖像分辨率,反卷積操作先通過UpSampling2D 將圖片尺寸擴大兩倍,執(zhí)行2×2 卷積將通道數(shù)縮小為一半,然后執(zhí)行3×3 卷積運算,最后執(zhí)行1×1 卷積逐個對圖像的每個像素點進行運算生成最終的分割圖。U-net網(wǎng)絡(luò)主要特點是跳躍連接層,跳躍連接層將編碼器中的輸出傳輸?shù)浇獯a器,它將上采樣的結(jié)果與編碼器中具有相同分辨率的子模塊的輸出進行串聯(lián),將級聯(lián)后特征圖作為下一個子模塊的輸入,盡可能保留更多的細(xì)節(jié),提高分割的分辨率和邊緣的準(zhǔn)確度,Unet解決了語義分割對樣本量和計算資源的需求。
深度學(xué)習(xí)中,深度殘差網(wǎng)絡(luò)(deep residual network,Deep-Resnet)是為了解決隨神經(jīng)網(wǎng)絡(luò)深度增加出現(xiàn)網(wǎng)絡(luò)性能退化的問題。這種退化問題體現(xiàn)在準(zhǔn)確率先持續(xù)上升然后達到飽和,當(dāng)網(wǎng)絡(luò)深度持續(xù)增加時,準(zhǔn)確率會下降。深度殘差網(wǎng)絡(luò)利用簡潔的殘差學(xué)習(xí)模塊訓(xùn)練深層網(wǎng)絡(luò),解決了隨著網(wǎng)絡(luò)深度的加深造成的學(xué)習(xí)率低、準(zhǔn)確率無法提升的問題。殘差學(xué)習(xí)模塊如圖2 所示。
圖2 深度殘差學(xué)習(xí)模塊Fig.2 Deep residual learning module
Deep-Resnet 的思想繼承了殘差網(wǎng)絡(luò)中增加直連通道的思想,延續(xù)了Highway Network。它也由兩種mapping 形式構(gòu)成,一種是identity mapping,另一種為residual mapping,最后的輸出為:
前一種指本身,即公式中的。而后一種指殘差,表示為(-),新增加的層僅需在原輸入的基礎(chǔ)上學(xué)習(xí)新特性,即學(xué)習(xí)殘差()。殘差特征學(xué)習(xí)比原始學(xué)習(xí)更容易,當(dāng)殘差為0 時,堆積層只做恒等映射,輸出在不增加任何參數(shù)的條件下跳過本層直接輸給下一層網(wǎng)絡(luò)。在實際操作時()不會為0,這使得堆積層學(xué)習(xí)到新的特征獲得了更好的性能。
轉(zhuǎn)置卷積(transposed convolution,TC)與反卷積相似,但不是真正意義上的反卷積,反卷積可以通過卷積輸出信號完全還原為輸入信號。而轉(zhuǎn)置卷積原理是將輸入的尺寸放大,只能還原到原輸入大小,但信號值有所變化。圖像處理中上采樣的方法有多種,如最近鄰插值、雙線性插值、轉(zhuǎn)置卷積等,其中,轉(zhuǎn)置卷積是一種較優(yōu)上采樣方法。轉(zhuǎn)置卷積在語義分割或超分辨率的任務(wù)中常用于對CNN 中特征圖進行上采樣,當(dāng)前在語義分割領(lǐng)域應(yīng)用較為廣泛。轉(zhuǎn)置卷積是將普通卷積操作中的卷積核轉(zhuǎn)置,轉(zhuǎn)置卷積形式上相當(dāng)于一個卷積層的反向梯度計算,在計算過程中相比卷積先將權(quán)重矩陣轉(zhuǎn)置,然后左乘輸入。轉(zhuǎn)置卷積有兩個重要的特性:首先是轉(zhuǎn)置的卷積核變?yōu)槠胀ň矸e核的轉(zhuǎn)置,其次如果把輸入到輸出特征圖的計算過程畫成一個計算圖,輸入輸出的連接關(guān)系是不變的。
設(shè)一個卷積核為,輸入維列向量,卷積過程與轉(zhuǎn)置卷積可以表示為:
轉(zhuǎn)置卷積與普通卷積的本質(zhì)建立于值之間的映射關(guān)系,輸入與輸出的關(guān)系被反向處理。轉(zhuǎn)置卷積不會增加感受野的大小,它僅是學(xué)習(xí)一個特征點的內(nèi)容,然后映射到卷積核,因此卷積核上所有點的感受野保持不變,在其后面加入多層的卷積,會擴大感受野的范圍。因此在上采樣中使用轉(zhuǎn)置卷積可以通過學(xué)習(xí)方式得到更高的精度。
U-net 模型將FCN 的全連接層替換為卷積層進行上采樣,使上下文信息向更高分辨率傳播,網(wǎng)絡(luò)呈U 型對稱結(jié)構(gòu)。U-net 模型對于圖像語義分割二分類問題上取得了較好的分割效果,但是對于圖像語義分割多分類問題上卻存在語義分割精度低、損失率大、分割效果差的問題,相比二分類語義分割精度提升了22.1 個百分點,損失率降低了1.41。針對上述問題,對U-net模型進行三方面的改進:
(1)在U-net模型上融合了深度殘差學(xué)習(xí)模塊;
(2)將深度殘差U-net 模型中UpSampling2D 和轉(zhuǎn)置卷積兩種上采樣方式拼接,形成新的上采樣模塊;
(3)在模型的跳躍連接層融合Dropout(DO)。
改進的U-net整體框架如圖3 所示。
圖3 改進的U-net整體框架Fig.3 Improved overall framework of U-net
本文模型在U-net 模型上進行設(shè)計,保留其編碼再解碼的結(jié)構(gòu),U-net 原始模塊如圖4 所示。在圖像的語義分割中,神經(jīng)網(wǎng)絡(luò)的深度對于分割結(jié)果存在很大的影響,因此傳統(tǒng)的方法將網(wǎng)絡(luò)設(shè)計得較深,但網(wǎng)絡(luò)加深會帶來梯度消失問題,降低網(wǎng)絡(luò)的學(xué)習(xí)率。為了解決這一問題,He等人提出了殘差網(wǎng)絡(luò)。在Unet 的原始模塊的基礎(chǔ)上引入深度殘差學(xué)習(xí)模塊,殘差學(xué)習(xí)模塊不僅結(jié)構(gòu)簡單且容易學(xué)習(xí),殘差學(xué)習(xí)模塊的引入解決了隨著網(wǎng)絡(luò)深度增加,學(xué)習(xí)率低、準(zhǔn)確率無法提升、模型計算復(fù)雜度高的問題。Deep-ResUnet 模塊如圖5 所示。Deep-ResUnet 模塊第一層殘差單元模塊先進行卷積操作,再進行BN(batchnormalization)提高算法收斂性。
圖4 U-net原始模塊Fig.4 U-net original module
圖5 Deep-ResUnet模塊Fig.5 Deep-ResUnet module
Deep-ResUnet模塊表達為:
式中,表示殘差網(wǎng)絡(luò)單元的輸入,表示殘差單元的輸出,(·)表示殘差機制,()層提取特征之后得到新特征,此時已結(jié)合了淺層的信息,獲得的特征會更加豐富且有利于分割。引入殘差A(yù)dd 運算不僅不會增加計算量和額外的參數(shù),而且大大提高模型的訓(xùn)練速度,提升訓(xùn)練效果。當(dāng)模型的層數(shù)加深時,這個簡單的結(jié)構(gòu)使訓(xùn)練難度降低,解決網(wǎng)絡(luò)退化問題,也使得優(yōu)化網(wǎng)絡(luò)的同時有效提升了它的準(zhǔn)確率,提高了學(xué)習(xí)率,降低算法計算的復(fù)雜度。
以U-net模型框架為基礎(chǔ)進行設(shè)計,U-net模型先經(jīng)過下采樣提取圖像的特征,然后使用上采樣操作還原圖像的分辨率,從而提高低分辨率圖像的分辨率。U-net 模型將上采樣過程定義為Up-Conv,先用UpSampling2D 將圖片擴大到需要的尺寸,然后進行卷積操作。FCN 在上采樣過程中使用轉(zhuǎn)置卷積不僅將特征圖放大到原圖的尺寸,還能得到更加精細(xì)的分割效果,轉(zhuǎn)置卷積優(yōu)點在于它的權(quán)值是可以學(xué)習(xí)的,沒有使用預(yù)先定義好的下插值方法。轉(zhuǎn)置卷積將卷積核轉(zhuǎn)置后與矩陣相乘,通過卷積運算來實現(xiàn)分辨率的還原,它能夠?qū)W習(xí)到較優(yōu)的特征提取方法,從而實現(xiàn)對每個像素的分類。
U-net模型上采樣與下采樣特征提取后對應(yīng)通道數(shù)相同尺度特征圖拼接,由于在下采樣過程每一個特征提取階段會損失掉一部分特征信息,需通過上采樣過程還原圖像的分辨率。為了達到好的還原效果,以U-net 框架為基礎(chǔ),將U 型網(wǎng)絡(luò)解碼器模塊中UpSampling2D 和轉(zhuǎn)置卷積進行拼接,形成新的上采樣模塊,命名為Up-Tconv。該模塊利用UpSampling-2D 將圖片尺寸擴大兩倍,然后將卷積核轉(zhuǎn)置后與矩陣相乘,通過卷積運算來實現(xiàn)分辨率還原的操作,使粗略圖像的分辨率得到較好的恢復(fù),從而使得上采樣過程與特征提取過程中特征圖融合的精度更高,損失率更低且提升網(wǎng)絡(luò)的魯棒性。
為了防止網(wǎng)絡(luò)模型在訓(xùn)練過程中權(quán)值過度擬合,增強網(wǎng)絡(luò)的學(xué)習(xí)能力。在DResUnet 的第五層跳躍連接中引入Dropout,Dropout 服從的是二項分布。Dropout 原理是在網(wǎng)絡(luò)訓(xùn)練階段,網(wǎng)絡(luò)的殘差模塊需要按照一定的概率將其暫時從網(wǎng)絡(luò)中丟棄,由于是隨機丟棄,故在訓(xùn)練不同的網(wǎng)絡(luò)模塊時都存在一個mini-batch,使得迭代的前向和后向傳播只有部分權(quán)值學(xué)習(xí)。本文設(shè)置隱含節(jié)點的Dropout 率為0.5,即一半神經(jīng)元在工作。這是由于當(dāng)Dropout 率為0.5時,模型隨機生成的網(wǎng)絡(luò)節(jié)點最多,實驗取得效果也是相對較好的。
本文網(wǎng)絡(luò)模型是在Windows10 平臺上使用深度學(xué)習(xí)Keras 框架實現(xiàn)的。實驗使用計算機的主要配置 是64 GB 內(nèi) 存、64 位OS,IntelCorei7-8700 CPU@3.20 GHz 3.19 GHz 的x64 處理器。本文使用的數(shù)據(jù)集是劍橋自動駕駛視頻數(shù)據(jù)庫(Cambridgedriving labeled video database,CamVid),該數(shù)據(jù)集包含701 張帶注釋的圖像,32 個ground truth 語義標(biāo)簽,數(shù)據(jù)集的分辨率為960×720。CamVid 是第一個帶有對象類語義標(biāo)簽和元數(shù)據(jù)視頻的集合。CamVid解決對實驗數(shù)據(jù)的需求,以定量評估新興算法,從視頻序列中提取著名街景數(shù)據(jù)集,增加了觀察對象類的數(shù)量和異質(zhì)性。
網(wǎng)絡(luò)模型在訓(xùn)練或預(yù)測之前,先對圖片進行預(yù)處理,將大小為(480,360)圖片歸一化處理為(512,512)。當(dāng)進行訓(xùn)練模型時把數(shù)據(jù)分為訓(xùn)練集、驗證集和測試集3 個類別,其中367 張圖片用于訓(xùn)練,101張圖片用于驗證,233 張圖片用于測試。實驗選取圖像中的12 個類別進行分類,其中包含天空、建筑物、圓桿、道路、樹、行人、自行車等12 類物體。實驗將輸入圖像的尺寸設(shè)置為(512,512,3),在深度殘差網(wǎng)絡(luò)模塊算法中使用的激活函數(shù)為ReLU。Steps_per_epoch表示每次迭代包含的步數(shù),validation_steps 表示驗證集上的step 總數(shù),epoch 表示所有樣本訓(xùn)練的次數(shù),在網(wǎng)絡(luò)模型訓(xùn)練時,實驗參數(shù)設(shè)置為Steps_per_epoch=200,validation_steps=10,epochs=30。
實驗中損失函數(shù)的選取直接影響到網(wǎng)絡(luò)的訓(xùn)練結(jié)果,損失函數(shù)有助于優(yōu)化網(wǎng)絡(luò)的參數(shù),訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)的目的就是尋找損失函數(shù)的最優(yōu)解。目前,語義分割網(wǎng)絡(luò)模型中較為常用的損失函數(shù)是交叉熵函數(shù),表達為:
交叉熵函數(shù)是(x)和(x)差異性概率分布,交叉熵函數(shù)會隨著目標(biāo)像素標(biāo)簽預(yù)測結(jié)果概率的降低而增加,交叉熵越大,表示與實際標(biāo)簽差異越大,交叉熵越小,表示預(yù)測的結(jié)果越理想。當(dāng)語義分割任務(wù)為二元時,使用二元交叉熵(binary cross entropy,BCE)函數(shù),只需一個輸出就可將數(shù)據(jù)分為兩個類別。當(dāng)語義分割任務(wù)為多分類時,這時選擇使用分類交叉熵(categorical cross entropy,CCE)函數(shù),輸出節(jié)點必須與類的數(shù)量保持一致。無論是二元還是多元語義分割,為了保持最后一層卷積輸出值控制在(0,1)之間使用Sigmoid 激活函數(shù)。實驗針對圖像語義分割的多分類問題,采用的損失函數(shù)是CCE 函數(shù)。
優(yōu)化算法也影響著網(wǎng)絡(luò)模型結(jié)果,當(dāng)前深度學(xué)習(xí)中最常用優(yōu)化算法是梯度下降算法。其中經(jīng)典的算法是SGD。隨著深度學(xué)習(xí)知識的不斷拓展,SGD算法也不斷優(yōu)化、更新。其中典型算法有:動量梯度下降(Momentum)、自適應(yīng)梯度算法(AdaGrad)、均方根支柱(RMSProp)、自適應(yīng)動量優(yōu)化(Adam)、Nadam等。動量梯度下降與隨機梯度算法應(yīng)用了全局學(xué)習(xí)率,AdaGrad 能針對于每個參數(shù)自適應(yīng)學(xué)習(xí)率,但隨著網(wǎng)絡(luò)訓(xùn)練周期的增長,學(xué)習(xí)率降低得很快。而RMSProp 雖加速了對最小值方向的搜索,但阻礙了在震蕩方向的搜索。Nadam 在Adam 基礎(chǔ)上融合NAG,但不適用于本實驗算法,算法驗證集的精度只能達到84.08%,損失率達到了0.378 5。通過驗證可以發(fā)現(xiàn),本文算法適宜的優(yōu)化函數(shù)是Adam,優(yōu)化的參數(shù)是1E-4。它的優(yōu)點主要在于經(jīng)過偏執(zhí)矯正后,每次迭代學(xué)習(xí)率都有個確定范圍,使得參數(shù)比較平穩(wěn)。使用Adam 更新規(guī)則,先計算時間步的梯度g,計算梯度指數(shù)移動的平均數(shù),初始化為0,表示指數(shù)衰減率,通常的取值接近于1,默認(rèn)為0.9,控制權(quán)重分配,表達式為:
計算梯度平方的指數(shù)移動的平均數(shù),初始化為0,表示指數(shù)衰減率,控制梯度平方的影響,默認(rèn)為0.999,表達式為:
最后一步進行參數(shù)更新,初始化學(xué)習(xí)率,默認(rèn)為0.001,=10。
為了驗證不同改進模塊算法的有效性作了3 組比較,改進的殘差模塊算法比較見表1。通過分析表中實驗數(shù)據(jù)可以發(fā)現(xiàn),在U-net 模型基礎(chǔ)上使用BN簡化了參數(shù)搜索問題,提升了算法的收斂速度,在Unet 模型卷積塊上加入直連通道形成殘差U-net(ResUnet)模型,對比效果明顯優(yōu)于U-net模型,在Unet引入深度殘差學(xué)習(xí)模塊(DResUnet),深度殘差學(xué)習(xí)模塊中使用BN 簡化了參數(shù)搜索問題,深度殘差模塊的使用不僅提升了網(wǎng)絡(luò)訓(xùn)練的效率,而且提高了算法的準(zhǔn)確性。
表1 改進的殘差模塊算法比較Table 1 Comparison of improved residual module algorithm
為了驗證融合轉(zhuǎn)置卷積模塊的有效性,融合轉(zhuǎn)置卷積模塊算法比較見表2。本文對U-net 原模型的Up-Conv 模型進行改進,實驗將轉(zhuǎn)置卷積(TC)和UpSampling 兩種上采樣方式進行拼接,通過表中數(shù)據(jù)可以發(fā)現(xiàn),上采樣過程和特征提取之后特征圖融合拼接的精度更高,損失率更低,而且提高了算法的準(zhǔn)確性。相較于U-net 模型、ResUnet、DResUnet 進行上采樣,融合轉(zhuǎn)置卷積使得算法模型的精度和損失率都有明顯的提升。
表2 融合轉(zhuǎn)置卷積模塊算法比較Table 2 Module algorithm comparison with transpose convolution
在表2 中不加Dropout 率訓(xùn)練集精度能達到91.18%,損失率降低為0.169 8,但是驗證集精度和損失率卻不太理想,存在過擬合問題。為了驗證Dropout有效性,Dropout 模塊算法的比較見表3。如果在特征提取之后的每一層引入Dropout,實驗精度和損失率整體結(jié)果呈發(fā)散狀態(tài)且效果較差。表中第三組在模型第四層和第五層引入Dropout,實驗精度才得到較好的改善卻沒有達到理想狀態(tài),這是由于在下采樣的第四層中使用Dropout 之后神經(jīng)元節(jié)點之間的聯(lián)合適應(yīng)性減弱,從而影響了實驗的精度和損失率。但在實驗的跳躍連接層引入Dropout 的效果要優(yōu)于其他的實驗結(jié)果,驗證集精度達到了89.93%,分類效果也很好。
表3 Dropout模塊算法比較Table 3 Algorithm comparison of Dropout module
為了使本文算法在相對較優(yōu)的迭代條件下進行,依據(jù)Steps_per_epoch 和epoch 的不同分別作了7類比較,對Steps_per_epoch 為100、200、300、400,epoch 為10、20、30、40 進行了對比,不同迭代次數(shù)下?lián)p失率與精度對比見表4。分析表中的數(shù)據(jù)可以發(fā)現(xiàn),相比其他迭代次數(shù),當(dāng)Steps_per_epoch=200,epoch=30 時,本文算法精度是較高的,損失也降到了最小值,能夠達到較好的語義分割效果。
表4 不同迭代次數(shù)下?lián)p失率與精度對比Table 4 Comparison of loss and accuracy of different iterations
實驗統(tǒng)計本文算法迭代30 次過程中,本文算法損失率和精度變化趨勢如圖6 所示。分析圖中數(shù)據(jù)的變化趨勢可以看出,隨著迭代次數(shù)的增加,訓(xùn)練集的精度和損失率的變化趨勢相對比較穩(wěn)定,Loss 逐漸下降到平緩狀態(tài)趨于穩(wěn)定的區(qū)間,而Accuracy 逐漸上升至平緩狀態(tài)。然而測試集隨著迭代次數(shù)的增加,Loss 與Accuracy 變化趨勢存在明顯的波動。Unet 損失率和精度變化趨勢如圖7 所示,從圖中可以發(fā)現(xiàn),U-net 模型在訓(xùn)練時,驗證集數(shù)據(jù)波動性較大,穩(wěn)定性較差。在相同條件下迭代達到30 次時,本文實驗算法較U-net 模型精度和損失率得到明顯的提升,本文算法具有較強的穩(wěn)定性。
圖6 本文算法損失率和精度變化趨勢Fig.6 Loss and accuracy trend of proposed model
圖7 U-net損失率和精度變化趨勢Fig.7 Loss and accuracy trend of U-net
為了驗證本文算法對于基于編碼-解碼器框架圖像語義分割方法中的優(yōu)越性,選取U-net、SegNet、DResUnet與本文算法進行了比較。原U-net 模型是在Steps_per_epoch=300 的條件下進行實驗,由表4中實驗結(jié)果可知,當(dāng)Steps_per_epoch 為200 時,損失率和精度優(yōu)于Steps_per_epoch 為300 的損失率和精度。因此,對比實驗是在Steps_per_epoch=200 下進行的。定量地分析不同主流模型在相同條件下對于圖像語義分割多分類精度的影響,相同條件下不同算法語義分割分類精度和損失率對比見表5。
表5 相同條件下不同算法語義分割精度和損失率Table 5 Accuracy and loss of different algorithms for semantic segmentation under same conditions
分析表中數(shù)據(jù)可以得出,SegNet 網(wǎng)絡(luò)依據(jù)先驗概率計算各個像素點的分類,下采樣通過全卷積網(wǎng)絡(luò)實現(xiàn),上采樣通過反卷積與編碼器傳輸索引融合實現(xiàn),SegNet 網(wǎng)絡(luò)的基準(zhǔn)分值沒有滿足實際使用時的需求,在本文算法的實驗環(huán)境下,SegNet 精度相比U-net 只提升了0.26 個百分點,損失率降低了0.54,性能沒有達到較好的提升。DResUnet 精度、損失率變化不大,訓(xùn)練集精度都達到了90%,但是相比U-net驗證集精度提升約10 個百分點,損失率降低了1.1。本文算法較原U-net 模型實驗精度提升了13.13 個百分點,損失率下降了1.195,解決了網(wǎng)絡(luò)模型層數(shù)加深引起的退化問題。本文算法相較于主流SegNet 與深度學(xué)習(xí)中DResUnet在損失率和精度方面有較為明顯的提升,有效提升了算法的魯棒性。
基于圖像語義分割Camvid 數(shù)據(jù)集不同場景模式下,網(wǎng)絡(luò)模型實驗效果對比如圖8所示。依據(jù)上述表5數(shù)據(jù)可以發(fā)現(xiàn),本文算法在精度和損失率上明顯優(yōu)于其他算法,實驗效果圖算法模型選取U-net、SegNet、DResUnet 及真值圖與本文算法進行了對比。通過實驗效果圖可以發(fā)現(xiàn),在不同場景模式下,本文算法分割效果比其他三類語義分割算法分割物體的效果更明確,分類的效果更好。
圖8 網(wǎng)絡(luò)模型實驗效果對比Fig.8 Experiment effect comparison of network models
為了驗證同一數(shù)據(jù)集下本文算法精度優(yōu)于較優(yōu)圖像語義分割算法精度,本文選取SegNet、DenconvNet、BiseNet、LEDNet、ASN五 類 最 新 的算法與本文提出的語義分割算法進行性能上的比較?;贑amVid 數(shù)據(jù)集語義分割算法對比結(jié)果見表6。
表6 CamVid 數(shù)據(jù)集下最新語義分割算法對比Table 6 Comparison of latest semantic segmentation algorithms based on CamVid dataset
DenconvNet 網(wǎng)絡(luò)訓(xùn)練時,先預(yù)訓(xùn)練簡單的數(shù)據(jù),再使用復(fù)雜的數(shù)據(jù)進行微調(diào),DenconvNet 將CamVid數(shù)據(jù)集類別轉(zhuǎn)換為11 類進行圖像語義分割,得到語義分割精度為85.89%,DenconvNet相比U-net提升了9.10 個百分點,但是這種訓(xùn)練方式造成目標(biāo)位置與尺寸信息與原始數(shù)據(jù)集出現(xiàn)差別,從而達不到好的實驗效果。BiseNet 可以整合圖像的全局語義信息,降低計算成本,提高了分割速度,BiseNet 是以Xception為基本模型,得到的語義分割精度為88.82%,BiseNet相比U-net 提升了11.09 個百分點,BiseNet 網(wǎng)絡(luò)實現(xiàn)了實時語義分割。LEDNet 使用了不對稱的編碼-解碼器機制實現(xiàn)實時語義分割,LEDNet 語義分割精度為87.09%,LEDNet 相比U-net 提升了10.29 個百分點,但網(wǎng)絡(luò)結(jié)構(gòu)較為復(fù)雜。ASN 模型以ResNet-34 為基礎(chǔ)網(wǎng)絡(luò)進行了兩次融合實驗,通過特征提取階段的優(yōu)化解決了尺度變化的問題,使用注意力機制為特征圖的不同通道分配權(quán)重,提升網(wǎng)絡(luò)的分割精度,ASN 相比U-net 提升了11.60 個百分點,但ASN 對細(xì)小物體分割效果不佳,模型比較復(fù)雜。
在相同數(shù)據(jù)集的條件下,本文算法相比U-net 模型,精度提升了13.13 個百分點,損失率降到0.23,繼承了編解碼器方法的優(yōu)勢,避免了特征提取造成分辨率低的問題,精確地還原了像素的位置信息以及空間維度信息。通過表中數(shù)據(jù)和分析發(fā)現(xiàn),本文提出的圖像語義分割多分類算法在語義分割精度上明顯優(yōu)于其他幾類模型算法。
本文模型針對常規(guī)深度學(xué)習(xí)中的圖像語義分割多分類精度低、損失率高的問題,提出了一種融合轉(zhuǎn)置卷積與深度殘差圖像語義分割方法多分類方法。在U-net 框架基礎(chǔ)上引入深度殘差學(xué)習(xí)模塊,融合深度殘差模塊解決了深度網(wǎng)絡(luò)模型學(xué)習(xí)率低、準(zhǔn)確率無法提升的問題,提升了網(wǎng)絡(luò)的訓(xùn)練效率和收斂速度;改進深度殘差U-net 網(wǎng)絡(luò)中上采樣方式是原上采樣UpSampling2D 和轉(zhuǎn)置卷積的結(jié)合,新形成的上采樣模塊使網(wǎng)絡(luò)模型便于計算,解決了上采樣與特征提取過程對應(yīng)通道相同尺度特征融合拼接的精度低、損失率高的問題,同時提升了網(wǎng)絡(luò)的魯棒性;最后在網(wǎng)絡(luò)的跳躍連接層引入Dropout,解決了網(wǎng)絡(luò)模型訓(xùn)練過程中權(quán)值過度擬合的問題,增強了模型算法的泛化能力。但是Dropout 存在消除減弱了神經(jīng)元節(jié)點間的聯(lián)合適應(yīng)性的缺點。雖然本文算法相較于U-net 多分類有很大的提升,但是,它訓(xùn)練的時間沒有得到很好的改善,沒能達到實時性語義分割。在此后的實驗中可以重點從算法的實時性入手,同時,精度、損失率方面仍還存在提升的空間。