張乃千,王占剛
(北京信息科技大學(xué)信息與通信工程學(xué)院,北京 100101)
隨著計算機技術(shù)的發(fā)展,市場對傳統(tǒng)紙質(zhì)地圖的需求逐年下降,如何對道路準(zhǔn)確分割實現(xiàn)紙質(zhì)地圖道路信息的多樣化尤為重要。傳統(tǒng)紙質(zhì)地圖道路分割大多基于顏色特征[1],用這種分割方法得到的道路區(qū)域效果較差且操作繁瑣,無法滿足實際應(yīng)用。詹曦[2]利用基于顏色的聚類特征分割道路區(qū)域,這種方法需要不斷調(diào)整顏色距離閾值,對于顏色特征不顯著的平面地圖無法保證分割精度;寇曼曼等[3]利用視覺一致性的顏色聚類方法分割道路區(qū)域,此方法對顏色顯著的主干道有較好的分割效果,但是對于細小的道路則無法準(zhǔn)確分割。
卷積神經(jīng)網(wǎng)絡(luò)的大規(guī)模應(yīng)用日漸完善了傳統(tǒng)算法引發(fā)的缺陷[4],同時深度學(xué)習(xí)的興起使得圖像分割技術(shù)取得了突破性的成果。在醫(yī)學(xué)領(lǐng)域,卓鐘爍等[5]用CNN(convolutional neural network)分割視網(wǎng)膜血管,精確率及特異性可達到人類專家的水平。在農(nóng)業(yè)方面,馬浚誠等[6]利用CNN準(zhǔn)確分割復(fù)雜背景中的黃瓜病斑,為病害識別提供了準(zhǔn)確的數(shù)據(jù)保障。
由于CNN在不同領(lǐng)域均得到良好應(yīng)用,因此考慮引入CNN優(yōu)化平面地圖道路分割過程。根據(jù)徐國晟等[7]基于CNN分割車道線的方法所提供了思路,利用其特有的共享卷積核結(jié)構(gòu)[8],大幅度提高了特征分類效果。在精度和速度[9]上優(yōu)于傳統(tǒng)算法,分割過程達到了前所未有的便捷。
考慮到平面地圖道路分割的目標(biāo)是將道路從背景區(qū)域中分割出來,提出一種改進CNN分割目標(biāo)函數(shù)并結(jié)合模糊推理系統(tǒng)的平面地圖道路概率分割方法。首先通過CNN訓(xùn)練得到道路區(qū)域像素點的概率模型,再根據(jù)非線性映射均勻像素點概率分布,并將其結(jié)果輸入模糊系統(tǒng),最終輸出像素點屬于道路區(qū)域的概率,完成平面地圖道路分割。
卷積神經(jīng)網(wǎng)絡(luò)是由輸入層、激勵層、池化層、卷積層和全連接層等組成的可訓(xùn)練體系結(jié)構(gòu)[10]。CNN的局部連接性和權(quán)值共享性,使得訓(xùn)練出的網(wǎng)絡(luò)模型對平移、旋轉(zhuǎn)、縮放有很強的適應(yīng)性。
當(dāng)圖像輸入CNN模型后首先進入卷積層,完成平面地圖道路特征提取操作,然后進入池化層,CNN在空間域上的池化操作能更好地挖掘圖像的深層特征息,接著進入全連接層,全連接層可將卷積提取的特征映射到每一類,實現(xiàn)分類目的[11],最后送入輸出層,得到平面地圖像素點屬于道路和非道路的概率,完成模型訓(xùn)練。CNN模型將信息的特征提取和分類放到同一個網(wǎng)絡(luò)框架中同步訓(xùn)練[12],實現(xiàn)算法的自適應(yīng)性。
模糊推理系統(tǒng)[13]是以模糊集合理論和模糊推理方法等為基礎(chǔ),解決帶有模糊現(xiàn)象的復(fù)雜推理問題,可以實現(xiàn)復(fù)雜的非線性映射關(guān)系,進而得到更接近某一分類的概率真實值。模糊系統(tǒng)主要由模糊化、模糊化規(guī)則、模糊推理方法及去模糊化四部分構(gòu)成[14]。其基本結(jié)構(gòu)如圖1所示。
圖1 模糊推理系統(tǒng)流程圖Fig.1 Fuzzy inference system flow chart
2.1.1 構(gòu)建訓(xùn)練集
來自不同數(shù)據(jù)庫的平面地圖道路雖大體相同,但由于道路的復(fù)雜交錯性,使得不同地圖數(shù)據(jù)庫呈現(xiàn)道路細節(jié)信息程度不同,為保證平面地圖道路分割準(zhǔn)確性,選取兩個不同數(shù)據(jù)庫(實際應(yīng)用中選取百度地圖數(shù)據(jù)庫與高德地圖數(shù)據(jù)庫)構(gòu)建數(shù)據(jù)集。為獲取正確標(biāo)記的平面地圖道路訓(xùn)練樣本[15],首先將道路的像素點用1標(biāo)記,其他區(qū)域用0標(biāo)記,得到大量帶標(biāo)簽的數(shù)據(jù)集。然后將預(yù)處理后的圖像劃分成N×N(取N=35)的圖像塊,選取樣本中央像素點標(biāo)簽分別為1和0的圖像構(gòu)建訓(xùn)練集,像素訓(xùn)練集構(gòu)建方法如圖2所示。
圖2 構(gòu)建訓(xùn)練集流程圖Fig.2 Building a training set flow chart
2.1.2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
使用像素大小為35×35平面地圖設(shè)計卷積神經(jīng)網(wǎng)絡(luò)模型,首先輸入圖像經(jīng)過一個4×4的卷積層和2×2的池化層,完成第一次卷積與采樣操作,接著使用一個3×3的卷積層和2×2的池化層完成第二次卷積與采樣操作,然后重復(fù)上一步,并將得到的16個4×4特征圖放入2個全連接層,最終在輸出層中得到道路和非道路的像素點概率,完成模型訓(xùn)練。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.3 Convolutional neural network model structure
2.1.3 改進分割目標(biāo)函數(shù)
平面地圖道路分割的目的是得到像素點屬于道路和非道路區(qū)域的概率值,因此可以將其視為一種二分類問題,對于這種典型二分類問題,使用Softmax函數(shù)[16]會提升網(wǎng)絡(luò)復(fù)雜度,因此用Sigmoid函數(shù)作為目標(biāo)函數(shù),Sigmoid函數(shù)可以將一個實數(shù)映射到(0,1)區(qū)間,保證訓(xùn)練模型得到的概率完整且連續(xù)。
算法的目標(biāo)函數(shù)表示為
(1)
式(1)中:Ls為目標(biāo)函數(shù);k為每次參數(shù)更新所需的樣本數(shù),其中k=1,2,…,K;X∈RHWK為卷積層給出的預(yù)測分類;Y∈RHWK∈{0,1}為標(biāo)記的圖像像素數(shù)據(jù)集合,其中0和1分別為非道路區(qū)域像素與道路區(qū)域像素;H和W分別為前層卷積得到的圖像高度和寬度;h=1,2,…,H;w=1,2,…,W;λΦ(W)為正則化項,λ為參數(shù),調(diào)節(jié)目標(biāo)函數(shù)的模型復(fù)雜度,Φ(W)為模型復(fù)雜度懲罰項,避免過擬合問題。
在訓(xùn)練過程中為優(yōu)化分割目標(biāo)函數(shù)使其最小化,使用隨機梯度下降算法調(diào)整目標(biāo)函數(shù),利用反向傳播計算更新權(quán)值,式(1)的反向傳播計算公式為
(2)
CNN模型訓(xùn)練后的像素點概率值集聚在0~1,由于在大樣本的訓(xùn)練過程下,這種過度集中的概率分布不能很好地說明具有相似概率像素之間的差異。因此,有必要通過非線性映射將像素點的概率值均勻地分布在0~1。
將CNN模型訓(xùn)練結(jié)果分為兩大類,分為像素點屬于道路區(qū)域的概率和像素點屬于非道路區(qū)域的概率兩種,并將其等分(0,1)作用域,令邊界值分別對應(yīng)(0,0.1~0.5)和(0.5,0.6~1)。最后,通過邊界值和映射點的分段線性擬合產(chǎn)生非線性映射函數(shù)。
經(jīng)過CNN模型訓(xùn)練后,將得到的像素點概率作為輸入模糊變量,分別用p百、p高表示,輸出則為道路概率值。
實際構(gòu)建過程中,由于高德地圖數(shù)據(jù)包含更多的道路細節(jié),因此將其像素點概率作為被調(diào)節(jié)量,用百度地圖數(shù)據(jù)庫訓(xùn)練得到的像素點概率作為控制量,模糊推理系統(tǒng)構(gòu)建如下。
Step 1確定隸屬度關(guān)系函數(shù)。
圖4 隸屬度函數(shù)關(guān)系Fig.4 Membership function diagram
Step 2建立模糊規(guī)則庫。
由于該系統(tǒng)系統(tǒng)是一個二維輸入一維輸出的模糊推理系統(tǒng)。且兩個輸入分別包含4種(A、B、C、D)和5種(E、F、G、H、I)隸屬度關(guān)系,則系統(tǒng)的推理規(guī)則庫共包含4×5=20種規(guī)則,其中“非”為像素點屬于非道路區(qū)域,“道”為像素點屬于道路區(qū)域,模糊規(guī)則構(gòu)建如表1所示。
表1 構(gòu)建模糊規(guī)則庫Table 1 Building a fuzzy rule base
Step 3中心平均法去模糊化。
由于中心平均法可以避免求取隸屬度函數(shù)的積分運算,同時又考慮了各個模糊集合對精確值的影響,因此采用該方法去模糊化,中心平均法的公式如式(3)所示:
(3)
算法共分為兩大步驟:模型訓(xùn)練與模糊概率預(yù)測。算法流程圖如圖5所示。
圖5 算法流程圖Fig.5 Algorithm flow chart
Step 1模型訓(xùn)練。
選取百度地圖數(shù)據(jù)庫與高德地圖數(shù)據(jù)庫樣本構(gòu)建35×35訓(xùn)練集;分別將其輸入到改進分割目標(biāo)函數(shù)的CNN模型中訓(xùn)練,得到兩個不同的訓(xùn)練模型,分別稱為Baidu-CNN模型和Amap-CNN模型。
Step 2模糊概率預(yù)測。
將Baidu-CNN模型和Amap-CNN模型預(yù)測得到的初始像素點概率作為輸模糊入變量輸入模糊推理系統(tǒng);若模糊推理系統(tǒng)輸出得到像素點概率p合>0.5,則像素點屬于道路,若p合<0.5,則像素點屬于非道路。
實驗在裝有Ubuntu 16.04系統(tǒng)的計算機上實現(xiàn),計算機配置:處理器為Intel Core I7-7700 2.8 GHz,GPU為GeForce GTX 1060。編程語言為Python2.7,基于TensorFlow開源框架完成。
實驗所需要的數(shù)據(jù)來自高德地圖、百度地圖數(shù)據(jù)庫,分別采集35×35像素大小的平面地圖圖像各為1 500張,并將數(shù)據(jù)集通過隨機旋轉(zhuǎn)與水平鏡像各擴展至6 000張。分別從兩數(shù)據(jù)集任意選取其中5 000張構(gòu)建訓(xùn)練集。剩余的1 000張隨機分成等量的兩組作為測試集和驗證集。
3.3.1 CNN訓(xùn)練模型分析
實驗一個batch所包含的樣本數(shù)為128,共分成40個batch分別訓(xùn)練,隨著訓(xùn)練次數(shù)增加,當(dāng)Loss曲線收斂至平穩(wěn)時模型訓(xùn)練結(jié)束,得到初始像素點概率值。Loss函數(shù)下降曲線與模型正確率曲線如圖6所示。
圖6 Loss下降曲線與正確率曲線Fig.6 Loss drop curve and correct rate curve
根據(jù)圖6曲線走勢可以得出,模型可信度較高,迭代到Loss曲線不在下降時,模型訓(xùn)練結(jié)束。根據(jù)模型精度曲線走勢可以得出,訓(xùn)練次數(shù)較少時準(zhǔn)確率呈直線大幅上升,隨著模型訓(xùn)練次數(shù)增加,訓(xùn)練精度上升變緩直至趨于平穩(wěn),由于Amap-CNN 模型的像素點正確率整體偏高于Baidu-CNN模型,有效證明本文用Amap-CNN作為模糊推理系統(tǒng)輸入變量中被調(diào)節(jié)變量的可靠性,Amap-CNN模型和Baidu-CNN模型訓(xùn)練得到的道路分割圖像如圖7所示。
圖7 CNN模型訓(xùn)練分割圖Fig.7 CNN model training segmentation diagram
圖8 像素點概率分布Fig.8 Pixel point probability distribution
根據(jù)圖7可知,Amap-CNN分割結(jié)果較為準(zhǔn)確,清晰度較高,但是道路和非道路色差較小的區(qū)域存在漏判現(xiàn)象。Baidu-CNN模型分割結(jié)果較為完整,但是道路與非道路區(qū)域的邊界模糊,且非道路區(qū)域存在較高的誤判點。其中Amap-CNN模型和Baidu-CNN模型訓(xùn)練后的像素點概率結(jié)果如圖8所示。
3.3.2 非線性映射函數(shù)
由圖8可以看出,像素點概率分布不均勻,密集的概率分布不利于建立不同概率的模糊推理系統(tǒng)。因此將CNN模型訓(xùn)練后的像素點概率值進行非線性映射,使其概率均勻分布,然后輸入模糊推理系統(tǒng),非線性映射構(gòu)建如圖9所示。
圖9 非線性映射函數(shù)Fig.9 Nonlinear mapping function
依據(jù)非線性映射函數(shù)的調(diào)節(jié),CNN模型的像素點誤判概率可以均勻分布在(0,1)區(qū)間,以便有效獲取模糊推理系統(tǒng)的輸入模糊變量,經(jīng)過非線性映射后像素點概率分布如圖10所示。
圖10 修正像素點概率分布Fig.10 Correct pixel probability distribution
由圖10可知,經(jīng)過非線性映射后,像素誤判點的概率分布均勻,可以有效建立模糊推理系統(tǒng),經(jīng)過模糊推理系統(tǒng)得到的修正道路分割圖如圖11所示。
圖11 修正道路分割圖Fig.11 Corrected road segmentation map
由圖11可知,經(jīng)過模糊推理系統(tǒng)修正像素點概率,可以得到清晰的道路與非道路邊界。且誤判和漏判點都大幅減少,道路與非道路分割準(zhǔn)確率較單獨訓(xùn)練CNN模型有大幅提高。
由于圖像分割算法繁多,因此定量計算其性能,可較為客觀地評價某種分割算法[17]。圖像分割常用的評價標(biāo)準(zhǔn)有正確率(Aaccuracy)、召回率(Rrecall)、精度(Pprecision)、誤判率(Error-rate)、漏判率(Uunderreporting-rate)及綜合評價指標(biāo)(F1-measure)。
(4)
(5)
(6)
為了驗證本文算法的誤判率及準(zhǔn)確率,選取文獻[2]和文獻[3]的方法對比驗證平面地圖道路提取的實驗效果。不同方法的提取精度如表2所示。
表2 對比不同圖像分割算法Table 2 Comparison of different segmentation algorithms
通過對比表2數(shù)據(jù)的正確率、誤判率、漏判率、召回率、精確率及綜合評價指標(biāo)6個約束指標(biāo),可以看出文獻[2]和文獻[3]的分割方法帶來的誤判率和漏判率都較高,影響道路分割準(zhǔn)確性。而本文算法在漏判率和誤判率較另外兩種算法都低很多,可以得到良好的道路分割效果。
由表2可知,召回率與精度呈相互制約關(guān)系,通過計算二者關(guān)系可以得到綜合指標(biāo),本文方法得到的綜合指標(biāo)也是三種方法中最好的。由于召回率與道路分割范圍呈正相關(guān),文獻[2]和文獻[3]的道路分割方法的召回率較高,因此必定會導(dǎo)致較低的精度。
本文算法在分割速度較文獻[2]和文獻[3]這種傳統(tǒng)算法也有大幅提高,單張地圖分割時間可以達到5 s/張。綜上考慮,本文方法可以在保證時間的前提下較為準(zhǔn)確地實現(xiàn)平面地圖道路分割。
為驗證本文算法的有效性及實用性,用本文算法與文獻[2]和文獻[3]算法對比分割平面地圖道路,實驗效果對比如表3所示。
表3 道路分割算法對比Table 3 Comparison of road segmentation algorithms
根據(jù)表3可以看出,由于平面地圖特有的顏色屬性,若運用文獻[2]算法,當(dāng)?shù)缆放c非道路顏色差異較小時,非道路區(qū)域很容易被錯分為道路區(qū)域?qū)е螺^高的誤判率,且提取細小道路時漏判率也很高。文獻[3]方法在道路線條較顯著且顏色差異較大時提取效果較好,但若是提取細小的道路則提取效果較差,只能顯示出大致輪廓,因此這種方法的漏判率也較高。而本文算法不論是提取道路細節(jié)特征還是提取與背景顏色差異小的道路特征都可以準(zhǔn)確實現(xiàn)。綜上所述,所提出的改進CNN目標(biāo)函數(shù)平面地圖道路模糊推理分割方法可得到精度較高的道路區(qū)域,良好地實現(xiàn)了平面地圖道路的分割過程。
平面地圖中道路區(qū)域的分割對擴展平面地圖的多樣性有很重要的應(yīng)用價值。據(jù)此,提出一種改進CNN分割目標(biāo)函數(shù)的平面地圖道路模糊概率分割方法。通過人工標(biāo)記道路區(qū)域與非道路區(qū)域獲得帶有標(biāo)簽的數(shù)據(jù)集,并將分割目標(biāo)函數(shù)改為Sigmoid 函數(shù),訓(xùn)練一個可以區(qū)分道路及非道路的CNN模型。將得到的像素點概率通過非線性映射函數(shù),解決像素點分布不均勻問題,并輸入模糊推理模糊系統(tǒng)得到像素點屬于道路的準(zhǔn)確概率值,完成平面地圖道路分割。提出的道路分割方法解決了傳統(tǒng)算法在道路分割過程中無法精確提取道路細節(jié)、易受顏色干擾的問題且避免傳統(tǒng)算法提取過程中的閾值確定問題。經(jīng)實驗證明,本文算法在平面地圖道路提取方面有較為準(zhǔn)確的分割精度和較低的誤判率、漏判率,可以提取到較為準(zhǔn)確的道路信息且不需要復(fù)雜的人工處理過程。因此可以將獲得的道路區(qū)域做進一步處理,為豐富平面地圖道路信息的多樣性等問題提供保障。