郭香蓉,李 鴻
(長沙理工大學電氣與信息工程學院,湖南 長沙 410004)
道面裂縫是道路損傷中最常見的一種,傳統人工檢測的方法效率低下,依賴于檢修工人的經驗,判斷標準主觀性大,且在高速公路等特殊道面實施困難。近年來,隨著計算機技術和圖像識別技術的飛速發展,利用計算機對道面裂縫圖像進行自動識別檢測已成為裂縫檢測的主要手段之一。
國內外圍繞自動化的裂縫檢測做了大量工作:一些學者認為圖像邊緣檢測方法直接影響裂縫檢測準確性,采用了多種邊緣檢測算法(Canny,Prewitt,Sobel,LOG,Roberts,SUSAN)及其改進算法來解決這一問題[1-3],這類算法是解決圖像識別問題的通用方法,主要思路是求解二維實函數梯度,然后選取合適的閾值提取圖像邊緣,該方法在受到不均勻光照和道面紋理等噪聲干擾時,識別準確率降低。一些學者致力于尋找道路裂縫的獨有特征,從道路裂縫的點、線、紋理和變換域特征入手,在特征提取上做了大量研究[4-6],此類算法較傳統全局閾值算法而言,具有較強的抗噪能力,提高了道面裂縫識別準確率。隨著模式識別方法的深入發展,學者們在提取裂縫特征的基礎上,設計各種分類器對道路裂縫進行識別,包括K近鄰、支持向量機和神經網絡等人工智能方法[7-9],此類方法實現了大量樣本的快速檢測,但在識別的準確率上還有待提高。
道面裂縫識別實際上是一個分類問題,二分類的思路:存在裂縫和不存在裂縫。現行的研究中將其作為二分類問題處理的較多,但在實際檢測過程中,人們希望細分出裂縫的類型,以便能夠分類修復。本文將道面裂縫的類別簡化為點狀裂縫、線狀裂縫和網狀裂縫三種類型,將道面裂縫檢測作為一個多分類問題來解決。為了提高單一學習算法的檢測率,降低虛警和漏警率,從提高分類器性能的角度出發,引入元學習的概念,提出了基于集成學習[10-11]的道面裂縫檢測方法。首先,對道路裂縫特征進行提取,并分別選取訓練樣本和測試樣本;其次,選擇基本分類器,通過Stacking策略訓練出分類效果更強的元分類器,以提升檢測率;最后,將待測試的樣本輸入,檢驗識別效果。希望通過以上方法,實現對大規模道面裂縫樣本的快速、準確檢測,減少人力物力投入。
在陽光的照射下,利用數碼照相機對道面圖像拍攝,光軸應與道路表面垂直,且側邊平行于路基,得到分辨率為1536×2048,像素范圍為0-255的彩色圖像,對其進行灰度化和二值化處理,獲得圖像P,每個像素約對應1 mm2的道面。為了滿足計算性能(較快的處理速度和較小的內存)和計算精度要求,將互不重疊的大小為75×75的圖像考慮為一個圖像單元[12],則一幅圖像共由20×27個圖像單元組成。計算出每個單元的像素均值和像素標準差,組成兩個20×27的矩陣:均值矩陣Mm和標準差矩陣STDm。分別在水平方向和垂直方向對圖像掃描,尋找裂縫的像元,進而生成二進制矩陣Mm。包含明顯裂縫象元的像素塊標記為“1”,其余的標記為“0”。柵格化后的道面結果如圖1所示。

圖1 裂縫圖像柵格化處理
如圖1所示,用柵格圖像來逼近一個實體圖像,可以有效減小存儲空間,且柵格數據不連續,易于擴充。點裂縫在柵格圖像中表現為一個圖像單元,線裂縫表現為連續的若干圖像單元的集合,網狀裂縫是若干線裂縫組成且有公共的圖像單元。這里需要注意,圖像單元劃分過小會增加裂縫識別中虛警的概率,若圖像單元過大則不容易識別出細小的裂縫,漏警的概率將增大。
預處理中,為了解決背景照明不均勻的問題,首先對每一張圖像樣本像素強度歸一化。這樣能夠將相同的平均像素強度的圖像單元標記為“0”(作為背景),而裂縫像素因為較暗具有較小的平均像素強度,這類樣本能夠更好地區分出來。
當強光照射在水泥和柏油等道面上時,因為鏡面反射原理道面會出現一塊亮斑,無裂縫的道面的像素強度標準差會明顯增大,最終導致有裂縫道面和無裂縫道面的標準差(std)值很接近,使STDm判別指標失效。為了解決這一問題,引入飽和度概念:高于某個閾值(所有圖像像素強度的均值)的像素強度將被這一均值替代。這樣處理后圖像只會稍暗,而不會丟失裂紋信息,STDm的識別功能將顯著提升,與Mm共同反映裂紋信息。
下面提取圖像特征,前文提到圖像的像素均值矩陣Mm和像素標準差矩陣STDm對于道面裂縫有很好的識別能力。在此基礎上,將其轉化為特征量,使其能夠作為輸入在分類算法中進行學習分析。
1)像素分布密度
定義像素分布密度為裂縫圖像中裂縫區域像素占圖像總像素的百分比
(1)
式中,式中,m、n分別為矩陣Mm和的行數和列數。這是一個非常簡單的判別指標:裂縫越密集,像素分布密度值越大。但該指標也存在一定缺陷:當圖片噪聲較多時,無裂縫的道面也存在一定幾率識別為裂縫道面,且若線狀裂縫長度較長,與網狀裂縫難以區分開,因此需要結合其它特征。
2)Mm和STDm在水平和垂直方向的投影:

