孫樂樂,席一帆,孫 恒,鐘永元
1(長安大學 信息工程學院,西安 710064)
2(長安大學 汽車學院,西安 710064)
3(福建省高速技術(shù)咨詢有限公司,福州 350001)
隨著公路橋梁數(shù)量的不斷增多,后期的檢驗養(yǎng)護等問題也越來越多.根據(jù)《公路養(yǎng)護技術(shù)規(guī)范》裂縫寬度最大容許值為0.25 mm,對于裂縫大于0.25 mm 的裂縫應(yīng)當及時封閉處理.傳統(tǒng)的裂縫檢測主要是橋檢車,高倍望遠鏡等,檢測耗時耗力,對于跨海大橋及復雜環(huán)境橋梁,傳統(tǒng)方法不能很好的滿足需求,因此,提出一種高效適用性強的橋梁檢測系統(tǒng)很有意義.
對于橋梁檢測國內(nèi)外學者做了大量研究,Baltazart[1]改進了最小路徑算法并在3 種平臺檢驗裂縫測試效果.Dinh 等[2]從裂縫圖像的閾值背景出發(fā)提取感興趣區(qū)域,在均值濾波后進行裂縫檢測.Hoshyar 等[3]提出一種混合方法檢測,通過傳感器接收到的數(shù)據(jù)進行處理,提取出裂縫的統(tǒng)計特征并結(jié)合支持向量機進行裂縫檢測.Teng 等[4]提出了一種基于形狀的裂縫檢測方法,提取出潛在裂縫并進行曲線擬合,根據(jù)形狀度量來區(qū)分裂縫及其背景.Prasanna 等[5]設(shè)計了一種空間解調(diào)分類器檢測裂縫,該法精度高但是檢測結(jié)果不具連貫性.
國內(nèi)也發(fā)展迅速,楊會玲等[6]提出一種基于多尺度濾波和裂縫合并算法,突出裂縫特征檢測裂縫.陳瑤等[7]用爬壁機器人采集數(shù)據(jù),并通過KD 樹分類和支持向量機實現(xiàn)檢測.瞿中等[8]研究了圖像中細小裂縫的檢測,提出一種加速滲流模型,快速檢測裂縫.劉洪公等[9]提出了卷積神經(jīng)網(wǎng)絡(luò)檢測裂縫,識別不同的裂縫圖像,改進了網(wǎng)絡(luò)模型.孫樂樂等[10]提出裂縫檢測拼接3D 系統(tǒng),該系統(tǒng)檢測方便,但未考慮到裂縫長寬的測量,本文在此基礎(chǔ)上改進,增加裂縫長寬檢測,可以對寬度超標的裂縫及時封閉處理.
無人機橋梁適用性強,數(shù)據(jù)采集方便,不受地理條件的制約.本文設(shè)計的改進型橋梁三維重構(gòu)及檢測系統(tǒng),硬件是大疆M210-RTK 工業(yè)級無人機,軟件是由件是由圖像數(shù)據(jù)獲取模塊、裂縫檢測模塊、3D 模型構(gòu)建模塊構(gòu)成,并提出改進后的檢測方法,該檢測方法是無人機分別采集圖片視頻數(shù)據(jù),對采集回來的圖片數(shù)據(jù)進行裂縫種類識別,長度計算.對視頻數(shù)據(jù)建立3D 模型,3D模型能夠直觀看到裂縫在橋梁中的區(qū)域,便于檢修人員快速找到病害位置并及時制定解決方案.本方法提高了整個橋檢的效率,通過長寬計算功能的添加,完善了橋檢系統(tǒng),減少了后期人工測量長寬,節(jié)省了一些人物力.
本系統(tǒng)由3 個模塊組成,圖像數(shù)據(jù)獲取模塊,裂縫檢測模塊,3D 模型構(gòu)建模塊,如圖1.
圖1 系統(tǒng)總體功能模塊
該系統(tǒng)的圖像數(shù)據(jù)獲取模塊和裂縫檢測模塊采用Matlab 語言并在Matlab R2015b 平臺上設(shè)計了工作界面,3D 建模是基于Ubuntu 16.04 系統(tǒng).其中裂縫檢測可與3D 建模分開并獨立工作,提升工作效率.圖像獲取模塊根據(jù)橋梁的不同采集時間也不同,一般半天左右,每張裂縫圖片種類檢測耗時3.6 s,長寬檢測平均耗時4.3 s.3D 建模耗時一般為所采集視頻時長的1.5 倍.軟件系統(tǒng)界面如圖2.圖2(a)和圖2(b)是Matlab 界面主要用于裂縫檢測和圖像拼接,圖2(c)和圖2(d)是3D建模界面.
本文采用大疆無人機M210-RTK 采集圖像,該型號無人機是大疆公司篇高端的一款機型,抗干擾能力強,障礙物感知準確,具體參數(shù)信息見表1.
為了保證無人機安全作業(yè),首先要預制飛行方案,其次將橋墩劃分區(qū)域,具體劃分規(guī)則是將橋墩柱從上到下每隔1 m 作為一個區(qū)域,并對每個區(qū)域進行編號,方便后期維護人員快速找到裂縫的大致位置.
第一次飛行將避障距離設(shè)為2 m,設(shè)置定時定距離環(huán)繞橋墩拍攝,設(shè)置的定時時間是2 S,設(shè)定的固定距離是2 m,以劃分好的區(qū)域為單位進行飛行拍攝.
第二次飛行時啟用錄像功能,選擇環(huán)繞飛行模式,以橋墩為中心,飛行一周進行采集數(shù)據(jù),拍攝時要設(shè)置好鏡頭轉(zhuǎn)變的角度,不能過大或過小,本文將角速度設(shè)為π/9 (rad/s).
圖2 軟件系統(tǒng)工作界面
表1 M210-RTK 參數(shù)
圖3為無人機實物圖,圖4為無人機飛行模式圖.
圖3 無人機及作業(yè)畫面
圖4 飛行模式圖
裂縫是危害橋梁安全的重要因素,及時準確的檢測對后期保養(yǎng)維修起著重要的作用,本文主要研究水泥瀝青路面的裂縫種類及長寬計算,檢測步驟分為6 步.
(1)灰度化.為了減小內(nèi)存提高處理速度,將原圖灰度化,本文灰度化采用RGB 加權(quán)平均法來,見式(1):
(2)中值濾波.中值濾波是一種非線性平滑技術(shù),在濾波的同時可以保護邊緣信息[11],見式(2):
式中,f(x)是原圖,g(x)是濾波后的圖,w是在原圖上滑動的模版,本文模版取3×3,如下:
(3)圖像邊緣與周圍像素差值較大,包含著豐富的細節(jié)信息.由于Sobel 算子運行速度快,處理噪聲較多和灰度漸變的圖像效果好[12],此處采用Sobel 算子進行邊緣檢測,Sobel 算子有x和y兩個方向構(gòu)成,并分別求卷積求取梯度,模版如下:
水平方向模版:
垂直方向模版:
每個點梯度的大?。?/p>
(4)裂縫邊緣連通分量提取.若u是y中的一個點,y是A中一個連通分量,每次迭代僅能得到一個連通分量,因此需不斷迭代直至求出所有連通分量,即式(6):
式中,X0=u,k=1,2,3,···,A為大津法分割后的圖像,⊕為膨脹運算,B為膨脹的結(jié)構(gòu)元素,本文結(jié)構(gòu)元素是8 連通區(qū)域的3×3 矩陣,結(jié)構(gòu)元素見圖5.
圖5 結(jié)構(gòu)元素(均為1)
(5)裂縫種類識別.橋梁中的裂縫主要分為3 類:橫向,豎向,網(wǎng)狀.本文通過像素累計迭代法判定裂縫類型,首先計算裂縫的質(zhì)心坐標(x_cen,y_cen),然后以長8r+1,寬2r+1 并以質(zhì)心坐標(x_cen,y_cen)構(gòu)建矩形,計算矩形內(nèi)裂縫像素和sumr與總像素的比值ρ,若ρ小于0.8,則r+10 擴張矩形再次進行計算,直至ρ>0.8,計算過程如圖6.
圖6 計算裂縫像素數(shù)目
圖6中4 表示裂縫,3 表示初始建立的長為8r+1,寬為2r+1 的長方形(初始值r=10),2 表示擴張后的長方形(每次以r=r+10 進行擴張),1 表示拍攝的整個圖片.
裂縫的分布密度ρ為:
計算x_max,y_max差分值并與0.2 作比較,在ρ小于0.2 的情況下,x_max
(6)裂縫的尺寸計算.裂縫的長度寬度可以直觀的反應(yīng)對橋梁的危害程度,對于小于規(guī)定的裂縫寬度可以忽略,大于規(guī)定閾值0.25 mm 要及時封閉處理.
將第(4)步邊緣連通分量提取之后的圖像進行閉操作,閉操作是先膨脹后腐蝕,可以平滑輪廓,并填充比結(jié)構(gòu)元素小的洞[13],見式(8):
式中,R表結(jié)構(gòu)元素,本文用的是3×3 的單位矩陣,⊕表膨脹操作符,Θ 腐蝕操作符,G為閉操作處理之后的圖像.
類比定積分思想,對上述圖像通過分段迭代法進行曲線擬合求取長度,步驟如下,示意圖見圖7.
圖7 分段迭代示意圖
① 連接裂縫左右端點mn,在曲線上找一點s2,使s2到線段mn的距離最大.
② 連接m和s2,n和s2,分別在其中間找s1和s3滿足s2到線段ms2,ns2的距離最大.
③ 重復上述步驟,直至滿足最大距離小于設(shè)置的閾值.
④ 將ms1,s1s2,···,s(n?1)n相加得到裂縫的長度像素l.
骨架化在圖像處理中主要用于骨架的提取,將一定寬度的裂縫變成單像素寬,骨架化可以簡潔的描述裂縫的形態(tài)信息,目標M中所有最大內(nèi)切圓的圓心構(gòu)成了目標M的骨架SK(M)[14],骨架化示意圖見圖8.
圖8 骨架法示意圖
骨架的每一個點都有對應(yīng)的半徑和最大內(nèi)切圓,見式(9):
式中,M為待處理目標,rB代表半徑為r的圓,drB代表微小半徑的圓,骨架化之前像素數(shù)是面積S,已知l,則骨架化后的裂縫寬度d見式(10):
本文三維構(gòu)建采用直接稀疏里程計法DSO (Direct Sparse Odometry).基于收集到的圖像信息,DSO 可以在陌生環(huán)境下通過連續(xù)的數(shù)據(jù)流對數(shù)據(jù)進行建模.DSO 視覺里程計通過計算局部地圖中的點得到像素點的三維坐標,并記錄視覺里程計不同時刻的相機位資,根據(jù)基于圖優(yōu)化估計得到的全局軌跡,建立符合建模的環(huán)境或地圖[10].
DSO 是一種視覺Slam 的解決方案,但與傳統(tǒng)Slam匹配特征點不同[15],它是直接視覺Slam 法與稀疏法相結(jié)合,利用圖像中的所有像素點,將不同時刻的位資估計與數(shù)據(jù)關(guān)聯(lián)聯(lián)系起來,統(tǒng)一成優(yōu)化問題,這對圖像細節(jié)信息少,紋理特征弱的橋梁圖像具有較高的魯棒性.
本文通過DSO 對橋梁進行三維建模,可建出橋梁概況,在檢測到有裂縫的區(qū)域之后,可通過對3D 模型做出標記,方便檢修人員在檢修作業(yè)前了解其大概方位,可以更快地到達目的地.3D 建模的步驟如下所示:
(1)標定圖片,計算內(nèi)參矩陣.為了減小透鏡畸變的影響,在用無人機采集圖像之前要對相機進行標定,為了提高標定精度,每副標定圖片都有一定的角度變化,本文標定圖片采用8×8 的棋盤格,角點數(shù)為49,每個格子邊長2.5 mm,標定圖片見圖9.
將15 副標定圖片輸入Matlab 中Camera Calibrator工具箱,得出內(nèi)參矩陣K:
圖9 標定圖片
(2)視覺里程計(VO)
視覺里程計VO (Visual Odometer)是3D 建模中一個重要的環(huán)節(jié),它通過對視頻中連續(xù)變化圖像的提取,計算出不成熟且逆深度收斂的三維坐標點,從而得到點云數(shù)據(jù).在建模過程中,后端優(yōu)化與視覺里程計同時存在.假設(shè)兩幀圖像I1,I2和空間中的點P是同一個相機獲取的,P1,P2代表空間點P在I1,I2中的像素坐標,[X,Y,Z]是其世界坐標,如圖10.
圖10 直接法示意圖
為了得到相機位姿變換,參考第一幀并求取第二幀的移矩陣t和旋轉(zhuǎn)矩陣R,考慮到在整個建模過程中相機內(nèi)參矩陣K保持不變,P1和P2的投影方程為:
其中,z1是空間點P在第一幀圖片I1的深度,z2空間點P在第二幀I2的深度,K為無人機相機的內(nèi)參矩陣,ξ 為t,R對應(yīng)的代數(shù).
在VO 中對每一幀圖像的流程如圖11所示.
(3)后端優(yōu)化
DSO 中滑動窗口關(guān)鍵幀與其相連的成熟點(地圖點)構(gòu)成了殘差項,建立了后端優(yōu)化問題,為了后端優(yōu)化,本文采用高斯-牛頓法進行迭代,迭代過程中殘差項會形成一個大的線性方程[16]:
其中,r,W,J為殘差權(quán)重和雅可比行列式,δx是全局優(yōu)化更新量.在3D 建模的過程中不斷重構(gòu)這個優(yōu)化問題,并保存優(yōu)化后的結(jié)果.
圖11 DSO 每幀圖像處理流程
在西安市橋墩橋面出拍攝了200 副裂縫圖片,100 副水泥裂縫,100 副瀝青裂縫,依托2.2 節(jié)所述理論方法,基于Matlab 平臺進行了識別,正確識別率高達93.3%,精度較高,對于病害能夠及時檢測到.水泥,瀝青裂縫識別精度見表2和表3,長寬計算精度見表4,部分檢測結(jié)果見圖12.
表2 水泥裂縫識別精度
表3 瀝青裂縫識別精度
表4 裂縫長款計算精度
本次實驗地點為長安大學的橋梁柱,該橋梁柱與橋墩具有相同的特征,因此選用此柱模擬橋梁橋墩以檢驗建模效果,通過大疆M210-RTK 采集視頻,結(jié)合上述DSO 法,在Ubuntu 16.04 系統(tǒng)中完成了程序設(shè)計進行3D 建模.效果圖如圖13和圖14.
圖12 檢測結(jié)果
圖13 效果圖左下角大圖
圖14 效果圖
本文針對橋梁裂縫病害檢測,提出了基于無人機的橋梁三維重構(gòu)及檢測系統(tǒng),針對此系統(tǒng)提出了相應(yīng)的檢測方法:
(1)獲取圖像數(shù)據(jù),本文基于無人機采集,方便靈活且安全高效.
(2)裂縫檢測,對無人機采集回來的圖片進行種類的識別和長寬的計算,更為全面的了解裂縫信息,對超標的裂縫及時封閉處理.
(3)本文用DSO 法進行三維立體式模型構(gòu)建,對橋梁全貌可以有直觀的了解,對檢測出來的裂縫按照之前劃分好的對應(yīng)標號可在3D 模型中直觀了解到病害的具體方位,對維修人員工作前的方案制定有一定幫助.
(4)本文在進行橋梁裂縫病害檢測時采用工業(yè)級無人機獲取數(shù)據(jù),并將二維與三維相結(jié)合,可實現(xiàn)對裂縫檢測并確定其大概方位.對復雜橋梁的裂縫病害檢測具有高效,直觀,易實現(xiàn)的現(xiàn)實意義.