洪漢玉,章秀華,程 莉,羅 梟,王萬里
(武漢工程大學圖像處理與智能控制研究所,湖北 武漢 430205)
目前,我國公路養(yǎng)護勘查技術已經(jīng)部分實現(xiàn)了自動化,但是很多具體工作還是需要人工完成.人工方式效率低、投資大、安全性差,影響交通,數(shù)據(jù)精度難以保證,并且無法對采集的信息做性能分析.隨著傳感技術和數(shù)字圖像處理技術的發(fā)展,基于視頻圖像的道路裂縫檢測技術具有良好的經(jīng)濟效益和發(fā)展?jié)摿Γ芽p是公路路面的常見病害類型,屬于二維線狀病害.我國公路主要以瀝青路面和水泥混凝土路面為主,水泥混凝土路面病害中,裂縫、破碎板、板角斷裂等也屬于二維線狀病害.國內(nèi)外對病害圖像處理的測評方法主要是傳統(tǒng)人工處理方法,通過在現(xiàn)場或者拍攝的車載圖像來確定裂縫的信息,這種方法雖然技術要求低,但是人工成本高,有用信息量低,并且信息獲取不穩(wěn)定,無法進行路面病害的定量分析;龍建武提出了利用灰度校正與自適應最小誤差閾值分割的裂縫提取處理方法[1],該方法能快速有效對裂縫進行提取,但僅僅能判斷該區(qū)域是否存在裂縫,而無法對裂縫進行評估,不能滿足現(xiàn)代公路管理的需求;Nejad等人提出BP神經(jīng)網(wǎng)絡方法,采用非線性分類算法對后期裂縫分類檢測[2-3],這種方法能判斷路面病害類型,但由于處理算法比較復雜,且無法對裂縫的性能做出統(tǒng)計和描述,難以推廣利用;Zou研究了Crack Tree方法在裂縫提取分析中的應用[4],提出了采用張量投票算子的方法對裂縫圖片進行處理,使用Crack Tree方法找到整個裂縫區(qū)域,運算速度大大提高,但Crack Tree起點和終點的確定仍然是一個有待解決的問題.
對路面裂縫進行測評的過程就是統(tǒng)計裂縫詳細信息的一個過程.根據(jù)交通部對路面病害檢測標準的要求,需要知道病害的形態(tài)如位置、長度、寬度和面積等統(tǒng)計信息.
筆者針對提取出的道路裂縫病害信息進行裂縫的性能分析,通過膨脹和細化處理獲得裂縫骨架,利用游碼和鏈碼信息記錄裂縫的幾何形態(tài)特征,對裂縫檢測結果進行特征定義和描述,完成裂縫病害的形態(tài)特征分析.
先采用基于非負性特征的裂縫提取方法對路面圖像進行裂縫提?。?].為了連接裂縫提取過程中因灰度信息微弱而出現(xiàn)斷裂的裂縫,采用膨脹處理方法.膨脹操作是形態(tài)學處理的基礎.A和B是Z2中的集合,?為空集,A被B膨脹的定義為:
式(1)是以得到B的相對于它自身原點的映像并且由x對映像進行位移為基礎的.A被B膨脹是所有位移x的集合,這樣B和A至少有一個元素是重疊的,為了保持裂縫特征的連續(xù)性,防止裂縫提取的不完整,筆者利用膨脹處理使得部分斷開的裂縫連接起來.
圖像細化處理是為了提取目標的骨架,即將原圖像中線條寬度大于一個像素的線條細化成只有一個像素寬的骨架,形成骨架后易于分析圖像,如提取圖像的特征.細化的基本思想是“層層剝奪”,即從線條邊緣開始一層一層向里剝奪,直到線條的寬度只有一個像素為止.進行細化算法前要先對圖像進行二值化,細化算法如下:
在圖像中取檢測點的8個鄰域(由于是并行細化,有些模板要擴展為12鄰域),如圖1所示,圖1(a)中o為檢測點,x為其相鄰點.事實上經(jīng)過細化算法的8個經(jīng)典模板處理后還有圖1(b)和圖1(c)兩種特殊邊沿點保留了下來.筆者在試驗中的解決方法是在并行細化后再進行一次串行細化,選取圖2中優(yōu)化后的模板a和模板b.
圖1 特殊邊沿點Fig.1 Special edge point
圖2中處理模板a解決了特殊邊沿點1,處理模板b解決了特殊邊沿點2,這是串行細化處理,以便更好分析圖像.
圖2 處理模板Fig.2 Processing template
游程碼可用來記錄連續(xù)的白色像素和黑色像素的數(shù)目[6],鏈碼可用于邊界描述和特征提取,比如角點、面積、周長等等.
圖像像素的連通性可分為4鄰域和8鄰域.4鄰域連通性指像素在4個方向延伸,用0,1,2,3方向碼分別對應著上下左右4個方向;而8鄰域連通性指像素在8個方向延伸,每一個方向賦以一個方向碼,用0,1,2,3,4,5,6,7分別對應著8個方向.圖3(a)、圖3(b)分別是4鄰域和8鄰域方向碼.筆者采用8鄰域方向碼,由于裂縫跟蹤的需要,定義含8個元素的二維數(shù)組:Direct[8][2]={{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{1,1}},其鄰域方向碼值為d,當前點坐標,鄰域點坐標表示為:
圖3 鄰域方向碼與方向碼優(yōu)先示意圖Fig.3 Illustration of neighborhood direction code and direction code precedence
在跟蹤過程中,當碰到多個分支時,傳統(tǒng)的鏈碼法則視為“干擾”而丟掉信息,同時對塊圖像問題也無能為力.針對上述情況,筆者引入優(yōu)先級的概念,提出優(yōu)先級方向碼-1,1,-2,2,-3,3,4};Prior[k])%8.
分析裂縫骨架分枝信息,建立分枝結點鏈表.分枝信息的遍歷為深度優(yōu)先遍歷,深度遍歷按從小到大的順序進行,越到后面,其跟蹤點離根接點越遠.遍歷過程如下:
①按照柵格掃描順序從上到下從左到右,找到右上角滿足條件的端點(根接點),將端點指向的鄰域點作為第一個結點的分支存入棧(結點分支存儲圖),添加坐標和方向信息,同時標記已訪問點.開始遍歷骨架,并計算相應的鏈碼;
②訪問自上一結點而來的分支,當遇當前分支結點時,按照優(yōu)先方向碼,一方面將結點除最高優(yōu)先級外的其他方向存入棧,并添入相應信息;另一方面接著訪問最高優(yōu)先級方向的分支段,同時標記已訪問接點;
③重復過程②操作,直到訪問當前分支的末端點.即該點周圍除來的方向外沒有未被標記的點,認為自當前分支結點而來的分支段結束.接著到棧中訪問下一分支;
④從棧中新的分支結點開始,按照過程②和過程③操作,直到自新的分支結點而來的分支訪問到分支結束點.訪問棧中下一分支;
⑤重復過程②~④操作,不斷的從棧中取出新的結點分支,直到整棵樹被遍歷;
⑥按照①~ ⑤操作訪問下一棵樹,最后整幅細化圖被遍歷,跟蹤結束.
定義結點分支的結構體Nodetree:
struct*Nodetree{DWORDx;DWORDy;DWORDd;};
其中,x為結點分支點縱坐標,y為結點分支點橫坐標,d為指向結點分支點的方向.
最后一步是刪除目標區(qū)域中的短鏈.為此筆者采用區(qū)域生長的長度閾值法刪除短鏈,具體的操作步驟如下:
①利用鏈碼跟蹤所得到的各棵樹的坐標信息,可以計算各棵樹的重心坐標,利用統(tǒng)計特征,得到計算公式:
②筆者認為其長度小于某一閾值length的鏈為噪聲,對其進行重點排查.以此鏈重心為中心,在length×length的窗口內(nèi)尋找是否存在除自身外的較長的鏈,若不存在,則認為其為孤立的噪聲點予以刪除,否則,保留此鏈;
經(jīng)過去除短鏈的操作后,圖像上的裂縫部分幾乎沒有受到刪除短鏈操作的影響,孤立的噪聲鏈均被刪除,效果較為明顯.
設H為裂縫水平方向投影的長度,W為裂縫垂直方向投影的長度,則定義:
一般橫向裂縫的L1比較小,在區(qū)間(0,1)中,L=L1;縱向裂縫L1比較大,在區(qū)間(1,+∞)中,L=1/L1;在區(qū)間(0,1)里,L值靠近下界0的為縱向裂縫或橫向裂縫,靠近上界1的為其他幾種裂縫.但是對于有一定角度傾斜的縱向裂縫,角度傾斜大到某一值后,很容易把它判屬于網(wǎng)狀裂縫.為此,采用矩形度特征以準確判斷.
裂縫矩形度R定義為:
式(5)中:A0為裂縫所占的區(qū)域面積,AL為裂縫最小外接矩形的面積,R的大小反映裂縫覆蓋的區(qū)域充滿裂縫最小外接水平矩形區(qū)域的能力.
從公路狀況評價出發(fā),需對路面裂縫特征進行定量描述,在此定義裂縫特征結構體如下:
Typedef struct{long iType;long iTL;long i TL;long iBR;long iBR;long iCrack-Width;long iCrack Length;float f Area;long iGrade;}CRACKINFO;
(1)破損類型i Type:
iType=0表示橫向裂縫;iType=1表示縱向裂縫;i Type=2表示網(wǎng)狀裂縫.
(2)破損的位置(最小外接矩形區(qū)MER):
(3)裂縫寬度iCrackWidth和長度iCrack Length:
iCrack Width表示裂縫寬度(以像素計);iCrack Length表示裂縫長度(以像素計).
(4)破損區(qū)域的面積f Area:
f Area表示破損區(qū)域的面積,即裂縫在最小外接矩形區(qū)MER中覆蓋的面積.
(5)病害程度iGrade:
以裂縫寬度為依據(jù),0—輕,1—中,2—重.
為測試本文算法效果及性能,在微機(Pentium IV,2.40 GHz,1 G)上對大量路面裂縫病害圖像進行一系列的測試,實驗結果如下.
圖4(a)、圖5(a)、圖6(a)為采集到的路面圖像,圖4(b)、圖5(b)、圖6(b)為裂縫特征圖像,而圖4(c)、圖5(c)、圖6(c)分別為膨脹處理圖像.從圖4(c)、圖5(c)、圖6(c)中可以看出,膨脹處理后將斷開的裂縫連接起來了.
圖4 龜裂裂縫特征處理結果Fig.4 Processing results of cracking images
圖5 塊裂縫圖像處理結果Fig.5 Processing results of block crack images
圖4(c)、圖5(c)、圖6(c)裂縫圖片為膨脹處理后得到的圖片信息,經(jīng)過細化處理后分別得到圖4(d)、圖5(d)、圖6(d).
圖6 橫裂縫圖像處理結果Fig.6 Processing results of lateral crack images
從圖4(d)、圖5(d)、圖6(d)統(tǒng)計出的裂縫形態(tài)特征如下:圖4(d)中有2條裂縫,其中一條裂縫有35個節(jié)點個數(shù),長寬比為11∶7,裂縫病害類型為龜裂裂縫,裂縫的區(qū)域如圖7(a)所示,破損區(qū)域的面積大小為811 623個像素,病害程度為中.從圖5(d)中統(tǒng)計的信息為裂縫有20個節(jié)點,裂縫長寬比為3∶4,裂縫為塊裂,破損區(qū)域面積為792 369個像素,病害程度為中.從圖6(d)中統(tǒng)計的信息為裂縫節(jié)點為0,裂縫長寬比為1∶9,為橫向裂縫,裂縫定位區(qū)域如圖7(b)所示,破損區(qū)域的面積大小為194 304個像素,病害程度為輕.
圖7 裂縫區(qū)域Fig.7 Pavement crack area
筆者提出了道路病害形態(tài)特征的圖像分析方法.利用形態(tài)學中膨脹和細化處理,提取裂縫骨架.采用鏈碼和游程碼統(tǒng)計裂縫的拓撲和幾何信息,記錄裂縫節(jié)點個數(shù)和位置、裂縫的形態(tài)和長度等信息,便于對裂縫進行定量分析.實驗結果表明該方法能定量地對道路病害形態(tài)特征進行分析,為道路病害的檢測提供科學依據(jù).
致謝
北京星通聯(lián)華科技發(fā)展有限公司和中交路橋(北京)科技有限公司對該算法進行多次測試,在此表示感謝!
[1]龍建武,申鉉京,陳鵬海.自適應最小誤差閾值分割算法[J].自動化學報,2012,38(7):1134-1144.LONG Jian-wu,SHEN Xuan-jing,CHENG Penghai.Adaptive minimum error thresholding algorithm[J].Acta Automatica Sinica,2012,38(7):1134-1144.(in Chinese)
[2]NEJAD F M,IAKERI H.An optimum feature extraction method based on Wavelet-Radon Transform an Dynamic Neural Network for pavement distress classification[J].Expert Systems with Applications,2011,38(8):9442-9460.
[3]韓宏,楊靜宇.神經(jīng)網(wǎng)絡分類器的組合[J].計算機研究與發(fā)展,2000,37(12):1488-1492.HAN Hong,YANG Jing-yu.Combination of neural network classifiers[J].Journal of Computer Research and Development,2000,37(12):1488-1492.(in Chinese)
[4]ZOU Qin,CAO Yu,LI Qingquan,et al.Crack Tree:Automatic crack detection from pavement images[J].Pattern Recognition Letters,2012,33(3):227-238.
[5]洪漢玉.現(xiàn)代圖像圖形處理與分析[M].武漢:中國地質(zhì)大學出版社,2011.HONG Han-yu.Advanced processing and analysis for image and graphics[M].Wuhan:China University of Geosciences Press,2011.(in Chinese)
[6]魯光泉,許洪國,李一兵.基于鏈碼檢測的直線段檢測方法[J].計算機工程,2006,32(14):1-3,10.LU Guang-quan,XU Hong-guo,LI Yi-bing.Line segment detection based on chain code detection[J].Computer Engineering,2006,32(14):1-3,10.(in Chinese)