(2)

(3)
(4)

(5)
式中,m、n分別為矩陣Mm和STDm的行數和列數。通過對像素均值和標準差的投影可以發現,若存在點狀裂縫,在投影的波形中會出現一個凸起的尖波;若存在線狀裂縫,將會出現一個波峰;若存在網狀裂縫,X軸和Y軸方向會出現明顯的多個波峰。客觀上說明像素均值和標準差均對裂縫的種類具有一定識別能力。
為了考察各圖像單元像素的突變情況,分別對式(2)~(5)的四個投影序列作差分運算,并對其絕對值累加
(6)
(7)
(8)
(9)
根據投影的特征,PX、PY、QX和QY可以反映不同種類的道路裂縫信息,其值越大代表裂縫累積越顯著。
將提取的道路特征信息構成5維特征向量(fx,PX,PY,QX,QY)。為避免數據維度的差異對分類精度造成影響,采用最大最小值的方法對數據樣本進行歸一化處理
(10)
式中,X為樣本特征量,Xmin和Xmax分別為變量X取最大值和最小值,Y∈[-1,1]為歸一化后的變量。
近年來,集成學習方法是以多個弱監督模型訓練出一個強監督模型的學習方法。若其中的一個弱分類器因對模型擬合不好而出現了錯誤的判斷,其它的弱分類器能夠將這一錯誤分類糾正回來,能夠較好地解決一些非線性問題。Stacking算法主要有以下5個步驟:
step1:將原始數據集分為3組;
step2:第1組數據集用于訓練多個弱分類器,獲得訓練好的基本分類器;
step3:將第2組數據集輸入訓練好的基本分類器中,獲得不同類別的輸出,將輸出的結果組成元數據集。
step4:選擇合適的分類算法,用元數據集訓練元分類器。
step5:將第3組數據集作為測試集,輸入到各基本分類器中,獲得最終分類結果。
元分類器可以是基本分類器中的一種,一般而言,單個分類器效果越好分類結果越好,而集成學習后分類效果更加優于單個分類器。
支持向量機作為分類算法,具有良好的推廣能力和避免收斂到局部極小點等優點,分類效果較好。近年來,最小二乘支持向量機(LS-SVM)是近年來統計學習理論的重要成果之一,它將傳統SVM算法中的經驗風險由偏差一次方轉變為偏差的二次方,用等式約束替換不等式約束,進而轉化二次規劃為線性方程組,提高了運算效率。在這里選擇LS-SVM作為元分類器。其基本描述如下:
設樣本數據訓練集為S={(xi,yi),i=1,2,…,l},xi∈Rn是第i個訓練樣本的輸入向量,yi∈R是相對應的輸出,LS-SVM用非線性映射函數Φ(x)將輸入數據映射到高維空間中進行線性估計。其線性回歸函數為
f(x)=ωTΦ(x)+b
(11)
式中b是映射偏置,ω是特征空間權值向量。
為了同時減小預測誤差和計算復雜度,基于總體風險最小化原則,對問題進行優化
(12)
S.t.yi=ωTΦ(xi)+b+ei
(13)
式中,γ為正則化參數;ei為回歸誤差。
這里引入拉格朗日乘子,將式(12)轉變為無約束對偶空間優化問題,即
(14)
對上式的ω、b、e、α求偏導,可得該拉格朗日函數的最優化約束
(15)
根據最優化約束,約去ei和ω,將等式轉化為矩陣形式:
(16)
矩陣中,β=[1,…,1],Ωkj=K(xk,xj)為核函數矩陣,核函數K(xk,xj)可從徑向基核函數(Radical Basis Function,RBF)、Sigmoid核函數和多項式核函數(Polynomial)中選取。拉格朗日乘子α=(α1,α2,…,αl)T,Y=(y1,y2,…,yl)T。
本文采用RBF核函數,其表達形式如(17)所示,其中σ為RBF核函數寬度系數。
(17)
通過以上推導,可以獲得LS-SVM預測函數
(18)
在本文中,樣本輸入向量為x,即識別裂縫的特征量;f(x)是道路裂縫特征量與裂縫類型之間的映射關系。傳統的SVM是典型的二分類器,僅能得到“存在裂縫”和“不存在裂縫”兩種識別結果。為了在“存在裂縫”中繼續檢測出裂縫的類別,需要構造多分類向量機。
這里,從減少計算復雜度的角度出發,選擇“一類對一類”的方法。因路面裂縫主要有點狀裂縫、線狀裂縫和網狀裂縫三種(k=3),因此將分類器的數量設置為k(k-1)/2=3。采用投票法進行分類,如圖2所示。

