王 囡,侯志強(qiáng),趙夢(mèng)琦,余旺盛,馬素剛
(1.西安郵電大學(xué)計(jì)算機(jī)學(xué)院,西安710121;2.西安郵電大學(xué)陜西省網(wǎng)絡(luò)數(shù)據(jù)分析與智能處理重點(diǎn)實(shí)驗(yàn)室,西安710121;3.空軍工程大學(xué)信息與導(dǎo)航學(xué)院,西安710077)
圖像分割是將圖像中有意義或感興趣的目標(biāo)提取出來(lái),用于圖像后續(xù)處理。傳統(tǒng)的圖像分割方法根據(jù)圖像的低層特征信息,例如顏色、紋理、亮度、形狀等提取出感興趣的區(qū)域。但在某些復(fù)雜情況下,傳統(tǒng)方法提取的特征識(shí)別度低,分割性能也較差。因此,許多研究者嘗試將圖像的高級(jí)語(yǔ)義信息引入到傳統(tǒng)的分割過(guò)程中,從而得到圖像的語(yǔ)義分割[1]。圖像語(yǔ)義分割[2]是計(jì)算機(jī)視覺(jué)中一個(gè)重要的研究?jī)?nèi)容,并且廣泛應(yīng)用于自動(dòng)駕駛、場(chǎng)景識(shí)別、無(wú)人機(jī)應(yīng)用等領(lǐng)域[3-5]。
傳統(tǒng)的圖像分割方法常見(jiàn)的有N-cut 算法[6]、分水嶺算法[7]、SLIC 算法[8]等。N-cut 算法[6]通過(guò)計(jì)算像素與像素之間的關(guān)系得到權(quán)重參數(shù)對(duì)圖像進(jìn)行劃分,但這種圖劃分方法需要對(duì)一張圖像進(jìn)行多次劃分,并且無(wú)法對(duì)圖像中顏色紋理等較為相似的部分進(jìn)行分割,導(dǎo)致分割結(jié)果不佳;分水嶺算法[7]是一種典型的區(qū)域分割方法,雖然實(shí)現(xiàn)簡(jiǎn)單,并且能夠很好地提取圖像輪廓信息,但容易產(chǎn)生過(guò)分割問(wèn)題;SLIC算法[8]不僅可以分割彩色圖像,而且能夠分割灰度圖像,它使用像素之間特征的相似性對(duì)像素進(jìn)行分組,并用少量的超像素代替大量的像素來(lái)表達(dá)圖像特征,從而會(huì)降低后續(xù)圖像處理的復(fù)雜性,但通常作為其他分割算法的預(yù)處理步驟,并且不容易預(yù)先確定超像素的個(gè)數(shù)。
近年來(lái),基于深度學(xué)習(xí)的圖像語(yǔ)義分割方法[9]在語(yǔ)義分割領(lǐng)域中表現(xiàn)出色,分割效果與傳統(tǒng)的方法相比有了明顯提高。尤其是全卷積網(wǎng)絡(luò)(Fully Convolution Network,F(xiàn)CN)[10]有效地提升了語(yǔ)義分割的精度,因此出現(xiàn)了很多基于FCN 的改進(jìn)算法。BADRINARAYANAN 等[11]提出了SegNet 網(wǎng)絡(luò)用于語(yǔ)義分割,SegNet 網(wǎng)絡(luò)是一種編解碼結(jié)構(gòu)的分割網(wǎng)絡(luò),具有更高的分割精度及更快的分割速度,但這種高效的處理會(huì)使圖像丟失許多高頻細(xì)節(jié)信息,導(dǎo)致目標(biāo)邊緣模糊以及分割結(jié)果中的細(xì)節(jié)丟失;PASZKE等[12]提出的ENet 算法是基于改進(jìn)SegNet 而來(lái)的,雖然提供了較高的分割速度,但同時(shí)也影響了分割精度,導(dǎo)致分割精度低;YU 等[13]提出了空洞卷積的思想,在不使用池化操作的情況下會(huì)使感受野指數(shù)變大,獲得全局特征信息,但隨之運(yùn)算量也增大;ZHAO 等[14]提出的金字塔池化模塊對(duì)不同區(qū)域的上下文進(jìn)行聚合,提升了網(wǎng)絡(luò)利用全局上下文信息的能力;CHEN 等[15]提出了空洞金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)模塊,可以增大空間分辨率,同時(shí)不改變感受野效果;CHEN 等[16]提出了DeepLab-v3 結(jié)構(gòu),在ASPP 模塊中加入了批量歸一化(Batch Normalization,BN)層,設(shè)計(jì)了串行和并行的空洞卷積模塊,采用多種不同的空洞率來(lái)獲取多尺度的特征信息,并將所有特征融合一起;之后,CHEN 等[17]提出DeepLab-v3+結(jié)構(gòu),在DeepLab-v3基礎(chǔ)上增加一個(gè)解碼器模塊,構(gòu)成一個(gè)編解碼結(jié)構(gòu)的語(yǔ)義分割模型。綜上所述,現(xiàn)有方法大多使用空洞卷積、特征融合等方法來(lái)提升語(yǔ)義分割效果,但這類方法需要高分辨率的特征圖,計(jì)算量較大,而且容易丟失邊緣細(xì)節(jié)信息。
針對(duì)邊緣細(xì)節(jié)信息丟失的問(wèn)題,CHEN 等[18]提出通過(guò)條件隨機(jī)場(chǎng)(Conditional Random Field,CRF)對(duì)FCN 得到的分割結(jié)果進(jìn)行細(xì)節(jié)上的優(yōu)化,但這種處理方法只是利用顏色信息和紋理信息等低層特征來(lái)修正分割結(jié)果,無(wú)法學(xué)習(xí)目標(biāo)邊緣與輸入圖像之間的對(duì)應(yīng)關(guān)系。HUANG 等[19]在原有的語(yǔ)義分割FCN 結(jié)構(gòu)上構(gòu)建了邊界檢測(cè)分支,輸入圖像先進(jìn)入語(yǔ)義分割模塊,從分割模塊中構(gòu)建檢測(cè)分支來(lái)獲取目標(biāo)形狀細(xì)節(jié)信息,但會(huì)導(dǎo)致學(xué)習(xí)的邊緣信息不完整,影響語(yǔ)義分割模塊的分割效果。
為進(jìn)一步解決分割中邊緣模糊與分割不準(zhǔn)確的問(wèn)題,可考慮結(jié)合邊緣檢測(cè)的方法進(jìn)行語(yǔ)義分割。邊緣檢測(cè)可以得到局部像素灰度的突變,獲得封閉或者開(kāi)放的邊緣,提供豐富的低層邊緣信息,從而彌補(bǔ)語(yǔ)義分割中的邊緣信息丟失。早期邊緣檢測(cè)方法使用Sobel 邊緣檢測(cè)算子[20]、Canny邊緣檢測(cè)算子[21]等方法檢測(cè)邊緣。隨著深度學(xué)習(xí)的發(fā)展,很多方法采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行邊緣檢測(cè),如N4-Fields[22]、Deep Edge[23]、Deep Contour[24]等方法。XIE 等[25]提出了整體嵌套邊緣檢測(cè)(Holistically-Nested Edge Detection,HED)算法進(jìn)行邊緣檢測(cè),該網(wǎng)絡(luò)實(shí)現(xiàn)了第1 個(gè)端到端的邊緣檢測(cè)模型;LIU 等[26]提出了基于更豐富特征的邊緣檢測(cè)(Richer Convolutional Features for Edge Detection,RCF),RCF 首先將網(wǎng)絡(luò)中每個(gè)階段的特征進(jìn)行了元素相加操作,然后進(jìn)行特征融合,RCF 利用了網(wǎng)絡(luò)中所有卷積層的特征,是目前較好的邊緣檢測(cè)算法。近年來(lái),也出現(xiàn)了一些結(jié)合邊緣檢測(cè)的語(yǔ)義分割方法[27-28],但該類方法目前尚不多見(jiàn)。
綜上所述,本文提出了一種結(jié)合邊緣檢測(cè)網(wǎng)絡(luò)的語(yǔ)義分割算法。在語(yǔ)義分割網(wǎng)絡(luò)基礎(chǔ)上,并聯(lián)了邊緣檢測(cè)網(wǎng)絡(luò),構(gòu)建一種結(jié)合邊緣檢測(cè)的語(yǔ)義分割模型,利用邊緣特征改善語(yǔ)義分割中的目標(biāo)邊緣模糊問(wèn)題,為語(yǔ)義分割提供豐富準(zhǔn)確的邊緣信息。設(shè)計(jì)一個(gè)特征融合模塊,將邊緣特征和語(yǔ)義分割特征進(jìn)行concat 融合,并對(duì)融合后的特征進(jìn)行多層卷積操作,最終在CamVid 數(shù)據(jù)集和Cityscapes 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。
本文提出一種結(jié)合邊緣信息的語(yǔ)義分割算法,以此來(lái)改善語(yǔ)義分割中邊緣模糊、分割不準(zhǔn)確等問(wèn)題,提升語(yǔ)義分割精度。
本文所提出的結(jié)合邊緣檢測(cè)的語(yǔ)義分割模型采用一種并行結(jié)構(gòu),如圖1所示,主要由邊緣檢測(cè)子網(wǎng)絡(luò)、語(yǔ)義分割子網(wǎng)絡(luò)和特征融合模塊3 個(gè)部分組成(彩圖效果見(jiàn)《計(jì)算機(jī)工程》官網(wǎng)HTML 版)。圖1 中的虛線框?yàn)檫吘墮z測(cè)子網(wǎng)絡(luò),該網(wǎng)絡(luò)能捕獲和學(xué)習(xí)圖像的邊緣信息,有助于獲取目標(biāo)更多的細(xì)節(jié)信息,從而可以為語(yǔ)義分割提供更精細(xì)的邊緣信息。圖1中的點(diǎn)線框?yàn)檎Z(yǔ)義分割子網(wǎng)絡(luò),該網(wǎng)絡(luò)對(duì)輸入圖像進(jìn)行下采樣,再進(jìn)行上采樣來(lái)提取圖像的區(qū)域特征,得到初步的語(yǔ)義分割特征,但是大量的細(xì)節(jié)信息在下采樣時(shí)被丟失。模型的后端是特征融合模塊,即圖1 中點(diǎn)劃線框所包含的部分,將邊緣特征和語(yǔ)義分割特征進(jìn)行卷積操作融合,利用邊緣信息更強(qiáng)的邊緣特征來(lái)改善語(yǔ)義分割中邊緣模糊、分割不準(zhǔn)確等問(wèn)題。
圖1 語(yǔ)文分割算法模型結(jié)構(gòu)Fig.1 Model structure of semantic segmentation algorithm
邊緣檢測(cè)子網(wǎng)絡(luò)的詳細(xì)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。在邊緣檢測(cè)子網(wǎng)絡(luò)[26]中,整個(gè)網(wǎng)絡(luò)的卷積層分為5 個(gè)階段,每個(gè)階段由卷積層和池化層組成,然后去掉第5 階段的池化層,最后將第5 階段的卷積層使用空洞率為2 的空洞卷積[12],空洞卷積的使用有效地避免了池化操作后對(duì)高層特征信息的丟失問(wèn)題,更好地捕獲了目標(biāo)的輪廓特征,使得高層特征中的邊緣更加清晰和完整。
圖2 邊緣檢測(cè)子網(wǎng)絡(luò)的結(jié)構(gòu)Fig.2 Structure of edge detection sub-network
5 個(gè)階段的結(jié)構(gòu)如表1所示。
表1 邊緣檢測(cè)子網(wǎng)絡(luò)5 個(gè)階段的結(jié)構(gòu)Table 1 Structure of edge detection sub-network five-stage
在每個(gè)階段的卷積層之后連接一個(gè)核大小為1×1卷積層,然后通過(guò)反卷積將特征圖進(jìn)行上采樣到原圖像大小分辨率,最后利用一個(gè)1×1 的卷積層將5 個(gè)特征圖融合。該網(wǎng)絡(luò)能捕獲和學(xué)習(xí)圖像的邊緣信息,可以為語(yǔ)義分割提供更精細(xì)的邊緣信息。
在語(yǔ)義分割子網(wǎng)絡(luò)中,其結(jié)構(gòu)采用的是經(jīng)典的編碼器和解碼器結(jié)構(gòu)[11]。語(yǔ)義分割子網(wǎng)絡(luò)的詳細(xì)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。編碼階段沿用VGG16 網(wǎng)絡(luò)模型,由一連串的卷積層、池化層和BN 層組成。卷積層負(fù)責(zé)獲取圖像特征,池化層對(duì)圖像進(jìn)行下采樣將特征傳送到下一層,因?yàn)樵谧畲蟪鼗^(guò)程中會(huì)損失一些信息,這里會(huì)存儲(chǔ)最大池化索引,保存最大池化過(guò)程中的位置信息,用于在上采樣階段進(jìn)行恢復(fù),BN 層主要對(duì)圖像的分布進(jìn)行歸一化,加速學(xué)習(xí)。編碼器階段主要對(duì)圖像進(jìn)行特征提取。編碼器各層的網(wǎng)絡(luò)結(jié)構(gòu)如表2所示。
圖3 語(yǔ)義分割子網(wǎng)絡(luò)的結(jié)構(gòu)Fig.3 Structure of semantic segmentation sub-network
表2 編碼階段的網(wǎng)絡(luò)結(jié)構(gòu)Table 2 Network structure of encoding phase
解碼器階段是由對(duì)應(yīng)于每個(gè)編碼器的解碼器組成的,解碼器首先使用從相應(yīng)的編碼器存儲(chǔ)的最大池化索引來(lái)獲取目標(biāo)信息與大致的位置信息,并對(duì)縮小后的特征圖進(jìn)行上采樣,這種上采樣方式可以減少訓(xùn)練的參數(shù)數(shù)量以及減小池化對(duì)信息的損失。然后對(duì)上采樣后的圖像進(jìn)行卷積處理,彌補(bǔ)編碼器階段池化層對(duì)目標(biāo)造成的細(xì)節(jié)損失。解碼器各層的網(wǎng)絡(luò)結(jié)構(gòu)如表3所示。
表3 解碼階段的網(wǎng)絡(luò)結(jié)構(gòu)Table 3 Network structure of decoding phase
在本文模型中,當(dāng)從邊緣檢測(cè)子網(wǎng)絡(luò)獲得邊緣信息和語(yǔ)義分割子網(wǎng)絡(luò)獲得語(yǔ)義信息時(shí),需要對(duì)2 路特征進(jìn)行融合。因?yàn)檫吘墮z測(cè)子網(wǎng)絡(luò)和語(yǔ)義分割子網(wǎng)絡(luò)得到的特征表示不同,邊緣檢測(cè)子網(wǎng)絡(luò)得到的結(jié)果更多地表示圖像邊緣和細(xì)節(jié)特征,語(yǔ)義分割子網(wǎng)絡(luò)得到的結(jié)果更多的地示圖像的區(qū)域特征,所以在進(jìn)行2 路特征融合時(shí),簡(jiǎn)單地將2 路特征進(jìn)行加權(quán)融合,并不能充分地利用2 路特征,達(dá)到預(yù)期效果。因此,本文提出了一個(gè)特征融合模塊來(lái)融合邊緣檢測(cè)子網(wǎng)絡(luò)特征和語(yǔ)義分割子網(wǎng)絡(luò)特征。
在選擇特征融合的方式上,主要有add 融合方式和concat 融合方式2 種[29]。add 融合方式對(duì)上下2 路特征圖對(duì)應(yīng)位置元素的值進(jìn)行相加,但這種方式在融合過(guò)程中會(huì)損失原始特征的信息,不能體現(xiàn)特征之間的互補(bǔ)性,所得到的結(jié)果也并不理想;concat 融合方式對(duì)上下2 路特征直接級(jí)聯(lián)融合,將不同通道進(jìn)行合并,這種方式不僅避免了add 融合方式對(duì)特征信息造成的損失,而且對(duì)上下2 路的特征進(jìn)行通道數(shù)的合并,并結(jié)合前面所得到的特征得到后續(xù)的特征。
本文設(shè)計(jì)的特征融合模塊包括使用concat 特征融合方式對(duì)邊緣特征和語(yǔ)義分割特征進(jìn)行初步融合2 個(gè)部分;然后對(duì)初步融合后的特征進(jìn)行多層卷積操作,多層卷積由4 層卷積層組成,其特征圖的個(gè)數(shù)分別為64、128、256 和512,卷積核的大小為3×3。特征融合模塊的詳細(xì)結(jié)構(gòu)如圖4所示。
圖4 特征融合模塊Fig.4 Feature fusion module
具體的融合過(guò)程為:首先將邊緣檢測(cè)子網(wǎng)絡(luò)和語(yǔ)義分割子網(wǎng)絡(luò)輸出的特征進(jìn)行concat 方式融合;然后進(jìn)行多層卷積操作,利用卷積去學(xué)習(xí)融合2 路特征;最后再進(jìn)行分類,得到最終的分割圖。
在對(duì)特征融合方式選擇上,本文進(jìn)行實(shí)驗(yàn)比較確定選擇concat 特征融合方式。首先將得到的邊緣特征和語(yǔ)義分割特征分別使用add 方式和concat 方式進(jìn)行初步融合;然后對(duì)融合后的特征進(jìn)行多層卷積操作;最后進(jìn)行分類得到最終分割結(jié)果。實(shí)驗(yàn)結(jié)果表明,采用add 融合方式和concat 融合方式對(duì)融合結(jié)果有不同影響,如圖5所示。
圖5 不同融合方式對(duì)分割結(jié)果的影響Fig.5 Impact of different fusion methods on segmentation results
不融合、add 融合和concat 融合方式的平均交并比(mIoU)分別為55.6%、55.7%和57.1%。
本文針對(duì)分割任務(wù)中目標(biāo)邊緣模糊、分割不準(zhǔn)確等問(wèn)題,提出一種結(jié)合邊緣檢測(cè)的語(yǔ)義分割算法??紤]邊緣檢測(cè)與語(yǔ)義分割的結(jié)合,在語(yǔ)義分割網(wǎng)絡(luò)基礎(chǔ)上并聯(lián)一個(gè)邊緣檢測(cè)網(wǎng)絡(luò)來(lái)學(xué)習(xí)目標(biāo)的邊緣信息,再將邊緣特征和語(yǔ)義分割特征進(jìn)行融合,綜合利用2 路數(shù)據(jù)的特征信息,得到最終的語(yǔ)義分割結(jié)果。
本文算法的主要步驟如下:
步驟1輸入圖像。
步驟2將圖像分別送入邊緣檢測(cè)子網(wǎng)絡(luò)和語(yǔ)義分割子網(wǎng)絡(luò),得到圖像邊緣的特征和圖像初步的語(yǔ)義分割特征。
步驟3把得到的2 類特征按concat 方式融合。
步驟4將初步融合后的特征進(jìn)行多層卷積操作,利用卷積融合2 個(gè)子網(wǎng)絡(luò)的特征。
步驟5將步驟4 得到的特征融合結(jié)果進(jìn)行softmax 分類,得到最終的語(yǔ)義分割圖像。
本文算法流程如圖6所示。從圖6 可以看出,本文算法改善了語(yǔ)義分割中邊緣不清晰、分割任務(wù)中目標(biāo)邊緣模糊等問(wèn)題,提高了分割精度。
圖6 本文算法流程Fig.6 Algorithm procedure of this paper
本文算法實(shí)驗(yàn)基于Caffe框架,系統(tǒng)為L(zhǎng)inux16.04,使用的GPU 是NVIDIA GTX 1080Ti,并在CamVid數(shù)據(jù)集和Cityscapes 數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。
CamVid 數(shù)據(jù)集是從駕駛汽車(chē)的角度來(lái)看的一個(gè)街景數(shù)據(jù)集。它總共包含701 張圖像,其中367 張用于訓(xùn)練,101 張用于驗(yàn)證,233 張用于測(cè)試。圖像分辨率為960 像素×720 像素,數(shù)據(jù)集包含11 個(gè)語(yǔ)義類別。在SegNet[10]中將其進(jìn)行處理,將圖像分辨率改為480 像素×360 像素,所以使用修改后的數(shù)據(jù)集驗(yàn)證模型的有效性。Cityscapes 是另一個(gè)大型城市街道場(chǎng)景數(shù)據(jù)集,在語(yǔ)義分割領(lǐng)域中廣泛使用。它有5 000 張具有高質(zhì)量精細(xì)標(biāo)注的圖像和20 000 張具有粗略標(biāo)注的圖像。在本文的實(shí)驗(yàn)中,只使用具有精細(xì)標(biāo)注的圖像,它包含2 975 張用于訓(xùn)練的精細(xì)注釋圖像、1 525 張用于測(cè)試的圖像和500 張用于驗(yàn)證的圖像。為了實(shí)驗(yàn)方便,將圖像分辨率由2 018 像素×1 024 像素改為480 像素×360 像素,其中每個(gè)像素都被注釋為預(yù)定義的19 個(gè)類。
本文采用的評(píng)價(jià)指標(biāo)為平均交并比(mean Intersection over Union,mIoU)和每秒處理幀數(shù)(Frames Per Second,F(xiàn)PS),這2 種評(píng)價(jià)指標(biāo)為當(dāng)前語(yǔ)義分割中使用較多的標(biāo)準(zhǔn)度量。
mIoU 計(jì)算2 個(gè)集合為真實(shí)值和預(yù)測(cè)值的交集和并集之比,用于評(píng)價(jià)算法精度。IoU 是每一個(gè)類別的交集與并集之比,而mIoU 則是所有類別的平均IoU。其計(jì)算公式如下:
其中:k是前景對(duì)象的個(gè)數(shù);pij是指原本屬于第i類卻被分類到第j類的像素的數(shù)量。
FPS 用于評(píng)價(jià)算法速度,其計(jì)算公式如下:
其中:N為圖像數(shù)量;Tj為算法處理第j張圖像的時(shí)間。
本文提出的結(jié)合邊緣信息的語(yǔ)義分割模型使用端到端的聯(lián)合訓(xùn)練方式。在模型訓(xùn)練過(guò)程中,使用SGD 優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.001,將batchsize設(shè)置為2,momentum 設(shè)置為0.9,weight_decay 設(shè)置為0.000 5,最大迭代次數(shù)為100 000。在訓(xùn)練過(guò)程中,本模型涉及邊緣檢測(cè)和語(yǔ)義分割2 種分類網(wǎng)絡(luò),因此采用2 種損失函數(shù)。
邊緣檢測(cè)網(wǎng)絡(luò)是一個(gè)對(duì)像素點(diǎn)進(jìn)行是否為邊界的二分類問(wèn)題。邊緣檢測(cè)網(wǎng)絡(luò)的損失函數(shù)采用常用的交叉熵?fù)p失函數(shù),其可以定義為:
其中:yedgelab代表真實(shí)值;yedgepre代表預(yù)測(cè)值;n代表圖像的總像素點(diǎn)數(shù)量。
語(yǔ)義分割網(wǎng)絡(luò)通常將圖像的每個(gè)像素點(diǎn)的分類看作是一個(gè)多分類問(wèn)題,因此同樣采用交叉熵?fù)p失函數(shù),可以定義為:
其中:yseglab代表真實(shí)值;ysegpre代表預(yù)測(cè)值;n代表圖像的總像素點(diǎn)數(shù)量。
在實(shí)驗(yàn)中,因?yàn)樯婕罢Z(yǔ)義分割和邊緣檢測(cè)2 種分類網(wǎng)絡(luò),除了需要已有的語(yǔ)義分割標(biāo)注外,還需要數(shù)據(jù)集的邊緣標(biāo)注圖像,本文并不需要額外地進(jìn)行邊緣標(biāo)注,而是利用已有的語(yǔ)義分割標(biāo)注生成邊緣標(biāo)注圖像。
2.3.1 CamVid 數(shù)據(jù)集
基于CamVid 數(shù)據(jù)集,采用未結(jié)合邊緣檢測(cè)的語(yǔ)義分割算法SegNet[11]、ENet[12]與本文算法進(jìn)行對(duì)比,分析算法的性能表現(xiàn)。圖7所示為本文算法與其他對(duì)比算法的實(shí)驗(yàn)結(jié)果。
圖7 不同算法分割結(jié)果對(duì)比1Fig.7 Comparison of different algorithms segmentation results1
從圖7 可以看出,本文算法在道路、車(chē)輛、路燈桿、指示牌等的邊界分割更為精準(zhǔn)。在圖7(a0)中,本文算法對(duì)路燈桿的分割更加連續(xù)和清晰;在圖7(a1)中,本文算法可以清晰地分割出車(chē)輛旁邊的行人以及遠(yuǎn)處車(chē)輛之間的黏連;在圖7(a2)、圖7(a3)中,不僅在道路、路燈桿處邊緣更連續(xù),更清晰,而且也較完整地分割出路邊指示牌的邊緣。
表4 是本文方法與其他語(yǔ)義分割方法在相同的實(shí)驗(yàn)環(huán)境下的分割效果對(duì)比。從表4 可以看出,本文算法在分割精度上高于其他2 種算法,在分割速度上,本文算法相較于SegNet[11]算法沒(méi)有明顯下降,雖然ENet[12]算法的分割速度要優(yōu)于本文算法,但分割精度遠(yuǎn)低于本文算法。
表4 不同算法在CamVid 數(shù)據(jù)集上的對(duì)比Table 4 Comparison of different algorithms on CamVid datasets
2.3.2 Cityscapes 數(shù)據(jù)集
基于Cityscapes 數(shù)據(jù)集,同樣采用未結(jié)合邊緣檢測(cè)的語(yǔ)義分割算法SegNet[11]、ENet[12]與本文的算法進(jìn)行對(duì)比,分析算法的性能表現(xiàn)。圖8所示為本文算法與其他對(duì)比算法的實(shí)驗(yàn)結(jié)果。
圖8 不同算法分割結(jié)果對(duì)比2Fig.8 Comparison of different algorithms segmentation results 2
從圖8 可以看出,在圖8(a0)中,本文算法結(jié)果可以更好地將路燈桿等細(xì)小目標(biāo)分割出來(lái);在圖8(a1)中,SegNet[11]的分割結(jié)果圖8(c1)將大巴車(chē)分割錯(cuò)誤,而本文算法分割正確,雖然ENet[12]的結(jié)果圖8(c2)也分割正確,但本文分割結(jié)果相比于ENet[12],道路分割更加平滑清晰;在圖8(a2)中,本文算法結(jié)果相比于SegNet[11]、ENet[12],可以明顯地分割出來(lái)交通燈,改善了路邊行人黏連的問(wèn)題;在圖8(a3)中,SegNet[11]、ENet[12]不能清晰地分割出路中間的行人,而本文算法可以很好地分割出來(lái)。
表5 是本文算法與其他語(yǔ)義分割算法在相同的實(shí)驗(yàn)環(huán)境下的分割效果對(duì)比。從表5 可以看出,本文算法在分割精度上高于其他算法,在分割速度上,本文算法相較于SegNet[11]算法沒(méi)有明顯下降,雖然ENet[12]算法的分割速度要優(yōu)于本文算法,但本文算法分割精度要高于ENet[12]算法。
表5 不同算法在Cityscapes 數(shù)據(jù)集上的對(duì)比Table 5 Comparison of different algorithms on Cityscapes datasets
通過(guò)對(duì)以上實(shí)驗(yàn)結(jié)果的分析,證明了該方法在分割精度方面的有效性,并且與未考慮邊緣檢測(cè)的SegNet[11]算法相比,本文算法在CamVid 數(shù)據(jù)集和Cityscapes 數(shù)據(jù)集上的性能分別提升了1.5 和1.8 個(gè)百分點(diǎn)。
2.3.3 與現(xiàn)有算法的比較與分析
本文算法采用結(jié)合邊緣檢測(cè)的方法改進(jìn)語(yǔ)義分割中邊緣模糊問(wèn)題,與已有的邊緣檢測(cè)與語(yǔ)義分割相結(jié)合的ESNet[27]算法比較結(jié)果如表6所示。
表6 與ESNet 算法的比較結(jié)果Table 6 Comparison result with ESNet algorithm
本文算法與已有的邊緣檢測(cè)與語(yǔ)義分割相結(jié)合的方法主要有以下不同:
1)網(wǎng)絡(luò)結(jié)構(gòu)不同。本文采用的語(yǔ)義分割網(wǎng)絡(luò)為SegNet[11]網(wǎng)絡(luò),ESNet[27]采用的語(yǔ)義分割網(wǎng)絡(luò)為ESPNetV2[30]網(wǎng)絡(luò),由于選擇的語(yǔ)義分割baseline 的差異,ESPNetV2 的分割效果比SegNet 的分割效果要好;本文采用的邊緣檢測(cè)網(wǎng)絡(luò)為已有的邊緣檢測(cè)算法RCF[26],而ESNet 采用MobileNetV2[31]作為邊緣骨架,雖然MobileNetV2 作為輕量級(jí)網(wǎng)絡(luò),在速度上占有優(yōu)勢(shì),但本文選用的邊緣檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,使用了結(jié)構(gòu)中所有卷積層的特征,利用了更多的有用信息,可以提供更好的邊緣效果。
2)輸入圖像分辨率不同。在ESNet 方法中,輸入圖像分辨率為1 024 像素×512 像素;而本文算法由于baseline 的限制,輸入圖像分辨率為480 像素×360 像素,不同的圖像分辨率會(huì)帶來(lái)不同的分割結(jié)果,分辨率越高,分割結(jié)果越好。
3)實(shí)驗(yàn)環(huán)境上的不同。本文實(shí)驗(yàn)使用的顯卡是1 臺(tái)NVIDIA GTX 1080Ti,而ESNet 使用了4 臺(tái)NVIDIA Tesla P40 顯卡,可以得到更大更穩(wěn)定的性能。由此,本文算法精度與ESNet 方法相比略低。
通過(guò)以上的比較與分析,驗(yàn)證了本文算法的有效性。
本文提出一種結(jié)合邊緣檢測(cè)的語(yǔ)義分割算法。整個(gè)網(wǎng)絡(luò)由邊緣檢測(cè)網(wǎng)絡(luò)和語(yǔ)義分割網(wǎng)絡(luò)并行組成,邊緣檢測(cè)網(wǎng)絡(luò)用來(lái)提取圖像的邊緣特征,語(yǔ)義分割網(wǎng)絡(luò)用來(lái)提取初步的語(yǔ)義分割特征,后端將2 路特征進(jìn)行融合,以獲得最終的語(yǔ)義分割結(jié)果。實(shí)驗(yàn)結(jié)果表明,結(jié)合邊緣檢測(cè)的語(yǔ)義分割算法可以有效改善邊緣模糊、分割不準(zhǔn)確等問(wèn)題,能夠得到較理想的語(yǔ)義分割結(jié)果。下一步將研究結(jié)合邊緣檢測(cè)的語(yǔ)義分割方法來(lái)提高分割精度并加快分割速度。