吳生宇,李明心,林靖宇
(廣西大學(xué) 電氣工程學(xué)院,南寧 530004)
隨著高層乃至超高層建筑物的建成[1],隨之而來的高層建筑物養(yǎng)護(hù)和安全保障等問題也變得越來越重要.在實(shí)際的工程中,建筑物外墻面檢測也是在慢慢的從人工到半自動化發(fā)展的,從最開始的使用固定吊繩近距離檢測到遠(yuǎn)距離固定位置紅外技術(shù)檢測.為了方便快捷的檢測需求,不斷地提出新的方法思路并在實(shí)際應(yīng)用和實(shí)踐中加以改善.高層建筑物外墻面檢測目前通用的方法還是通過人工觀察的方式來完成,其效率低,速度慢,存在很大的問題,很難適應(yīng)高層建筑安全保障現(xiàn)代化的發(fā)展需求.因此,高層建筑物外墻面檢測技術(shù)要求從人工檢測向智能自動化檢測方向發(fā)展.
目前基于圖像的裂縫自動檢測算法,大多應(yīng)用在檢測路面裂縫及其橋梁裂縫方面,而應(yīng)用在墻面檢測方面較少.國內(nèi)外許多相關(guān)領(lǐng)域的學(xué)者進(jìn)行了大量研究,提出了多種裂縫檢測算法和理論.關(guān)于裂縫的檢測算法大致分為4類:1)基于幾何分析的方法[2];2)基于分塊分析的方法[3];3)基于灰度統(tǒng)計的方法[4];4)基于邊緣檢測的方法[5];這些算法對裂縫檢測時取得了較好的效果,但是在用這些算法檢測裂縫時,由于部分裂縫過窄或被灰塵填充或在預(yù)處理過程中產(chǎn)生的裂縫斷裂,導(dǎo)致檢測出的裂縫目標(biāo)不連續(xù),而這些方法沒有對裂縫進(jìn)行連接,或者只是直接對相鄰裂縫的鄰近端點(diǎn)連接,如K-D樹[6]連接算法,連接效果不佳,并未表達(dá)出真實(shí)裂縫的完整骨架結(jié)構(gòu),嚴(yán)重影響后續(xù)的裂縫參數(shù)測量和評估.
建筑物表面圖像的獲取是進(jìn)行建筑物外墻裂縫危害檢測的第一步,是后續(xù)所有工作的基礎(chǔ).建筑物越大,獲取完整的表面圖像需要花費(fèi)越多的時間,而且越高的建筑物,對于建筑物表面圖像的獲取越不容易.爬行機(jī)器人[7]、無人機(jī)[8]等幾種是目前較新的圖像獲取技術(shù),這些技術(shù)解決了傳統(tǒng)建筑物外墻圖像獲取的效率低、危險性大等問題.J.P.Zavala De Paz等人[9]設(shè)計了一款帶有傳感裝置的攀爬機(jī)器人,將立體攝像機(jī)安裝在一個六足機(jī)器人的胸部來獲取圖像信息,將獲得的圖像通過對光照模式的估計和去除,對圖像進(jìn)行改進(jìn),然后基于灰度統(tǒng)計的方法采用Otsu方法進(jìn)行閾值處理,最后利用形態(tài)學(xué)運(yùn)算提取裂縫信息;Jitesh J.Dhule等人[10]通過控制無人機(jī)的飛行、起飛和垂直降落來捕捉建筑物外墻的圖像,然后基于邊緣檢測的方法采用Sobel算子識別建筑物垂直墻裂縫的邊緣來獲得裂縫的信息.
本文提出一種基于NEAR模型的大型建筑物外墻裂縫連接算法,該算法首先對獲取的墻面圖像進(jìn)行裂縫提取;然后用基于NEAR模型來表達(dá)提取后裂縫之間的連續(xù)性,最后采用二次貝塞爾插值完成裂縫連接,流程圖如圖1所示.
圖1 裂縫連接流程圖Fig.1 Crack connect diagram
裂縫的提取包括粗提取和細(xì)提取兩部分.首先將獲取到的大型建筑物外墻面圖像經(jīng)過灰度轉(zhuǎn)換、灰度線性變換增強(qiáng)[11]、雙邊濾波去噪[12]等預(yù)處理,然后結(jié)合OpenCV來實(shí)現(xiàn)裂縫的粗提取,分割出前景和背景部分.在雙邊濾波去噪時,有時會存留下一些較大的噪聲,所以本文設(shè)置了一個閾值 H 來對裂縫粗提取后的所有連通域進(jìn)行篩選,將面積小于閾值的連通域剔除掉,得到粗提取的墻面裂縫二值化圖像,H根據(jù)具體情況而定,由實(shí)驗(yàn)得到的經(jīng)驗(yàn)值,H取為10~15較合適.
采用連通域幾何參數(shù)篩選法實(shí)現(xiàn)裂縫的細(xì)提取.裂縫一般被認(rèn)為是一個具有一定長度走向的細(xì)長目標(biāo),具有連續(xù)、長寬比例懸殊、走向呈放射狀等特點(diǎn),根據(jù)這些限制條件將裂縫標(biāo)識出來的方法我們稱為連通域幾何參數(shù)篩選法[13].裂縫具體識別指標(biāo)有如下四個:
1)連通域的面積:指二值化后連通域中的像素個數(shù);
2)連通域的最小外接矩形長寬比:表示該連通域的伸展情況,目標(biāo)最小外接矩形的長與寬的比值;
3)連通域的矩形度:表示連通域的外觀接近矩形的程度,目標(biāo)面積和最小外接矩形面積之間的比值;
4)連通域的圓形度:表示連通域的外觀接近圓形的程度,目標(biāo)面積和最小外接圓面積之間的比值.
獲取的裂縫圖像中,連續(xù)裂縫由于過窄或被灰塵填充或在預(yù)處理過程中產(chǎn)生斷裂,就有可能造成最后檢測的裂縫目標(biāo)不連續(xù)、不完整,嚴(yán)重影響對于裂縫參數(shù)的評定.為了能夠更加準(zhǔn)確的獲得裂縫的完整性,更加準(zhǔn)確的評價墻面破損程度,本文提出了一種基于NEAR模型的裂縫連接算法對斷裂的裂縫進(jìn)行連接.
本文的NEAR模型是根據(jù)裂縫經(jīng)過細(xì)化后的走向特征類似于山脊線而提出的.首先定義裂縫:S=(L,δ(L)),其中,L是裂縫的山脊線特征,δ(L)是裂縫的寬度信息.
NEAR模型的定義及根據(jù)NEAR模型判斷相鄰裂縫是否屬于同一裂縫,算法如下:
1)對細(xì)提取后的連通域進(jìn)行山脊線提取[14],得到山脊線集合L={L1,L2,…,Ln},并根據(jù)ε=f(δ(L))得到相應(yīng)鄰域半徑εi,i=1,2,…,n.其中,f(·)根據(jù)具體情況選取,可為線性函數(shù)、平方根函數(shù)等等.由此可得山脊線的鄰域表示,如公式(1).
U={Uε1(L1),Uε2,(L2),…,Uεn(Ln)}
(1)
2)鄰域調(diào)整,整合裂縫,即將屬于同一條裂縫的山脊線歸為一類.山脊線鄰域評價模型見公式(2):
(2)
算法過程圖如圖2(a)-圖2(h)所示.
圖2 NEAR模型算法過程Fig.2 Rideline neighborhood evaluation model algorithm process
經(jīng)過NEAR模型判斷之后,可以得到屬于同一裂縫的山脊線和對應(yīng)的鄰域,接下來將屬于同一裂縫的所有山脊線進(jìn)行連接,其中裂縫連接方法目前大多數(shù)是直線連接,而本文采用的是形如裂縫走勢的曲線連接,曲線連接的擬合度會比直線連接的擬合度高,更符合裂縫的骨架結(jié)構(gòu).實(shí)現(xiàn)本文曲線繪制的方法采用的是二次貝塞爾插值方法.即山脊線與山脊線的連接采用二次貝塞爾插值方法,二次方貝塞爾曲線公式見公式(3),繪制原理過程圖如圖3(a)-圖3(d)所示:
B(t)=(1-t)2Pi+2t(1-t)Pk+t2Pj,t∈[0,1]
(3)
其中B(t)表示要繪制的曲線,Pi表示起始點(diǎn)坐標(biāo),Pk表示控制點(diǎn)坐標(biāo),Pj為終點(diǎn)坐標(biāo).
圖3 二次貝塞爾曲線繪制原理過程Fig.3 Quadratic Bezier curve drawing principle process
山脊線與山脊線的連接具體步驟如下:
1)以確定的山脊線的各區(qū)間的像素點(diǎn)作圓,圓心為山脊線上的像素點(diǎn)坐標(biāo),直徑為該像素點(diǎn)對應(yīng)的山脊線區(qū)間的裂縫寬度.
2)找出Li、Lj兩條相鄰山脊線的鄰域半徑圓交集的最短距離的像素點(diǎn)pi、pj和該像素點(diǎn)對應(yīng)的相鄰m(m一般取為2,3,5)個像素距離的像素點(diǎn)pi±m(xù)、pj±m(xù),見圖3(a)、圖3(b).
3)經(jīng)過點(diǎn)pi、pi±m(xù)和點(diǎn)pj、pj±m(xù)各自作一條直線,兩條直線的交點(diǎn)為pk,見圖3(b).
4)將pi、pj、pk三點(diǎn)代入二次貝塞爾曲線公式,繪制山脊線的連接線,如圖3(c)、圖3(d),得到連接線pi~pj.
5)取pi所在區(qū)間的鄰域半徑與pj所在區(qū)間的鄰域半徑的均值作為連接線的鄰域半徑.
當(dāng)裂縫二值化之后斷開較大,連接會無效.因?yàn)楫?dāng)裂縫二值化之后斷開較大,如超過選取的鄰域半徑函數(shù)所得到的鄰域半徑時,則認(rèn)定此時斷開的距離已經(jīng)足夠遠(yuǎn),可認(rèn)為兩條相鄰的裂縫是獨(dú)立的個體.
在建立NEAR模型以及完成裂縫連接的過程中都用到鄰域半徑,本文中確定鄰域半徑的方法如下:
首先,通過間隔取點(diǎn)的方式對山脊線進(jìn)行一定的平滑,以消除曲線的局部形狀對整體山脊線走勢判定的影響.在本文的實(shí)驗(yàn)中,取間隔點(diǎn)數(shù)N一般取為5至8之間,距離太小影響效率,距離太大誤差增大.
若山脊線上的上一個按方向分割的曲線段的終點(diǎn)為Vi,則其同時為新一段的起點(diǎn).按如公式(4)計算:
(4)
對曲線分割的區(qū)間及方向示意圖如圖4所示
圖4 按右上角標(biāo)識的四個方向?qū)η€進(jìn)行分割Fig.4 Split the curve in the four directions identified in the upper right corner
圖5 按垂直于標(biāo)識方向的方向掃描裂縫Fig.5 Scan the crack in a direction perpendicular to the direction of the mark
按垂直于標(biāo)識方向的方向掃描裂縫,根據(jù)一定的映射關(guān)系f(·)求得裂縫在每一段上的鄰域半徑εi.其中,εi為第i段上沿山脊線上的像素點(diǎn)掃描截得的裂縫寬度集合.
本文采用如圖6所示的無人機(jī)信息采集系統(tǒng)來獲取大型建筑物外墻面圖像,利用無人機(jī)搭載高倍可變焦相機(jī)圍繞大型建筑物外墻拍照進(jìn)行圖像采集,通過無人機(jī)上搭載的測距傳感器來確定無人機(jī)離墻面的距離d,保證拍照時成像尺度大致相同.每到一個航點(diǎn)時,當(dāng)測距傳感器測出無人機(jī)離墻面的距離為d時,相機(jī)自動拍照采集圖像.
圖6 無人機(jī)信息采集系統(tǒng)示意圖Fig.6 Diagram of UAV information collection system
本文裂縫連接算法程序基于Visual Studio 2013開發(fā),運(yùn)行環(huán)境為Windows 10,運(yùn)行內(nèi)存為8GB.將300張外墻面圖像用于本文算法的測試,并與K-D樹連接算法進(jìn)行實(shí)驗(yàn)對比.圖7中列出了斜裂縫、縱裂縫、橫裂縫6組實(shí)驗(yàn)結(jié)果圖.
為了有效評估裂縫連接的效果,本文采用基于緩沖的Hausdorff距離的分值測量方法[15].Hausdorff距離是描述2組點(diǎn)集之間相似程度的一種量度,它是2個點(diǎn)集之間距離的一種定義形式:假設(shè)有2組集合A={a1,a2,…,ai},B={b1,b2,…,bi},則這2個點(diǎn)集合之間的Hausdorff距離定義為:
H(A,B)=max(h(A,B),h(B,A))
(5)
其中:
(6)
(7)
其中ma,mb分別為A,B,集合中點(diǎn)的個數(shù).雙向Hausdorff距離H(A,B)是單向距離h(A,B)和h(B,A)兩者中的較大者,它度量了2個點(diǎn)集間的最大不匹配程度.將經(jīng)過裂縫連接后的墻面裂縫看做一個點(diǎn)集,兩裂縫之間的Hausdorff距離是通過裂縫像素點(diǎn)在圖像中的坐標(biāo)進(jìn)行計算.
在本文中H(A,B)為人工裂縫分割圖像和其他算法裂縫分割圖像之間的距離,本文將人工分割的裂縫當(dāng)作裂縫連接效果得分的基準(zhǔn)圖像,即將人工分割的裂縫作為一個標(biāo)準(zhǔn),把通過K-D樹連接算法和本文算法連接好的圖像區(qū)域分別與手工分割的裂縫圖像進(jìn)行Hausdorff距離計算.人工分割的裂縫與真實(shí)裂縫圖像存在微小的偏差,可忽略不計.A和B分別對應(yīng)人工裂縫分割圖像和其他算法裂縫分割圖像中裂縫位置的集合,Score表示匹配的相似程度,總分值為100.Score越大表示兩幅圖像越相似,其分值計算如下:
Score=(1-H(A,B)))×100
(8)
在所有采集的外墻面圖像中隨機(jī)選出含有裂縫的300張圖像用作算法測試實(shí)驗(yàn)的數(shù)據(jù)樣本,其中斜裂縫圖像100張,縱裂縫圖像100張,橫裂縫圖像100張.將300張含有裂縫的外墻面圖像用于本文算法和K-D樹連接算法的實(shí)驗(yàn)對比.
本文中把人工分割的裂縫圖像作為基準(zhǔn)圖像,將通過K-D樹連接算法和本文算法連接好的圖像區(qū)域分別與人工分割的裂縫圖像進(jìn)行Hausdorff距離計算,得到100組斜裂縫分值、100組縱裂縫分值、100組橫裂縫分值,然后分別求出三組得分?jǐn)?shù)據(jù)的平均值.表1和圖8給出了本文算法和K-D樹連接算法的性能平均得分比較, 經(jīng)分析, 由于K-D樹算法采用了最近鄰原則進(jìn)行裂縫連接,所以有時候會造成裂縫的誤連接,將兩個獨(dú)立的裂縫連接在了一起,如圖7(e)中的4、5圖,而本文采用了NEAR模型對這種情況進(jìn)行了限制,再加上本文算法在裂縫斷裂處的連接環(huán)節(jié)采用的是二次貝塞爾插值,該方法更符合裂縫的走勢,對于裂縫的連接擬合度會更大,而K-D樹連接算法采用的是直線連接方法,與裂縫的骨架擬合度小.結(jié)果表明,本文的裂縫連接效果優(yōu)于K-D樹連接算法.
圖7 6組實(shí)驗(yàn)結(jié)果圖Fig.7 Six sets of experimental results
表1 兩種算法連接效果得分對比
Table 1 Comparison of the scores of the two algorithms
實(shí)驗(yàn)組K-D樹連接算法本文算法高出百分點(diǎn)斜裂縫83.7892.939.15縱裂縫87.0495.548.50橫裂縫78.2284.296.07
圖8 連接效果得分對比Fig.8 Comparison of connection effect scores
本文針對大型建筑物外墻面圖像檢測時出現(xiàn)的目標(biāo)不連續(xù)問題,提出一種基于NEAR模型的大型建筑物外墻裂縫連接算法.根據(jù)裂縫的走勢特征類似于山脊線,首先提取裂縫的山脊線及其寬度信息來定義裂縫和山脊線鄰域評價模型.利用NEAR模型來判斷相鄰的裂縫是否屬于同一裂縫,將屬于同一裂縫的兩條山脊線重新連接整合形成一條山脊線,采用二次貝塞爾插值完成裂縫連接.對于山脊線鄰域半徑以及裂縫連接處寬度的確定是通過間隔取點(diǎn)的方式對山脊線進(jìn)行一定的平滑,以消除曲線的局部形狀對整體山脊線走勢判定的影響,實(shí)驗(yàn)結(jié)果表明,通過本文實(shí)現(xiàn)的連接方法,可以使連接區(qū)域更接近實(shí)際裂縫.