賀志勇,王 鵬
(華南理工大學(xué) 土木與交通學(xué)院,廣東 廣州 510641)
為確保橋梁運(yùn)營安全,必須及時(shí)進(jìn)行檢測(cè)評(píng)估。對(duì)在役橋梁進(jìn)行快速、科學(xué)、準(zhǔn)確檢測(cè),建立合適、便捷的檢測(cè)評(píng)估方法已成為當(dāng)務(wù)之急。目前橋梁檢測(cè)以人工現(xiàn)場(chǎng)調(diào)查法為主。人工現(xiàn)場(chǎng)調(diào)查法存在工作量大、速度慢、效率低、漏檢率高、費(fèi)用昂貴、占用橋面車道、易造成交通擁堵等缺點(diǎn)。
為加快檢測(cè)速度,提高效率,實(shí)現(xiàn)橋梁檢測(cè)自動(dòng)化,國內(nèi)外學(xué)者進(jìn)行了大量研究[1-4],如南京理工大學(xué)、哈爾濱工業(yè)大學(xué)、日本大阪市立大學(xué)對(duì)爬壁機(jī)器人進(jìn)行了深入研究;廣東工業(yè)大學(xué)提出一種智能視頻橋梁檢測(cè)車,通過液壓伸縮臂裝置將圖像采集裝置安置在橋梁底面,采集橋梁病害視頻;Je-Keun Oh等提出并設(shè)計(jì)了一種橋梁自動(dòng)檢測(cè)系統(tǒng),該系統(tǒng)由橋梁檢測(cè)車、軌道和圖像采集系統(tǒng)三部分組成;張登峰等設(shè)計(jì)了一種橋梁檢測(cè)車,通過控制器控制云臺(tái)的轉(zhuǎn)動(dòng),拍攝橋梁底面各個(gè)位置的圖像,依靠圖像處理技術(shù)進(jìn)行處理識(shí)別。
在無人機(jī)橋梁檢測(cè)研究方面,王小莉提出了四旋翼飛行器的幾種關(guān)鍵技術(shù),包括數(shù)學(xué)建模、硬件設(shè)計(jì)、PN碼定位法、姿態(tài)估計(jì)法等[5];陶曉力等采用無人機(jī)配備高倍變焦攝像頭的方法采集橋梁裂縫圖像,試驗(yàn)驗(yàn)證該方法具有較好的效果[6]。
綜上所述,無人機(jī)可以作為先進(jìn)的檢測(cè)工具應(yīng)用在橋梁的裂縫檢測(cè)中。本文規(guī)劃無人機(jī)的檢測(cè)飛行路線,重點(diǎn)采集橋梁底面的裂縫,運(yùn)用數(shù)字圖像處理技術(shù)進(jìn)行裂縫分類,以驗(yàn)證利用無人機(jī)進(jìn)行橋梁檢測(cè)的可行性。
為了采集橋梁底面的正攝圖像,選擇大疆公司的M210RTK無人機(jī)。M210RTK無人機(jī)配備性能強(qiáng)勁的Flight Autonomy系統(tǒng),幫助飛行器避障,機(jī)頂?shù)募t外傳感器更能提供上方避障保護(hù)。配合RTK(Real-time kinematic)載波相位分差技術(shù),無人機(jī)的懸停精度可以達(dá)到±0.1m,云臺(tái)安置在無人機(jī)上部,可控制鏡頭與橋梁底面保持垂直。相機(jī)的鏡頭采用定焦鏡頭,焦距為50mm,可拍攝2 400萬像素的圖片。無人機(jī)平臺(tái)頂部安裝有激光測(cè)距傳感器,在定點(diǎn)拍照時(shí)可以實(shí)時(shí)記錄相機(jī)到橋梁底面的距離H。無人機(jī)進(jìn)行橋梁檢測(cè)對(duì)于定位精度要求較高,飛行前應(yīng)實(shí)測(cè)當(dāng)?shù)仫L(fēng)速,風(fēng)速小于2m·s-1時(shí)方可飛行,天氣應(yīng)晴朗、少云。
為了提高拍攝的精度,獲得較好的成像質(zhì)量,無人機(jī)應(yīng)盡可能地在距離橋梁底面近的位置拍攝,但同時(shí)也要保證一張照片所拍攝的實(shí)際面積足夠大,故需要合理確定拍攝距離h和焦距f。
鋼筋混凝土梁不同部位的允許最大裂縫寬度在0.25~0.5mm 不等,而定檢中要求觀測(cè)到0.02 mm以上的裂縫。橋梁結(jié)構(gòu)中的真實(shí)裂縫不是規(guī)則的直線或曲線裂縫,因此寬度至少需要2個(gè)像素顯示。單張圖像表示面積為60mm×40mm,可以采用如下步驟粗略測(cè)定鏡頭的拍攝距離。
(1)在一張白紙上,畫2條相互垂直且等分的線段A、B,A長度為60mm,B長度為40mm,將白紙固定在平整的墻壁上。
(2)將相機(jī)放置在三腳架上,調(diào)整三腳架的位置、高度,使相機(jī)垂直于墻壁。
(3)移動(dòng)三腳架,使白紙上的2條線段在長寬2個(gè)方向正好出現(xiàn)在取景器。
(4)反復(fù)用鋼尺測(cè)量鏡頭到白紙之間的距離,求得平均值為500mm[7]。
可以確定,焦距f固定時(shí),當(dāng)拍攝距離h=500 mm時(shí),拍攝圖片的實(shí)際面積為60mm×40mm,單個(gè)像素占0.01mm2。由于無人機(jī)懸停精度誤差為±0.1m,所以拍攝距離h不是定值,當(dāng)拍攝距離h變化,而焦距f固定時(shí),由凸透鏡成像原理可知
式中:P1為拍攝距離為h1時(shí)像素的大?。籔2為拍攝距離為h2時(shí)像素的大小。
每次定位拍攝時(shí)高度信息記錄在照片中,確定了拍攝距離h后,可以求出像素的大小P,從而求得裂縫的面積。
由于裂縫寬度較窄,為了能夠識(shí)別裂縫病害,需要近距離拍攝。單張圖像所覆蓋的面積較小,檢測(cè)一跨橋梁就需要幾千張圖片,難以確定裂縫在橋梁的具體位置,也就無法為養(yǎng)護(hù)部門提供準(zhǔn)確的信息。為此采用有序拍攝編號(hào)法,對(duì)不同的構(gòu)件進(jìn)行分類編號(hào)。在進(jìn)行橋梁底面檢測(cè)前將橋梁底面按照單張所拍面積大小分塊,確定各子塊的中心坐標(biāo),將坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)系,輸入到無人機(jī)地面站,使無人機(jī)按照?qǐng)D1順序飛行,在子塊中心懸停拍攝。如編號(hào)為511500的照片表示第5跨第1行第1列位置,距橋底距離為500mm。
圖1 無人機(jī)飛行航跡
橋梁底面裂縫的特征主要有以下2點(diǎn)。
(1)一幅裂縫圖像包括3個(gè)部分,大部分為背景,小部分為裂縫、噪聲。噪聲部分的灰度值往往和裂縫部分灰度值有一部分重疊。
(2)與整個(gè)橋梁底面相比,裂縫所占的面積只是很小的一部分,即裂縫的像素?cái)?shù)遠(yuǎn)小于背景部分的像素?cái)?shù)。
由于顏色對(duì)于橋梁裂縫圖像的處理不產(chǎn)生影響,而且灰度圖像在計(jì)算量和計(jì)算速度方面占有優(yōu)勢(shì),故先將彩色圖像統(tǒng)一轉(zhuǎn)化為灰度圖像。假設(shè)用f(i,j)表示一幅灰度圖像,采用 MATLAB批量處理圖片。轉(zhuǎn)換函數(shù)rgb2gray實(shí)現(xiàn)圖像灰度化的原理為:根據(jù)重要性及其他指標(biāo),將RGB圖像中的R、G、B三個(gè)分量以不同的權(quán)值加權(quán)平均[8],即
之后,用一個(gè)對(duì)數(shù)函數(shù)對(duì)圖像的每一個(gè)像素灰度做對(duì)數(shù)變換,用于壓縮輸入圖像中高灰度區(qū)的對(duì)比度,從而擴(kuò)展低灰度值。為了避免對(duì)求對(duì)數(shù),對(duì)f求對(duì)數(shù)改為對(duì)(f+1)求對(duì)數(shù),再以尺度比例常數(shù)C增加其動(dòng)態(tài)調(diào)整范圍[9]。
運(yùn)用MATLAB對(duì)裂縫圖像進(jìn)行變換,結(jié)果如圖2、3所示。從效果可以看出,對(duì)數(shù)變換能夠擴(kuò)展低值灰度,壓縮高值灰度,使低值灰度的圖像細(xì)節(jié)更容易看清。
圖2 豎向裂縫
圖3 對(duì)數(shù)變換后的圖像
根據(jù)已有研究成果,方形的濾波窗口對(duì)于有較長的輪廓線物體的圖像有較好的濾波效果。研究對(duì)象是裂縫,它具有較長的輪廓線,所以采用3×3、5×5、7×7不同的濾波模板,對(duì)加了椒鹽噪聲的灰度圖像進(jìn)行濾波處理,原圖和濾波后圖像如圖4~7所示。
圖4 添加椒鹽噪聲
圖5 3×3模板濾波
圖6 5×5模板濾波
采用3種中值濾波器對(duì)圖像分別進(jìn)行了濾波處理,但噪聲仍然存在。嘗試先用3×3的濾波器對(duì)圖像進(jìn)行濾波,然后再利用5×5的濾波器對(duì)濾波后的圖像進(jìn)行二次濾波,觀察濾波后圖像效果,如圖8所示。
圖7 7×7模板濾波
圖8 3×3、5×5模板濾波
由于檢測(cè)圖像的裂縫特征在裂縫的各個(gè)方向都有,采用傳統(tǒng)的Sobel算子會(huì)造成漏檢,使部分邊緣細(xì)節(jié)丟失。故依據(jù)裂縫圖像的邊緣特征,采用0°、45°、90°、135°、180°、225°、270°、315°八個(gè)方向的 Sobel算子進(jìn)行檢測(cè),檢測(cè)模板如圖9所示。
該算法分別利用八方向模板與對(duì)應(yīng)的圖像數(shù)據(jù)進(jìn)行卷積做近似計(jì)算。算法取8個(gè)緩存中灰度值較大的作為當(dāng)前像素輸出值,最大值所對(duì)應(yīng)的模板方向就是該點(diǎn)的邊緣方向。遍歷圖像后,所有8個(gè)方向的算子均卷積一次,取所有像素點(diǎn)卷積的最大值組成梯度幅值圖像。任意點(diǎn)像素點(diǎn)的表達(dá)式為
利用MATLAB進(jìn)行仿真后,得到傳統(tǒng)Sobel算子和八方向改進(jìn)Sobel算子的效果圖,如圖10、11所示。
由于照片并非是在理想條件下獲取的,橋梁底部會(huì)存在各種水漬、粉筆標(biāo)記、水泥斑點(diǎn)等,雖然盡可能地完善了光照條件,選用了較好的飛行器材、高端的相機(jī)鏡頭,也采用合理的算法對(duì)圖像進(jìn)行增強(qiáng)處理、濾波去噪,但二值化后的圖像仍然存在許多噪聲。為了獲得純凈的裂縫二值圖像,選用合適大小的結(jié)構(gòu)元素,以形態(tài)學(xué)閉運(yùn)算的方法,對(duì)二值圖像進(jìn)行處理,去除細(xì)小孔洞。
圖9 八方向模板
經(jīng)過上述算法處理后,可以得到較為清晰的二值圖像。雖然通過人眼觀察,可以清楚無誤地分別清楚圖像中否含有裂縫,但是每座橋會(huì)產(chǎn)生大量的照片,為了節(jié)省人工勞作時(shí)間,更加準(zhǔn)確地測(cè)量出病害的面積,對(duì)橋梁做出科學(xué)、快速、準(zhǔn)確的評(píng)價(jià),故對(duì)裂縫圖像進(jìn)行特征提取,進(jìn)行特征向量的描述,并基于這些特征向量構(gòu)造BP神經(jīng)網(wǎng)絡(luò),利用該網(wǎng)絡(luò)進(jìn)行自動(dòng)化的分類識(shí)別工作。
圖10 Sobel算子
圖11 八方向Sobel算子
假設(shè)存在一幅二值圖像R(i,j),大小為M×N,其中背景部分是黑色像素,灰度值為0,目標(biāo)部分是白色像素,灰度值為1。利用函數(shù)sum(R)進(jìn)行計(jì)算,若sum(R)<U,則該照片不含裂縫;若sum(R)>U,則該照片中含有裂縫,U 為經(jīng)統(tǒng)計(jì)得出的經(jīng)驗(yàn)閾值。對(duì)二值圖像R(i,j)分別在X軸、45°軸、Y軸、135°軸上進(jìn)行投影,然后以投影軸為橫軸,以與投影方向垂直的目標(biāo)像素的灰度值之和為縱坐標(biāo)繪圖。
X軸的投影公式為
Y軸的投影公式為
45°軸的投影公式為
135°軸的投影公式為
其中的投影原理是:在X軸上的投影是在y方向上的所有像素為1的和;在Y軸上的投影是在x方向上的所有像素為1的和;在45°軸上的投影是首先將大小為M×N的二值圖像R(i,j)逆時(shí)針旋轉(zhuǎn)45°,變?yōu)榇笮镻×Q、在135°方向上的所有像素為1的和;在135°軸上的投影是首先將二值圖像順時(shí)針旋轉(zhuǎn)45°,在45°方向上的所有像素為1的和。5種典型裂縫圖片經(jīng)過上述處理后分別向X軸、45°軸、Y 軸、135°軸投影,如圖12~16所示。
圖12 橫向裂縫各軸投影
圖13 縱向裂縫各軸投影
經(jīng)分析可得出以下結(jié)論。
(1)橫向裂縫向X軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散;向Y軸的投影出現(xiàn)一個(gè)明顯的波峰,波動(dòng)范圍較為集中;向45°、135°軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散。
圖14 45°裂縫各軸投影
圖15 135°方向裂縫各軸投影
圖16 網(wǎng)狀裂縫各軸投影
(2)縱向裂縫向Y軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散;向X軸的投影出現(xiàn)一個(gè)明顯的波峰,波動(dòng)范圍較集中;向45°、135°軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散。
(3)45°斜向裂縫向45°軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散;向135°軸的投影出現(xiàn)一個(gè)明顯的波峰,波動(dòng)范圍較為集中;向X、Y軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散。
(4)135°斜向裂縫向135°軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散;向45°軸的投影出現(xiàn)一個(gè)明顯的波峰,波動(dòng)范圍較為集中;向X、Y軸的投影相對(duì)平緩,峰值較小,波動(dòng)范圍較分散。
綜上可知,網(wǎng)狀裂縫向各個(gè)軸的投影均比較平緩,峰值較小,波動(dòng)范圍分散。
本文選擇4層BP神經(jīng)網(wǎng)絡(luò)進(jìn)行裂縫的分類,包含兩個(gè)隱含層。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)見圖17。
圖17 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
輸入向量:P={D1,D2,D3,D4,G1,G2,G3,G4,S,NUM}。
D1、D2、D3、D4分別表示向 X 軸、45°軸、Y 軸、135°軸投影后縱坐標(biāo)的差值;G1、G2、G3、G4分別表示向 X 軸、45°軸、Y 軸、135°軸投影后的投影范圍;S是圖片中裂縫的像素為1的點(diǎn)的個(gè)數(shù),即像素的面積;NUM是連通域的個(gè)數(shù)。
經(jīng)過多次試驗(yàn),選擇隱含層為2,隱含神經(jīng)元個(gè)數(shù)為 60。輸出向量 T= {00001,00010,00100,01000,10000}代表5種情況,即橫向裂縫表示為00001,45°方向裂縫表示為00010,縱向裂縫表示為00100,135°方向裂縫表示為01000,網(wǎng)狀裂縫表示為10000。經(jīng)過多次試驗(yàn),神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率設(shè)置為0.1。輸入層與隱含層的連接函數(shù)為TANSIG,隱含層與輸出層的連接函數(shù)為PURELIN。學(xué)習(xí)函數(shù)為TRAINLM。
使用MATLAB中的神經(jīng)網(wǎng)絡(luò)工具箱,對(duì)350幅樣本圖像進(jìn)行訓(xùn)練,其中各個(gè)狀態(tài)的裂縫均勻分布,打亂順序,隨機(jī)選擇前300張圖像進(jìn)行訓(xùn)練,分別經(jīng)過3次、4次、5次、8次迭代后停止,得到訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)net1、net2、net3、net4,如圖18~21所示。然后,將剩余的50幅圖像進(jìn)行仿真分類,與真實(shí)的裂縫情況進(jìn)行比較,分類的正確率分別為98%、92%、96%、94%,平均正確率在90%以上。誤判率為2%、8%、4%、6%,即分別有1幅、4幅、2幅、3幅被誤判為其他裂縫。
圖18 net1訓(xùn)練結(jié)果
圖19 net2訓(xùn)練結(jié)果
圖20 net3訓(xùn)練結(jié)果
圖21 net4訓(xùn)練結(jié)果
針對(duì)不斷發(fā)展的橋梁檢測(cè)事業(yè),本文提出將無人機(jī)應(yīng)用于實(shí)際橋梁檢測(cè),通過規(guī)劃無人機(jī)飛行路線,采集大量橋梁病害圖片,結(jié)合數(shù)字圖像處理技術(shù)、BP神經(jīng)網(wǎng)絡(luò)技術(shù)對(duì)裂縫圖像進(jìn)行分類,裂縫分類識(shí)別正確率均在90%以上。研究結(jié)果表明,基于無人機(jī)視覺的橋梁檢測(cè)方案具有自動(dòng)化程度高、速度快及準(zhǔn)確率高的優(yōu)點(diǎn),為橋梁檢測(cè)提供了新的途徑。