張 曉, 高忠文
(哈爾濱理工大學(xué) 自動(dòng)化學(xué)院,黑龍江 哈爾濱 150080)
橋梁工程是交通建設(shè)的重要組成部分,它的安全關(guān)系到人民群眾的生命。因此,應(yīng)加大對(duì)橋梁裂縫的檢測(cè)力度。目前,橋梁檢測(cè)主要依靠人工,借助于檢測(cè)車,利用高倍顯微鏡進(jìn)行近距離讀數(shù),其精度低,效率低,檢測(cè)主觀性大。近幾年,國內(nèi)學(xué)者使用數(shù)字圖像處理方法,對(duì)裂縫進(jìn)行檢測(cè)[1]。文獻(xiàn)[2]使用Sobel算子、Canny算子、小波變換、以及傅里葉變換等對(duì)橋梁裂縫進(jìn)行檢測(cè),運(yùn)算速度取得極大提升,但方法上存在嚴(yán)重局限性。文獻(xiàn)[3]采用數(shù)學(xué)形態(tài)學(xué)方法,對(duì)橋梁裂縫進(jìn)行圖像分割,但識(shí)別精度不高。文獻(xiàn)[4,5]運(yùn)用快速最小生成樹來解決圖像分割問題,分割標(biāo)準(zhǔn)是相鄰元素之間強(qiáng)度差異。該算法能夠保留低變異圖像區(qū)域的細(xì)節(jié),但忽略高變區(qū)域的細(xì)節(jié)。文獻(xiàn)[6]采用多尺度輸入圖像滲透模型設(shè)計(jì)橋梁裂縫檢測(cè)模型,使用最佳閾值分割濾除非裂縫區(qū)域,利用梯度信息提取裂縫。在計(jì)算裂縫面積時(shí),沒有考慮裂縫方向多樣性,造成得到結(jié)果誤差比較大。
針對(duì)上述不足,以橋梁裂縫為實(shí)驗(yàn)對(duì)象,提出一種圖搜索檢測(cè)裂縫邊緣方法,統(tǒng)計(jì)橋梁裂縫的像素?cái)?shù)目,從而計(jì)算橋梁裂縫寬度。然后將圖搜索算法與100倍帶光源讀數(shù)顯微鏡測(cè)量結(jié)果進(jìn)行對(duì)比,驗(yàn)證圖搜索裂縫算法的可靠準(zhǔn)確性。
橋梁裂縫一般比較小,不易觀察,為使檢測(cè)結(jié)果精確,采用高分辨率相機(jī)——尼康D850拍攝。拍攝過程中,不斷調(diào)整相機(jī)鏡頭,盡量使裂縫在相機(jī)成像清晰。拍攝圖片如圖1(a)所示。
裂縫寬度計(jì)算采用像素?cái)?shù)據(jù)與實(shí)際裂縫寬度數(shù)值轉(zhuǎn)換方法[7],根據(jù)透鏡成像公式
(1)
式中L′為像距,L為物距(相機(jī)和被測(cè)目標(biāo)之間的距離),f為相機(jī)鏡頭焦距。由式(1)可得
(2)
成像放大倍數(shù)θ為
(3)
式中A為裂縫尺寸,A′為裂縫圖像的像素?cái)?shù)。
由式(3)可得
(4)
式中L和f已知的情況下,如果測(cè)出裂縫圖像的像素?cái)?shù),可根據(jù)公式計(jì)算出裂縫尺寸。由式(2),式(4)可得
(5)
式中 35.9 mm為尼康D850傳感器最長邊物理尺寸,8 256為拍攝的圖像長邊像素點(diǎn)數(shù)。
為驗(yàn)證以上理論的準(zhǔn)確性,進(jìn)行一組模擬試驗(yàn)。已知某一線段寬平均大約0.40 mm,分別對(duì)拍攝距離為1 600,1 800,2 000,2 200,2 500 mm的圖像中線段進(jìn)行拍攝和測(cè)量,根據(jù)式(5)進(jìn)行試驗(yàn)計(jì)算,實(shí)驗(yàn)結(jié)果如表1。
表1 顯微鏡觀測(cè)值和計(jì)算值 mm
由表1可知,不同物距計(jì)算值與顯微鏡觀測(cè)值相差不到0.03 mm,該裂縫寬度計(jì)算方法滿足工程需求,可推廣到橋梁裂縫圖像采集和分析上。
在獲得裂縫圖像之后,需進(jìn)行以下工作:灰度化、二值化、濾波去噪、圖搜索(裂縫提取)、裂縫尺寸計(jì)算等。
拍攝圖片是彩色圖片,彩色圖片數(shù)據(jù)量增大3倍,導(dǎo)致存儲(chǔ)空間負(fù)擔(dān)過大,而彩色圖片信息并不好用,需將彩色圖片轉(zhuǎn)化為灰度圖。將橋梁裂縫圖灰度化后,如圖1(b)所示。
二值化過程中,使用OTSU算法進(jìn)行閾值分割[8],OTSU算法具有自適應(yīng)獲取分割閾值,使裂縫和背景自動(dòng)分離,達(dá)到最佳分割目的。二值化處理效果如圖1(c)所示。
從圖1(c)可以看出,一些噪聲點(diǎn)仍存在于二值化后的圖像上,為了提高橋梁裂縫提取準(zhǔn)確率,必須消除噪聲點(diǎn)。本文擬采用圖像平滑處理[9],選取某一點(diǎn),在該點(diǎn)8鄰域內(nèi),統(tǒng)計(jì)白點(diǎn)個(gè)數(shù),若白點(diǎn)個(gè)數(shù)大于黑點(diǎn)個(gè)數(shù),認(rèn)為該點(diǎn)灰度值為255,否則,該點(diǎn)灰度值為0。處理效果如圖1(d)所示。
圖1 裂縫圖像處理結(jié)果
將濾波去噪圖映射成帶有權(quán)值的有向圖,根據(jù)裂縫邊緣特點(diǎn),即灰度級(jí)間斷、亮度不連續(xù)性,通過圖搜索找到最小開銷路徑,以達(dá)到檢測(cè)裂縫邊緣的目的。
如圖2(a)所示,點(diǎn)p和q是四鄰接的像素點(diǎn),將邊緣定義為p和q之間邊界,邊緣像素就是由點(diǎn)p(xp,yp)和點(diǎn)q(xq,yq)來確定[10]。
由點(diǎn)p和q確定的邊緣像素都有相應(yīng)的開銷,定義為
c(p,q)=H-(f(p)-f(q))
(6)
式中H為圖像中灰度值最大值,f(p),f(q)分別為點(diǎn)p,q相應(yīng)的灰度值。這樣定義將圖像映射為帶有權(quán)值的有向圖,圖像中的每一個(gè)像素點(diǎn)為圖的每一個(gè)節(jié)點(diǎn),圖中兩像素點(diǎn)之間的權(quán)值也就是兩節(jié)點(diǎn)之間的開銷。
裂縫邊緣之間的像素有不連續(xù)的特性,造成裂縫邊緣像素之間的差值很大。如果點(diǎn)p,q恰好處在圖像邊緣上,f(p),f(q)二者差值的絕對(duì)值會(huì)很大;直接用f(p),f(q)二者差值容易產(chǎn)生負(fù)值,比較起來很麻煩。為了盡快尋找到裂縫邊緣,決定采用式(6)作為相鄰像素之間的權(quán)值。
當(dāng)已經(jīng)確定上一時(shí)刻追蹤方向,要做的是根據(jù)上一時(shí)刻方向,判斷出下一時(shí)刻追蹤方向,并且計(jì)算可能追蹤方向最小開銷值。假設(shè)確定上一時(shí)刻的邊緣像素就是圖3中所示的點(diǎn)p,q,追蹤方向是向下的箭頭,并且其為邊界像素,下一時(shí)刻追蹤方向會(huì)有3個(gè)(如圖2(b)所示)。
圖2(b)中(1),(2),(3)對(duì)應(yīng)的開銷表示的是c(n,q),c(m,n),c(p,m),然后計(jì)算并比較這三個(gè)值,取最小的開銷,記錄方向并且存儲(chǔ)此邊緣像素的坐標(biāo)位置。找到起始點(diǎn)后,以此類推,遍歷整幅圖片,確定開銷值總和最小的路徑,并標(biāo)記出來,裂縫就是開銷值最小的路徑。
圖2 像素點(diǎn)與追蹤方向示意
整體算法如下:
1)確定起始點(diǎn)的位置。
2)判斷起始點(diǎn)是不是孤立的點(diǎn),判斷方法:以此點(diǎn)為中心,取3×3模板,比較所得到的和與此點(diǎn)的值是否相等,若相等則舍去此點(diǎn);反之保留并存儲(chǔ)此點(diǎn)。
3)根據(jù)步驟(2)找到的起始點(diǎn),利用前面講到的理論,尋找起始追蹤方向,就是在起始點(diǎn)周圍尋找可能的追蹤方向,然后求出對(duì)應(yīng)的開銷,比較得出可能的追蹤方向的最小值,存儲(chǔ)邊緣像素的坐標(biāo)值,并且記錄此時(shí)最可能追蹤方向。
4)根據(jù)步驟(3)得到的最可能追蹤方向,還有與其相對(duì)應(yīng)下一時(shí)刻追蹤方向,求出它們相應(yīng)開銷值,比較取最小值,然后記錄此時(shí)追蹤方向并存儲(chǔ)邊緣像素的坐標(biāo)值。
5)重復(fù)執(zhí)行步驟(4)。在追蹤過程中,若每個(gè)追蹤方向的開銷值相等,可能進(jìn)入到噪聲區(qū)域,對(duì)于此種情況,舍去此起始點(diǎn);然后由下一起始點(diǎn)開始,從步驟(2)依次開始。
6)假設(shè)在得到的邊緣像素中,有一點(diǎn)坐標(biāo)與起始點(diǎn)坐標(biāo)一樣,就停止搜索。此時(shí)我們得到的全部邊緣序列,就是所需要的邊緣。
經(jīng)過圖搜索檢測(cè)的裂縫邊緣,沒有噪聲干擾,直接讀取裂縫邊緣的像素?cái)?shù)目,進(jìn)行裂縫尺寸寬度計(jì)算。主要有以下步驟:1)掃描圖3(a)中已經(jīng)確定為邊緣像素的點(diǎn)f(x,y),確定左右端點(diǎn);2)然后根據(jù)左右端點(diǎn),將該圖片旋轉(zhuǎn)至水平位置,并且放大到可以觀測(cè)清晰像素為止,如圖3(b)所示;3)橫坐標(biāo)不變,讀取縱坐標(biāo)值,比較縱坐標(biāo)最大差值,最大差值位置也就是最寬裂縫位置,統(tǒng)計(jì)像素?cái)?shù)目,并保存;4)根據(jù)式(5)進(jìn)行裂縫寬度計(jì)算。
圖3 圖搜索檢測(cè)后的裂縫邊緣
在100幅包含有橋梁裂縫的圖像上,進(jìn)行實(shí)驗(yàn)。將圖論搜索裂縫方法與迭代Canny算法、Snake算法以及Scharr算子等進(jìn)行仿真對(duì)比,如圖4所示。
圖4 圖論算法與其它算法分割效果對(duì)比
通過對(duì)比可知:
1)Scharr算子對(duì)像素的位置的影響作了加權(quán),可以降低模糊邊緣程度,簡單有效。但Scharr算子并沒有將橋梁裂縫和背景分開,嚴(yán)重影響裂縫寬度計(jì)算。
2)迭代Canny算法雖基本保留了橋梁裂縫邊緣細(xì)節(jié),分割之后仍保留有噪聲點(diǎn),影響像素?cái)?shù)目的統(tǒng)計(jì)。
3)Snake算法保留橋梁裂縫全部信息,但受其它噪聲影響,處理之后,邊界出現(xiàn)斷裂,影響像素?cái)?shù)目的統(tǒng)計(jì)。
4)在橋梁裂縫受到噪聲干擾下,通過實(shí)驗(yàn)對(duì)比,圖搜索算法得到的裂縫邊緣輪廓清晰,且邊緣連續(xù),滿足檢測(cè)橋梁裂縫的精度要求。
衡量算法標(biāo)準(zhǔn)主要包括:誤分率和檢測(cè)時(shí)間,誤分率是指在區(qū)分裂縫像素時(shí),錯(cuò)誤判斷裂縫像素?cái)?shù)目和判斷裂縫像素?cái)?shù)目總數(shù)之比,比較結(jié)果如表2所示。
表2 圖搜索與其它算法性能參數(shù)比較
由表2知,圖搜索算法在檢測(cè)橋梁裂縫過程中,誤分率最低,而且檢測(cè)時(shí)間也是最短的。由此表明圖搜索對(duì)干擾物進(jìn)行有效抑制,同時(shí)對(duì)橋梁裂縫邊緣細(xì)節(jié)性信息進(jìn)行保護(hù)。
在vs2013環(huán)境中開發(fā)裂縫測(cè)量系統(tǒng)軟件,核心算法用MATLAB 2014實(shí)現(xiàn)。選用100倍帶光源顯微鏡直接讀取待測(cè)裂縫寬度(測(cè)量范圍0.01~1 mm),表3為實(shí)驗(yàn)測(cè)量結(jié)果。
表3 實(shí)驗(yàn)測(cè)量結(jié)果
測(cè)量結(jié)果表明:軟件計(jì)算值誤差均低于0.03 mm,相對(duì)誤差隨著拍攝距離變化而變化?,F(xiàn)有條件滿足橋梁工程需求,如果拍攝距離在2 m以上,會(huì)有很大誤差,需要考慮換鏡頭。