薛振彥,惠 明,程晉炳,董 昊
(1.南陽師范學(xué)院 物理與電子工程學(xué)院,河南省MXene材料微結(jié)構(gòu)國際聯(lián)合實驗室,河南 南陽 473061;2.南陽師范學(xué)院 美術(shù)與藝術(shù)設(shè)計學(xué)院,河南 南陽 473061)
具有自動駕駛技術(shù)的智能汽車是當(dāng)下科學(xué)技術(shù)發(fā)展的熱門研究內(nèi)容,其中,對車載自帶圖像采集系統(tǒng)所得到的道路圖像進(jìn)行精準(zhǔn)的語義分割,是智能汽車自動駕駛中的關(guān)鍵技術(shù)之一.
針對圖像語義像素級的分割問題,J.Long等人提出FCN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),即全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Networks).FCN模型成為當(dāng)前語義分割領(lǐng)域中最常用的網(wǎng)絡(luò)模型之一.FCN是由CNN網(wǎng)絡(luò)改進(jìn)得來的.CNN網(wǎng)絡(luò)一般在卷積層后加上幾層全連接層,將圖像信息壓縮成一個固定尺度的特征矢量,并最終輸出一個圖像級別分類結(jié)果的一維長度的值.而FCN模型將CNN末端的全連接層去掉,利用反卷積方式對最后一層卷積層進(jìn)行上采樣,進(jìn)而使模型的輸出維度恢復(fù)到與輸入圖像尺寸相同的程度,從而實現(xiàn)對像素進(jìn)行預(yù)測分類.本文在FCN網(wǎng)絡(luò)的基礎(chǔ)上提出一種先驗概率層的后處理方法,并與傳統(tǒng)的全卷積神經(jīng)網(wǎng)絡(luò)模型(FCN)相結(jié)合實現(xiàn)道路圖像的語義分割.先驗概率層利用道路圖像的先驗知識,在所有道路圖像訓(xùn)練標(biāo)簽的基礎(chǔ)上表示各像素點分類概率的二維數(shù)組,并將它與傳統(tǒng)全卷積神經(jīng)網(wǎng)絡(luò)模型相結(jié)合對道路圖像進(jìn)行語義分割.實驗結(jié)果表明本文提出的先驗概率層的后處理算法能夠優(yōu)化傳統(tǒng)全卷積神經(jīng)網(wǎng)絡(luò)模型的分割效果.
本文的主要工作包括以下幾個方面:
(1)針對傳統(tǒng)FCN模型算法分割精度較低的缺陷,提出一種新的思路:根據(jù)道路圖像的特殊性(道路總處于圖中央下方的特定位置),對圖像中的每個像素值附上一個特殊值表示其分類先驗概率,以此來提高FCN模型對道路圖像的語義分割結(jié)果.
(2)基于KITTI數(shù)據(jù)集,利用tensorflow開源神經(jīng)網(wǎng)絡(luò)框架對本文的神經(jīng)網(wǎng)絡(luò)框架進(jìn)行訓(xùn)練學(xué)習(xí),確定參數(shù).
(3)將本文方法應(yīng)用于真實道路圖像識別實驗,對實驗結(jié)果進(jìn)行分析,驗證后處理概率層模型的優(yōu)化性能.
圖像分割主要是通過提取圖片的低級特征進(jìn)行簡單的圖像分割,常用的方法有:基于目標(biāo)函數(shù)的模糊C-均值算法(Bezdek,1981)[1],“Normalized cut”分割方法(Jianbo Shi等,2000)[2].雖然這些方法能夠考慮全局信息進(jìn)行圖像劃分,但分割的結(jié)果不準(zhǔn)確且不能對圖像進(jìn)行語義標(biāo)注[3].
隨著深度學(xué)習(xí)(Deep Learning)技術(shù)快速提升,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)[4]被提出并應(yīng)用在圖像分類與語義分割中.為了使卷積網(wǎng)絡(luò)更好地應(yīng)用于圖像語義分割,許多研究人員對其進(jìn)行改進(jìn)和優(yōu)化,提出多種用于語義分割的神經(jīng)網(wǎng)絡(luò).全卷積神經(jīng)網(wǎng)絡(luò)(Jonathan Long等)[5]的提出解決了像素級別的圖像分類,SegNet神經(jīng)網(wǎng)絡(luò)(Vijay Badrinarayanan等)[6]使用編碼器與解碼器的對稱結(jié)構(gòu),并在解碼器中應(yīng)用最大池化指數(shù),使該網(wǎng)絡(luò)對分割分辨率有了些許改善.為解決池化操作所帶來的圖像信息丟失問題,DeepLab神經(jīng)網(wǎng)絡(luò)(Liang-Chieh Chen等)[7]被提出,該網(wǎng)絡(luò)利用空洞卷積,并將其結(jié)合全連接條件隨機場,提出金字塔形的空洞池化結(jié)構(gòu).然而空洞卷積結(jié)構(gòu)擁有計算成本高、占用內(nèi)存大的缺點.因此RefineNet神經(jīng)網(wǎng)絡(luò)(Guosheng Lin等)[8]被提出來以解決空洞卷積結(jié)構(gòu)的缺點,該網(wǎng)絡(luò)分割精度高,但是其網(wǎng)絡(luò)比較復(fù)雜.
以上算法都是用于解決普通圖像的語義分割問題,并不是專門針對某一類特殊圖像的問題而設(shè)計的.因此,為使神經(jīng)網(wǎng)絡(luò)模型更好地用于解決道路圖像語義分割問題,并且針對道路圖像特有的性質(zhì),本文對全卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行改進(jìn),提出一種加入先驗概率層的后處理方法,并將該模型用于道路圖像語義分割,與傳統(tǒng)全卷積神經(jīng)網(wǎng)絡(luò)算法對比分析,本文提出的模型提高道路圖像的語義分割精度.
實際的駕駛過程中,可行駛的道路一般都位于智能車攝像頭所拍攝視野的中下位置.因此道路圖像語義訓(xùn)練模型的道路圖像中的道路都是處于圖像的中下位置,本文利用道路圖像的這個特點,構(gòu)建先驗概率層的二維數(shù)組,表示圖像像素點的先驗分類概率.
先驗概率層的具體定義過程如下:
(1)先將訓(xùn)練集中每一張真實標(biāo)簽的每個RGB值轉(zhuǎn)換成能表示分類結(jié)果的one-hot編碼二維數(shù)組h*w,其中h、w為輸入標(biāo)簽圖像的高和寬,數(shù)組的每個值的結(jié)果為1或0,如圖1所示,值為1代表該像素點分類為道路,值為0代表該像素點分類為非道路(背景).
圖1 轉(zhuǎn)換后的數(shù)據(jù)標(biāo)簽示意圖
(2)接著將轉(zhuǎn)換后的所有標(biāo)簽數(shù)組進(jìn)行求和取平均(歸一化),得到一個h*w的概率層(如圖2、3所示),其每一個值的取值范圍為0到1之間(包括0和1),值越接近1表示該像素點越可能為道路,值越接近0表示該像素點越可能為非道路(背景).
圖2 概率層概念圖
為了讓概率層更加準(zhǔn)確地分類每個像素的語義分割結(jié)果,需要對概率層進(jìn)行一定的轉(zhuǎn)換,使原概率層的每個數(shù)值減去0.5,得到最終的概率層,如圖4所示.
圖3 原概率層示意圖
圖4 轉(zhuǎn)換后的概率層示意圖
在模型預(yù)測測試集圖像時,在模型的最后一層添加此概率層,并為此層分配一個影響因子,作為預(yù)測結(jié)果的后處理方法,以此來矯正原FCN模型預(yù)測的部分錯誤分類的像素.
當(dāng)?shù)缆穲D像經(jīng)過已訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型后,會生成一個二維數(shù)組標(biāo)簽矩陣,如圖5所示,其每個像素點取值為0到1.因此將每個像素點取值與0.5值相比,大于0.5則表示該像素點分類為道路,小于0.5表示該像素點分類為背景.而從圖5可以看到,其中有兩個像素點值分類錯誤,將背景預(yù)測成了道路,將道路預(yù)測成了背景.而在這種情況下,增加后處理概率層可以對預(yù)測結(jié)果進(jìn)行影響干預(yù).通過將預(yù)測結(jié)果中每個像素的預(yù)測值與概率層對應(yīng)像素的數(shù)值相加,如圖6所示,進(jìn)一步增加道路區(qū)域的概率,減少背景區(qū)域的概率,從而實現(xiàn)對預(yù)測結(jié)果的糾正,在一定程度上提高道路圖像語義分割的分割精度.從圖6可看出,原本錯誤分類的兩個像素點經(jīng)概率層處理后,最終分類正確,且其他像素點分類結(jié)果也沒有被改變.
圖5 預(yù)測錯誤的標(biāo)簽矩陣
圖6 概率層后處理過程示意圖
本文的所有實驗都是基于數(shù)據(jù)集KITTI[9]中的道路圖像進(jìn)行模型訓(xùn)練.數(shù)據(jù)集KITTI是由豐田公司美國芝加哥技術(shù)研究院和德國Karlsruhe理工學(xué)院于2012年合作采集創(chuàng)建的.KITTI數(shù)據(jù)集主要包括了高速公路、農(nóng)村和都市等日常生活場景的圖像數(shù)據(jù),而該圖像數(shù)據(jù)主要是通過搭載在一輛汽車上的彩色攝像頭進(jìn)行拍攝采集.在該數(shù)據(jù)集中,道路被標(biāo)記成紫色(RGB值為[255,0,255]),而背景則被標(biāo)記為紅色(RGB值為[255,0,0]).本文一共使用289張圖片,并將其大小裁剪為576*160,其中214張圖片用作訓(xùn)練模型,75張圖片用作測試驗證.
3.1.1 預(yù)處理:在實驗開始時,首先需要對訓(xùn)練的圖像和標(biāo)簽進(jìn)行預(yù)處理操作.先對圖片和標(biāo)簽進(jìn)行裁剪;接著把標(biāo)簽圖片轉(zhuǎn)換成one-hot編碼的向量數(shù)組,以此來表示對應(yīng)像素所屬分類;最后將訓(xùn)練圖片與對應(yīng)的標(biāo)簽劃分成一個一個batch_size大小的batch,作為輸入的訓(xùn)練數(shù)據(jù).
3.1.2 搭建FCN網(wǎng)絡(luò)模型.
3.1.3 訓(xùn)練模型:將神經(jīng)網(wǎng)絡(luò)的輸出通過softmax函數(shù)進(jìn)行歸一化處理,并將處理結(jié)果和標(biāo)簽結(jié)果一同通過交叉熵函數(shù)并求平均,形成模型訓(xùn)練的代價函數(shù);然后使用AdamOptimizer優(yōu)化器朝代價函數(shù)下降方向?qū)δP瓦M(jìn)行優(yōu)化,并計算每次迭代的訓(xùn)練準(zhǔn)確率,學(xué)習(xí)率設(shè)置為0.00001.
3.1.4 生成概率層:根據(jù)概率層原理,利用所有訓(xùn)練圖片的標(biāo)簽生成一個能表示各像素點分類概率的二維數(shù)組.
3.1.5 模型預(yù)測:在模型訓(xùn)練完成后,將模型參數(shù)保存,然后輸入測試圖片到已訓(xùn)練好的模型中,并且利用概率層使其生成預(yù)測標(biāo)簽,再將預(yù)測的標(biāo)簽與真實標(biāo)簽進(jìn)行對比,并求出其像素精度(PA)、平均像素精度(MPA)和平均交并比值(MIoU).
為了深入分析實驗結(jié)果,本文采用PA、MPA、MIoU[10]三種度量標(biāo)準(zhǔn)對結(jié)果進(jìn)行定量分析.接下來會簡單介紹每一種度量標(biāo)準(zhǔn)的計算方式,假設(shè)有k+1種類別需要分類,其中Pij代表第i個類別被預(yù)測為第j個類別的像素個數(shù),Pii就意味著第i個類別被正確預(yù)測為該類類別的像素個數(shù).
像素精度計算公式如下所示.
(1)
像素精度為圖像語義分割中最簡單的度量標(biāo)準(zhǔn),從公式中可以清楚看出該度量標(biāo)準(zhǔn)即是所有被正確分類的像素數(shù)量占輸入圖像總像素的比例.
平均像素精度計算公式如下所示.
(2)
平均像素精度是像素精度的優(yōu)化版本,其主要做法是先對每個類內(nèi)部作像素精度的計算,接著對所有結(jié)果進(jìn)行平均求值.
MIoU平均交并比值的計算公式如下所示.
(3)
平均交并比值是圖像語義分割中最主要的度量標(biāo)準(zhǔn),其做法是求解兩個集合間并集與交集的比例,這兩個集合即為預(yù)測標(biāo)簽集合和真實標(biāo)簽集合.該度量指標(biāo)往往低于以上兩者.
為了驗證本文算法在道路圖像分割中的效果,主要用FCN模型和本文提出的基于先驗概率層的后處理算法FCN模型進(jìn)行對比,定性對比效果如圖7所示.
圖7 不同算法道路分割的結(jié)果對比
從圖7可以看出,本文提出的基于先驗概率層的后處理算法圖7(d)對道路圖像的分割效果,要比傳統(tǒng)FCN模型算法圖7(c)效果好一些.FCN模型在添加概率層后,分割出來的道路輪廓更加光滑,道路邊界更加連貫完整.同時,在添加概率層后,可以去除一些不合理的離散點,使預(yù)測區(qū)域盡可能地連通,更加符合真實道路的情景.
接著,對這兩種模型的預(yù)測結(jié)果進(jìn)行定量分析,比較像素精確度、平均像素精度和平均交并比值,其結(jié)果表1所示.
表1 不同模型對道路圖像的分割結(jié)果對比
從表1顯示的結(jié)果可以清楚地證明本文提出的算法與傳統(tǒng)的FCN模型算法相比,在分割精度上有一定的提高.后處理概率層可將像素精確度由88.8%提高到91.3%,提高了2.5個百分點;平均像素精確度由82.9%提高到85.7%,提高了2.8個百分點;平均交并比值由72.5%提高到77.9%,提高了5.4個百分點.
實驗結(jié)果證明,概率層的運用可以提高模型對道路圖像的語義分割效果.概率層記錄道路圖像中像素的分割類別先驗概率,對圖像中的每個像素值進(jìn)行后期干預(yù),以此來提高對道路圖像的語義分割結(jié)果.
針對當(dāng)前國際上FCN模型在道路圖像語義分割算法領(lǐng)域的最新研究成果,本文根據(jù)道路圖像的特殊性,通過添加道路圖像先驗概率層的思路開展了道路圖像語義分割方法的研究.實驗結(jié)果表明:相對于傳統(tǒng)全卷積神經(jīng)網(wǎng)絡(luò)算法,本文提出的算法能較好地分割道路圖像,精度更高,且可靠性較好,可用于道路圖像語義分割.由于現(xiàn)有開源的道路圖像數(shù)據(jù)集較少,本文算法沒能在大量的道路圖像中開展圖像分割實驗,后續(xù)將繼續(xù)開展道路圖像樣本庫和標(biāo)簽數(shù)據(jù)集收集建立工作,進(jìn)一步驗證本文算法在大量不同場景道路圖像分割中的效果.同時,在概率層生成方法上,可以嘗試進(jìn)行tanh函數(shù)、sigmoid函數(shù)等非線性變化,探究線性變化與非線性變化間的差別與各自優(yōu)缺點,使其能夠適合更加復(fù)雜多變的道路圖像.