葉 綠, 朱家懿, 段 婷
(浙江科技學(xué)院a.信息與電子工程學(xué)院;b.機械與能源工程學(xué)院,杭州310023)
傳統(tǒng)方法的視覺識別,如人臉識別、指紋識別等方向都有一個共同點,即只能識別靜態(tài)目標(biāo)而對動態(tài)目標(biāo)束手無策,這一特點導(dǎo)致計算機識別無法應(yīng)用在交通領(lǐng)域。無人汽車視覺識別的能力建立在對周圍環(huán)境的理解程度之上,在識別目標(biāo)物體之前首先要對其有一個基本的理解和判斷,才能實現(xiàn)高精度識別效果。語義分割作為計算機視覺中的基本任務(wù),其目的就在于能使計算機對周邊情況產(chǎn)生較深層次的理解。
大部分識別任務(wù)都會先使用語義分割算法進行高精度場景分類,在得到的分割結(jié)果基礎(chǔ)上進一步完成識別目的。從宏觀角度來講,語義分割是一種從實際環(huán)境中獲取知識,從具體到抽象的過程;從微觀角度看,其本質(zhì)屬于像素級的分類任務(wù),具有極高的預(yù)測精度;從算法角度分析,卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn)使各種計算機視覺任務(wù)的表現(xiàn)都達(dá)到了質(zhì)的飛躍,其中,全卷積神經(jīng)網(wǎng)絡(luò)(FCN)[1]是一種專門為分割設(shè)計的算法結(jié)構(gòu),其端到端的訓(xùn)練方式加快了分割預(yù)測結(jié)果真正落地應(yīng)用的過程,這使得識別任務(wù)可直接建立在分割結(jié)果之上。因此,語義分割領(lǐng)域?qū)τ跓o人駕駛計算機視覺系統(tǒng)的搭建具有重要意義。
基于FCN 的思想,大量優(yōu)秀分割模型被相繼提出,因而逐漸形成了幾種常用的模型結(jié)構(gòu)。如SegNet[2]的編碼器-解碼器結(jié)構(gòu)是對稱分割模型的典型算法框架,語義信息首先通過編碼器嵌入到特征映射中,再由解碼器負(fù)責(zé)生成分割結(jié)果。但連續(xù)編碼器中的池化操作以減少空間分辨率為代價,獲得圖像變換的不變性。這一操作導(dǎo)致特征圖信息大量丟失且無法恢復(fù),分割輸出結(jié)果的邊緣輪廓細(xì)致度較差。針對這一問題,Chen 等[3-5]提出的網(wǎng)絡(luò)均使用空洞卷積來避免過多的下采樣操作,其特點是在保證分辨率不會大幅度損失的前提下擴大感受域范圍,這對語義分割是很有益處的。除此之外,真實場景中大多存在不同大小的物體目標(biāo),因此同一模型下包含多種尺度的感受域?qū)τ诰珳?zhǔn)分割多類目標(biāo)是很有必要的。因此,以ASPP[6]為代表的多尺度并行卷積模塊也被廣泛應(yīng)用于分割領(lǐng)域。
本文設(shè)計了一種應(yīng)用于駕駛視覺的算法模型,力求突破分割模型現(xiàn)有瓶頸,有效提高算法準(zhǔn)確度。具體來說,設(shè)計了多特征提取通道,配合融合思想實現(xiàn)有效信息互補;引入注意力機制作為模型先驗分析,對圖片中重要分類加以更大權(quán)重分配以提高算法效率。
選取367 張CamVid[7]數(shù)據(jù)集中的原始道路場景圖像及對應(yīng)的真實語義分割圖像構(gòu)成訓(xùn)練集。將訓(xùn)練集中的第q幅原始道路場景圖像記為{Iq(i,j)},對應(yīng)的真實語義分割圖像記為{Iqtrue(i,j)}。采用現(xiàn)有的獨熱編碼技術(shù)(one-hot)將訓(xùn)練集中的標(biāo)簽處理成12 幅獨熱編碼圖像,處理好的集合記為Jqtrue。其中,道路場景圖像為RGB彩色圖像,q為正整數(shù),1≤i≤W,1≤j≤H,W表示{Iq(i,j)}的寬度,H 表示{Iq(i,j)}的高度,如取W = 480、H = 360。Iq(i,j)表示{Iq(i,j)}中坐標(biāo)位置為(i,j)的像素點的像素值,Iqtrue(i,j)則表示{Iqtrue(i,j)}中坐標(biāo)位置為(i,j)的像素點的像素值。將處理好的數(shù)據(jù)根據(jù)預(yù)先設(shè)定好的batch-size大小,成批次輸入到網(wǎng)絡(luò)模型中進行訓(xùn)練并保存最好權(quán)重值。所有訓(xùn)練結(jié)束后,將測試集和上述權(quán)重讀入網(wǎng)絡(luò),得到最終的評價結(jié)果和分割預(yù)測圖??傮w設(shè)計思路如圖1 所示。其中,損失函數(shù)作為度量真實圖像和預(yù)測圖像差距的指標(biāo),對模型的訓(xùn)練效果有著重要影響。因此,損失函數(shù)的選擇至關(guān)重要?,F(xiàn)有語義分割模型大多使用交叉熵,除此之外,Lovasz-Softmax[8]則是為了更好地擬合分割特點而設(shè)計的一種損失函數(shù),該函數(shù)直接對語義分割的重要指標(biāo)進行優(yōu)化,本文選擇該函數(shù)以提高訓(xùn)練效果。
圖1 總體設(shè)計方案
圖2 所示為網(wǎng)絡(luò)整體結(jié)構(gòu)圖。該網(wǎng)絡(luò)共包含兩條主要的特征提取路徑,即局部信息路徑(Localinformation Path)和全局信息路徑(Global-information Path)。前者是以VGG-16[9]的前3 個下采樣塊作為圖像局部特征的提取方式;后者則使用ResNet-34[10]的5個特征提取塊細(xì)化圖像信息從而得到全局特征。將得到的小尺寸特征圖通過反卷積還原并經(jīng)過注意力機制模塊(CAM)強化信息表達(dá),再將不同階段的特征圖輸入基礎(chǔ)融合塊(BFM)進行特征融合。網(wǎng)絡(luò)后期借鑒ASPP和跳躍連接的思想,設(shè)計了RASPP模塊,旨在擴大特征圖感受域的同時盡可能保留信息完整度。本模型利用多尺度輸出作為優(yōu)化方法。經(jīng)實驗證明,多輸出能更好地監(jiān)督模型的收斂過程以提升分割效果。
圖2 網(wǎng)絡(luò)整體結(jié)構(gòu)
圖像的低級特征通常具有更多的空間細(xì)節(jié),而高級特征則包含更為豐富的上下文信息。本文將輸入圖像分為兩條路徑,分別提取不同的特征映射進行語義分割,并命名為“局部信息路徑”和“全局信息路徑”。低層次特征包含的信息主要集中在目標(biāo)的細(xì)致輪廓,對于密集分類預(yù)測輸出是很有意義的。以往的方法通過連續(xù)的下采樣操作獲得高層次特征,從而犧牲了特征圖的空間分辨率。盡管以上方法在解碼模塊中均使用上采樣操作還原尺寸,但一些丟失的空間信息很難被恢復(fù)。為了避免上述問題,本文定義了局部信息提取路徑,使用加入預(yù)訓(xùn)練權(quán)重后的VGG-16 作為特征提取網(wǎng)絡(luò)。該路徑?jīng)]有設(shè)置過多的下采樣操作,從而保持更強的空間細(xì)節(jié)。除此之外,該路徑還將每個特征提取塊得到的結(jié)果進行融合,即使用反卷積操作恢復(fù)所有小特征圖尺寸至原圖的1 / 2 大小,后相加融合。通過該方法得到的融合特征圖具有極豐富的細(xì)節(jié)特征,可作為后續(xù)模塊的補償信息。
從宏觀角度來看,語義分割的核心思想是為每個目標(biāo)按實際類別進行標(biāo)注,同類事物將被賦予同一特征。語義分割任務(wù)的難點在于,局部信息與全局信息的豐富程度會直接影響分割效果,但兩者之間卻有著天然的互斥關(guān)系。為解決這一問題,本文設(shè)計了全局信息路徑,專門用于提取上下文信息。與局部信息路徑不同,全局信息需從深層網(wǎng)絡(luò)獲取,即多次下采樣變得十分必要。因此,本文選擇ResNet-34 作為該路徑的主網(wǎng)絡(luò),ResNet可很好解決深度CNN網(wǎng)絡(luò)中存在的問題,如梯度消失或梯度爆炸。具體來說,圖像每經(jīng)過一個特征提取塊,其尺寸均會減小1 / 2,將最后得到的最小尺寸特征圖通過雙線性差值上采樣的方法,一步還原到先前的各個尺寸并和對應(yīng)尺寸的特征圖相融合,以達(dá)到綜合全局與局部信息的目的。
特征融合是現(xiàn)階段分割模型較為常用的一種優(yōu)化方法。通常來說,模型會將不同階段產(chǎn)生的相同尺寸特征圖進行融合,主要方式為拼接或相加,本文稱該方式為直接融合法。直接融合法雖被廣泛使用,但仍具有不足之處,例如,低級特征往往包含很多噪聲且與高級特征之間的差距較大,因而直接將兩種特征融合一般無法達(dá)到預(yù)期效果。為了解決這一問題,本文選擇將深層網(wǎng)絡(luò)中的特征圖多次還原為較大尺寸,與相對應(yīng)的淺層特征融合。高級特征所含信息較為純凈,即使經(jīng)過雙線性插值進行尺寸擴大也不會引入多余干擾噪聲,因而融合效果更好。本文將該融合方式命名為多特征融合法,其原理圖如圖3 所示。
以全局信息提取路徑中的多特征融合為例具體說明,經(jīng)過各提取塊后的結(jié)果將變?yōu)樵瓐D的1 / 2、1 / 4、1 /8、1 / 16 和1 / 32,將最小特征圖從1 / 32 大小向上還原至1 / 2、1 / 4、1 / 8、1 / 16,得到的上采樣結(jié)果與原始提取塊得到的同尺寸結(jié)果相加,得到更為全面的綜合特征圖。多特征融合作為一種特征融合方式,可靈活加入到各個階段以更好地綜合網(wǎng)絡(luò)信息。
圖3 多特征融合原理圖
基礎(chǔ)融合模塊共有3 個輸入流,其結(jié)構(gòu)圖如圖4所示。Input 1 和Input 2 分別來自ResNet-34 特征提取塊的輸出和多特征融合特征圖,該融合屬于全局信息與局部信息的互補過程,因此選擇相加操作將兩輸入進行融合。然后將得到的綜合特征與對應(yīng)的注意力機制模塊輸出(Input 3)進行融合,由于上述兩種特征屬于不同類別的信息,均具有獨特優(yōu)勢,因此選擇拼接方式將兩特征圖在通道維度上進行連接以保證各自特點。該模型旨在通過簡單的融合方式綜合特征輸入,以在發(fā)揮作用的同時控制網(wǎng)絡(luò)整體參數(shù)。
圖4 基本融合模塊
高層次特征的每個通道都可以看作是一個特定于類的響應(yīng),不同的語義響應(yīng)相互關(guān)聯(lián)。通過挖掘通道之間的相互依賴關(guān)系,可提高特定語義的特征表示。因此,本文構(gòu)建了一個通道注意模塊來顯式地建立通道之間的依賴關(guān)系,其結(jié)構(gòu)圖如圖5 所示。在計算兩個通道關(guān)系之前,該模塊不使用卷積層嵌入特征,這樣可以保持不同通道映射之間的關(guān)系不變。此外,與其他使用全局池化或全連接的方法不同,本模塊利用所有對應(yīng)位置上的空間信息來建立通道相關(guān)性,即使用矩陣變換相乘實現(xiàn)通道加權(quán)。
圖5 注意力機制模塊結(jié)構(gòu)圖
復(fù)雜場景的分割任務(wù)面臨諸多挑戰(zhàn),如分辨率不足、感受域單一等。因此,在一種模塊中綜合多種功能是現(xiàn)階段分割模型的主要設(shè)計思路。本文將ASPP和跳躍連接相結(jié)合,設(shè)計了RASPP 模塊,如圖6(a)所示。該模塊進一步優(yōu)化網(wǎng)絡(luò)前部分得到的綜合特征,通過設(shè)置不同尺寸的空洞卷積實現(xiàn)對不同大小目標(biāo)的精確分割。該模塊共包含一個輸入流和兩個輸出流,其中一條輸出流作多尺度監(jiān)督;另一條則作為下一個殘差優(yōu)化塊的輸入。殘差優(yōu)化塊如圖6(b)所示,目的是能更好地產(chǎn)生輸出預(yù)測結(jié)果。
圖6 多尺度優(yōu)化模塊結(jié)構(gòu)圖
本文使用Camvid數(shù)據(jù)集進行實驗分析,該數(shù)據(jù)集共包含11 個類別,701 幅圖像,大小為360 × 480。在數(shù)據(jù)預(yù)處理階段將圖像大小調(diào)整為352 × 480 以便進行多次下采樣,具體參數(shù)設(shè)置如下:訓(xùn)練集數(shù)量367張,驗證集數(shù)量101 張,測試集數(shù)量233 張,學(xué)習(xí)率10-3,優(yōu)化器SGD + momentum 0.9,mini-batch 2,epochs 200。
具體實驗階段使用Pycharm 作為IDE,深度學(xué)習(xí)框架選擇Pytorch1.1.0,主要語言為Python。使用GPU加速訓(xùn)練網(wǎng)絡(luò),所使用的設(shè)備為NvidiaGXT 1080且只選用一塊GPU加速程序。語義分割任務(wù)中存在3個評價指標(biāo)用于衡量網(wǎng)絡(luò)性能,分別為像素精度(CA)、平均像素精度(GA)以及平均交并比(MIoU),指標(biāo)結(jié)果值越大,表示算法分割效果越好。
根據(jù)上述指標(biāo),將本文網(wǎng)絡(luò)與同一數(shù)據(jù)集中的其他現(xiàn)有模型進行比較,包括Segnet、Deeplb-LFOV、DFN[11]、ENet[12]、LinkNet[13]、ESPNet[14]、ReSeg[15]、TernausNet[16]以及DFANet。表1 列出了CamVid數(shù)據(jù)集所包含的11 個類別及每個類對應(yīng)的分割準(zhǔn)確率。由此可見,本模型在各細(xì)節(jié)類上的預(yù)測效果大多優(yōu)于其他對比模型。除此之外,表2 列出了3 個主要指標(biāo)的結(jié)果,證明了本方法得到的分割結(jié)果值均優(yōu)于其他對比網(wǎng)絡(luò)。
表1 各類別分割結(jié)果
表2 主要指標(biāo)結(jié)果
本文涉及的其他比較算法均在同等條件下復(fù)現(xiàn),嚴(yán)格依照文中給出的參數(shù)設(shè)置進行搭建,并未對其內(nèi)部結(jié)構(gòu)進行修改。以SegNet為例,本文復(fù)現(xiàn)其結(jié)果時使用SGD 作為優(yōu)化器,學(xué)習(xí)率設(shè)為10-3,動量為0.9,Dropout設(shè)為0.5,batch-size 則為5。在相同參數(shù)設(shè)置的情況下使用NvidiaGXT 1080 加速訓(xùn)練,得到的結(jié)果與本文算法可直接做對比,不需要額外計算。正如SegNet原文所給出的11 個類別分類,本文同樣將每個類別的預(yù)測準(zhǔn)確率輸出,作為對比結(jié)果的一部分。
如圖7 所示為各網(wǎng)絡(luò)分割預(yù)測圖。其中,圖7(a)為CamVid測試集中的原始道路圖像;(b)為測試集中的標(biāo)簽圖,該圖像作為其他模型的基準(zhǔn)對比圖,可直觀地證明某一模型分割結(jié)果的好壞;(c)、(d)分別為SegNet 和TernausNet 兩種先驗網(wǎng)絡(luò)的分割結(jié)果;(e)則表示本方法的預(yù)測圖。SegNet 和TernausNet 的結(jié)果圖同樣使用上述方法由本人自行復(fù)現(xiàn)輸出,該預(yù)測圖與原文中給出的最終結(jié)果幾乎相同,并未產(chǎn)生巨大差距。在訓(xùn)練階段保存的最優(yōu)權(quán)重導(dǎo)入搭建好的模型中,輸入測試數(shù)據(jù)集得到預(yù)測矩陣,后使用PIL圖像處理庫,將得到的矩陣數(shù)據(jù)轉(zhuǎn)化為圖片形式,按張保存。圖中第1 行可證明本模型對小目標(biāo)的分割效果,如圖中黃框標(biāo)記出的路燈,先驗網(wǎng)絡(luò)并未將其分割出來,而本算法可將大致輪廓輸出。圖中第2 行可證明本模型對常見目標(biāo)的分割效果,黃框中的目標(biāo)在本算法的計算下得到了更為平滑明確的分割結(jié)果。
圖7 各網(wǎng)絡(luò)預(yù)測結(jié)果圖
本文以無人駕駛視覺系統(tǒng)為應(yīng)用場景,設(shè)計了一種基于深度學(xué)習(xí)的語義分割模型。該模型設(shè)計了兩條特征提取路徑以有效細(xì)化圖像各部分信息,通過多特征融合實現(xiàn)信息互補,并引入其他優(yōu)化模塊進一步完善網(wǎng)絡(luò)效果。該網(wǎng)絡(luò)通過大量數(shù)據(jù)訓(xùn)練,在與其他先驗網(wǎng)絡(luò)的對比下可較好地提高道路場景圖像的分割準(zhǔn)確率,有望對無人駕駛的新技術(shù)發(fā)展做出貢獻。