圖2 “一對一”多分類向量機應用于裂縫檢測
對于任意裂縫樣本x,共需要三種分類機,分別為點狀裂縫和線狀裂縫分類機H1、點狀裂縫和網狀裂縫分類機H2、線狀裂縫和網狀裂縫分類機H3,樣本分別輸入其中進行識別。在第一個分類機中,若樣本x屬于點狀裂縫,則該類票數加1,反之線狀裂縫類別加1;該樣本x繼續輸入分類機H2、H3,完成投票后,得票數最多的類別即為該樣本x的類別。當投票結果為1:1:1時,為不可識別區域G,由于該區域內數據較少,對分類精度的影響可以忽略不計。
為了獲得元分類器,將數據集分為三組,第一組用于訓練基本分類器,第二組輸入基本分類器獲得元數據集,第三組用于測試。在基本分類器的選擇上,可選擇僅參數改變的同一分類器,也可選擇不同學習算法相結合的異質分類器。本文中選擇K近鄰、樸素貝葉斯、BP神經網絡和多分類SVM作為基本的學習算法。其基本流程如圖3所示:

圖3 集成學習裂縫識別模型
這里,四個基本分類器的輸出分別為“屬于正負類的樣本點數量”、“后驗概率”、“權值”以及“點到超平面的距離”。它們構成了元數據集,用于訓練多分類SVM元分類器,這個元分類器將多個基本分類器的分析結果進行二次學習,對道面裂縫情況進行識別。
在數據采集階段,將原始數據分為3部分,其樣本量分別為400、200、100,在這些樣本中,4類樣本的數量是完全均衡的,裂縫樣本圖像如圖5所示。

圖4 裂縫樣本選取
在訓練階段選擇樣本時,要注意裂縫樣本的多樣性,特別是一些線狀裂縫,要將多條方向平行的線狀裂縫與網狀裂縫區分開來,避免給圖像貼上錯誤的標簽,導致分類效果降低。
在元分類器的訓練階段,通過網格搜索法確定核函數寬度系數σ與正則化參數γ取值并進行交叉驗證法,引入均方根誤差RMSE的概念
(19)
RMSE表示復雜裂縫類別的預測值和實際值的均方根誤差。參數尋優結果如圖5所示。

圖5 σ和γ參數尋優
根據圖6可以求得使RMSE誤差最小的參數σ=35.2591和γ=0.0013。
將采集到的圖像分為3組,經過預處理后輸入到學習模型中,獲得集成學習方法對道面裂縫的檢測結果。另外,將第3部分測試數據集輸入到訓練好的基本分類器中,可以獲得單一的分類器對道路裂縫的檢測結果,作為集成學習檢測道面裂縫的對照組。其檢測結果如表1所示。

表1 各分類算法的識別率
從表1中的試驗結果可知,采用不同的四種基本分類器識別準確率均在80%以上,對集成學習分類器的檢測有促進作用,可以作為基本分類器使用。對道面裂縫檢測的準確率從低到高依次是KNN算法、樸素貝葉斯、BP神經網絡、LS-SVM和集成學習算法。另外,各分類器對無裂縫樣本和點狀裂縫樣本的檢測率是較高的,但由于點狀裂縫的像素突變不明顯,容易被錯誤分類為無裂縫樣本。LS-SVM和集成學習算法對這種點狀裂縫的識別效果是較好的,特別是集成學習算法,對無裂縫和點狀裂縫的檢測率達到了100%。此外,多條方向不同的線狀裂縫易檢測為網狀裂縫,因此從試驗結果來說網狀裂縫的檢測率是高于線狀裂縫的。
為了進一步驗證提出算法對模型檢測裂縫效果的提升,將以上4種基本分類器的檢測結果與提出算法的結果共同繪制了接收機工作特性曲線(ROC曲線),反映虛警率與檢測率的關系,是衡量分類性能的重要指標。結果如圖6所示。

圖6 ROC曲線
以虛警概率為x軸,檢測概率為y軸,圖6中各分類器檢測性能由弱到強依次是:KNN、樸素貝葉斯、BP神經網絡、LS-SVM、集成學習方法,其中,BP神經網絡與LS-SVM效果相當。在相同檢測概率的情況下,提出的集成學習方法的虛警率低于其它單一的分類方法;相同虛警概率的情況下,集成學習算法的檢測率最高,說明了該算法能有效地提升各基本分類算法的道面裂縫檢測率,降低了道面裂縫的虛警率。
1)將道面裂縫識別問題考慮為一個多分類問題,提出了一種基于集成學習的路面裂縫檢測算法,以提高智能識別算法對路面裂縫的檢測率。
2)選擇LS-SVM作為元分類器,從而省去了對時間復雜度高的不敏感損失函數的運算,縮短了計算時間,運行速率較快。
3)仿真結果表明,提出的算法具有較高的檢測率,且虛警現象得到了明顯改善。在下一步的工作中,將主要針對線狀裂縫錯誤分類為網狀裂縫的問題展開研究。