胡文魁 鄧 暉 付志旭 安棟陽 段 銳
(華南理工大學(xué)土木與交通學(xué)院,廣州 510641)
裂縫是橋梁病害中最常見的形式,不僅出現(xiàn)頻率高,而且對(duì)結(jié)構(gòu)的安全性和可靠性均有較大影響,特別對(duì)于安全等級(jí)較高的鋼筋混凝土橋或者預(yù)應(yīng)力混凝土橋,一旦出現(xiàn)明顯的結(jié)構(gòu)裂縫,將降低橋梁結(jié)構(gòu)的承載力。如果不及時(shí)檢查發(fā)現(xiàn)并采取有效措施進(jìn)行修復(fù)加固,在車輛荷載、溫度作用等多種因素影響下,裂縫會(huì)加速發(fā)展,一旦發(fā)展成貫通裂縫,將引發(fā)嚴(yán)重的安全事故,因此,對(duì)橋梁裂縫進(jìn)行長期定期的檢測(cè)是保證結(jié)構(gòu)安全的重要手段之一。
近年來,為了提高橋梁病害檢測(cè)自動(dòng)化水平,快速準(zhǔn)確地提取出橋梁裂縫圖像,國內(nèi)外眾多學(xué)者進(jìn)行了廣泛深入的研究。Hendrickson等提出通過Sobel邊緣檢測(cè)算法,把病害區(qū)域的周長計(jì)算出來,然后通過設(shè)定的閾值(T=20)進(jìn)行圖像去噪[1]。張德津等利用圖像空間聚合特征進(jìn)行瀝青路面裂縫的分割,其核心思想是把圖像分塊,將分塊后的圖像作為處理對(duì)象,使用逐步求精法完成子塊圖像的分割[2]。Kirschke等提出利用圖像直方圖技術(shù)來提取路面的裂縫病害,這種算法主要是通過作出圖像的灰度直方圖,然后,利用直方圖波谷對(duì)應(yīng)的灰度值來提取路面裂縫,此方法在目標(biāo)裂縫對(duì)比度較強(qiáng)的情況下效果較好[3]。孫波成在大津(OSTU)分割算法的基礎(chǔ)上進(jìn)行改進(jìn),提出一種基于最大類內(nèi)、類間距的方法來確定閾值,分割結(jié)果顯示:二值圖像中不僅含有很多隨機(jī)分布的噪聲點(diǎn),而且裂縫出現(xiàn)了斷斷續(xù)續(xù)的狀況,后續(xù)通過形態(tài)學(xué)算法來解決上述問題[4]。Tang等提出一種新的裂縫分割算法,基本原理是先利用灰度直方圖谷底閾值法得到裂縫的大概位置,進(jìn)而利用基于B樣條的Snake模型和形態(tài)學(xué)技術(shù)來具體確定裂縫的位置[5]。這些基于傳統(tǒng)的圖像處理方法都是通過直接處理圖像得到裂縫的典型特征,進(jìn)而提取出裂縫進(jìn)行幾何尺寸的測(cè)量。然而存在的問題在于圖像增強(qiáng)處理后對(duì)比度不足、去噪效果不明顯、分割后裂縫連續(xù)性較差等。
隨著計(jì)算機(jī)技術(shù)的高速發(fā)展和深度學(xué)習(xí)的崛起,國內(nèi)外學(xué)者開始把神經(jīng)網(wǎng)絡(luò)用于橋梁的病害檢測(cè),目前已取得大量的研究成果。李楠利用caffe框架里面的LeNet-5神經(jīng)網(wǎng)絡(luò)模型對(duì)圖像進(jìn)行有無裂縫的識(shí)別,將該神經(jīng)網(wǎng)絡(luò)的激活函數(shù)換為Relu,取得不錯(cuò)的識(shí)別效果[6]。趙珊珊等在VGGNet網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn),刪除了VGGNet網(wǎng)絡(luò)中的第五個(gè)卷積、池化層以及全連接層,試驗(yàn)結(jié)果顯示:該網(wǎng)絡(luò)的裂縫檢測(cè)效果明顯優(yōu)于傳統(tǒng)識(shí)別方法[7]。劍橋大學(xué)提出一種基于SegNet的模型來分割圖像,該模型通過訓(xùn)練1 000張圖像,最終得到城市道路的分割網(wǎng)絡(luò),并且該模型具有很強(qiáng)的泛化能力[8]。
本文主要研究內(nèi)容如下:1)選擇合適的無人機(jī)和云臺(tái),使相機(jī)能垂直于橋梁表面拍攝,依據(jù)被檢橋梁的實(shí)際情況,制定合理的無人機(jī)檢測(cè)方案,獲取大量橋梁圖像。2)將采集到的橋梁圖像進(jìn)行預(yù)處理,利用BCI-AS全卷積神經(jīng)網(wǎng)絡(luò)模型將裂縫圖片分割成裂縫二值圖。3)通過投影技術(shù)最小二乘擬合中心線的算法對(duì)分割的裂縫二值圖進(jìn)行寬度測(cè)量并與現(xiàn)場(chǎng)實(shí)測(cè)進(jìn)行對(duì)比,驗(yàn)證本文算法的可行性。研究方法主要結(jié)構(gòu)流程如圖1所示。
圖1 本文研究方法流程
通過無人機(jī)采集大量橋梁裂縫圖像,為避免無人機(jī)拍到畸變的圖像,必須保證無人機(jī)相機(jī)垂直于橋梁表面。本文選用經(jīng)緯 M300 RTK搭載禪思H20采集橋梁圖像。禪思H20包含30 Hz高幀率熱成像相機(jī)、1 200萬像素廣角相機(jī)、2 000萬像素變焦相機(jī)和激光測(cè)距儀,質(zhì)量為678±5 g,它支持經(jīng)緯M300 RTK,相機(jī)俯仰轉(zhuǎn)動(dòng)范圍為-120°~30°。經(jīng)緯 M300 RTK配備了上下補(bǔ)光燈,其有效照明距離為5 m,能彌補(bǔ)采光不足的缺陷,內(nèi)置5 000 mAh、7.2 V電池,正常情況下使用續(xù)航時(shí)間長達(dá)1小時(shí),支持禪思 XT2、禪思 XT S、禪思 Z30、禪思 H20、禪思 H20 T等云臺(tái)。其具體形式見圖2。
圖2 大疆經(jīng)緯M100
在利用無人機(jī)進(jìn)行橋梁裂縫檢測(cè)時(shí),對(duì)于設(shè)置有靶點(diǎn)的橋梁,可以依據(jù)靶點(diǎn)實(shí)現(xiàn)像素的標(biāo)定。對(duì)于沒有設(shè)置靶點(diǎn)的橋梁,首先依據(jù)檢測(cè)精度確定單張圖像所拍攝橋梁底面的實(shí)際尺寸,然后根據(jù)相機(jī)焦距、實(shí)物大小和物距之間的關(guān)系確定相機(jī)的焦距和相機(jī)與橋梁底面的距離,從而實(shí)現(xiàn)相機(jī)的標(biāo)定。相機(jī)拍攝圖像的實(shí)際大小、相機(jī)傳感器尺寸、相機(jī)焦距和相機(jī)攝像頭與橋梁表面距離之間的聯(lián)系見式(1)。
(1)
式中:f為相機(jī)的焦距;D為相機(jī)攝像頭到橋梁底面的距離;w為相機(jī)傳感器的靶面寬度;W為被拍攝物體的實(shí)際寬度。
根據(jù)JTG H11—2004《公路橋涵養(yǎng)護(hù)規(guī)范》[9],橋梁裂縫檢測(cè)精度應(yīng)控制在0.2 mm以內(nèi),因此單個(gè)像素所代表的實(shí)際大小也應(yīng)該控制在0.2 mm×0.2 mm以內(nèi)。本文采用的相機(jī)有效像素為5 000×4 000,當(dāng)橋梁檢測(cè)精度為0.2 mm時(shí),拍攝的圖像對(duì)應(yīng)結(jié)構(gòu)表面的真實(shí)尺寸為1 000 mm×800 mm,當(dāng)橋梁檢測(cè)精度為0.1 mm時(shí),拍攝的圖像對(duì)應(yīng)結(jié)構(gòu)表面的實(shí)際尺寸為500 mm×400 mm。另外,由于經(jīng)緯 M300 RTK具有自動(dòng)避開障礙物的功能,在采集圖像過程中,應(yīng)保證無人機(jī)到橋梁表面的距離大于飛行的安全距離,確保無人機(jī)安全有序地飛行。
通過查詢禪思H20的相機(jī)參數(shù)可得,2 000萬變焦相機(jī)傳感器的靶面尺寸是1/1.7(英寸),即7.6 mm×5.7 mm。當(dāng)焦距設(shè)定為85 mm,橋梁檢測(cè)精度為0.1 mm時(shí),依據(jù)式(1)可得無人機(jī)攝像頭與橋梁底面的距離為5 600 mm;當(dāng)焦距不變,橋梁檢測(cè)精度為0.01 mm時(shí),無人機(jī)攝像頭與橋梁底面的距離為560 mm。在上述兩種狀況下,無人機(jī)到橋梁表面的距離均大于飛行的安全距離。為了使橋梁病害檢測(cè)更加準(zhǔn)確,本文采用檢測(cè)精度為0.01 mm的相機(jī)參數(shù)獲取圖像。
在無人機(jī)進(jìn)行橋梁裂縫檢測(cè)時(shí),需要依據(jù)無人機(jī)獲取到的圖像資料計(jì)算裂縫的寬度,同時(shí),盡量通過圖像資料確定出裂縫的位置和類型,通過這些信息對(duì)橋梁健康狀況作出精準(zhǔn)的判斷。但是,目前在橋梁設(shè)計(jì)階段,對(duì)橋梁裂縫把控十分嚴(yán)格,橋梁中出現(xiàn)的結(jié)構(gòu)裂縫都很小,并且威脅到橋梁結(jié)構(gòu)安全的裂縫都是從細(xì)微的裂縫發(fā)展起來的,為了滿足檢測(cè)精度,無人機(jī)需要近距離拍攝結(jié)構(gòu)表面的病害圖像,這就導(dǎo)致無人機(jī)拍攝到的單張圖像,只能覆蓋橋梁表面很小的面積,對(duì)一跨橋梁底面進(jìn)行裂縫檢測(cè)就需拍攝成千甚至上萬張圖像,致使裂縫位置的確定成了一個(gè)難題。為了解決上述問題,本文提出一種基于GPS定位和有序拍攝編號(hào)相結(jié)合的方法來采集圖像,即按照不同的構(gòu)件進(jìn)行分類編號(hào),按照特定的規(guī)則通過GPS定位拍照,并將采集到的圖像有序編號(hào)。
利用無人機(jī)對(duì)具體橋梁進(jìn)行裂縫檢測(cè)時(shí),首先找到橋梁設(shè)計(jì)圖紙,依據(jù)檢測(cè)精度確定單張圖像的大小,然后按單張圖像大小平均分塊并進(jìn)行編號(hào),具體編號(hào)如圖3所示。編號(hào)中的第一個(gè)數(shù)字代表第幾跨橋梁,第二個(gè)數(shù)字代表橋梁橫向方向的具體位置,第三個(gè)數(shù)字代表橋梁縱向的位置。在利用無人機(jī)進(jìn)行橋梁檢測(cè)過程中,當(dāng)無人機(jī)飛行到每一塊中心點(diǎn)位置時(shí),懸停拍攝圖像,將采集到的圖像利用分塊時(shí)的序號(hào)進(jìn)行編號(hào),最后,通過卷積神經(jīng)網(wǎng)絡(luò)和數(shù)字圖像處理技術(shù)識(shí)別出裂縫圖像并計(jì)算裂縫的幾何參數(shù),并依據(jù)圖像的編號(hào)確定裂縫的具體位置。
圖3 橋梁底面分塊示意
為了利用上述方法實(shí)現(xiàn)裂縫的定位,無人機(jī)獲取圖像主要有以下兩種途徑:
1)依據(jù)檢測(cè)精度計(jì)算出單張圖片所拍攝的實(shí)際大小、焦距以及攝像頭與橋梁底面的距離,然后根據(jù)飛行速度和單張圖片大小確定拍攝的時(shí)間間隔,最終讓無人機(jī)在特定時(shí)間間隔內(nèi)自動(dòng)拍攝并編號(hào),保證拍攝到的所有圖像拼接起來得到橋梁的底面或側(cè)面。
2)根據(jù)單張圖像所拍攝到的實(shí)際大小和無人機(jī)攝像頭與橋梁表面的距離,可以計(jì)算出結(jié)構(gòu)表面每一塊中心點(diǎn)具體的空間位置,進(jìn)而得到無人機(jī)懸停時(shí)的空間位置,然后把這些空間位置數(shù)據(jù)輸入到無人機(jī)的飛控軟件中,以此實(shí)現(xiàn)無人機(jī)的自動(dòng)飛行和自動(dòng)懸停拍攝。當(dāng)應(yīng)用這種方法時(shí),無人機(jī)在飛行過程中完全處于自動(dòng)飛行狀態(tài),這能減少工作人員的調(diào)試誤差,顯著提高檢測(cè)效率。
由于多種因素的綜合影響,導(dǎo)致采集到的圖像不清晰,圖像像素灰度值比較集中,目標(biāo)裂縫對(duì)比度較差等狀況。所以,必須通過相應(yīng)的算法來增強(qiáng)圖像,改良圖像的整體效果。本文利用無人機(jī)在隨機(jī)環(huán)境條件下采集大量圖片,并篩選出2 500張?jiān)剂芽p圖片為建立全卷積神經(jīng)網(wǎng)絡(luò)分割模型的數(shù)據(jù)集做準(zhǔn)備。為減小網(wǎng)絡(luò)模型的參數(shù)計(jì)算量,將全部圖片統(tǒng)一按加權(quán)平均法進(jìn)行灰度化處理,效果如圖4b所示。考慮到原始圖片曝光不足,對(duì)比度偏低,且圖像中包含大量干擾裂縫檢測(cè)的噪聲,為提高模型訓(xùn)練質(zhì)量,將灰度圖再進(jìn)行分段線性變換[10]增強(qiáng)和中值濾波[11]去噪。分段線性不僅增強(qiáng)了目標(biāo)裂縫的對(duì)比度,而且算法處理速度快,是比較好的圖像增強(qiáng)方法,增強(qiáng)效果如圖4c所示。中值濾波是一種能保留圖像細(xì)節(jié)信息的非線性去噪技術(shù),它有效改善了均值濾波處理圖像后目標(biāo)邊緣模糊的問題,且能很好地去除圖像中的椒鹽噪聲,去噪效果如圖4d所示。
a—原圖;b—灰度圖;c—分段線性變換;d—中值濾波。
將2 500張裂縫圖片進(jìn)行加權(quán)平均灰度化、分段線性變換、中值濾波等圖像增強(qiáng)去噪處理,并將圖像分辨率歸一化為500×400,按照1∶4的比例隨機(jī)分為測(cè)試集和訓(xùn)練集,其中訓(xùn)練數(shù)據(jù)有2 000張圖像,測(cè)試數(shù)據(jù)有500張圖像。
將按上述步驟處理得到的數(shù)據(jù)集和處理方法均命名為GPM(Gray-Piecewise Linear Transformation-Median Filtering),在裂縫圖像放入模型訓(xùn)練之前,進(jìn)行GPM處理,以減小光照、噪聲等因素對(duì)下一步提取裂縫形狀(分割裂縫)帶來的影響,提高分割質(zhì)量和精度,這一步是非常必要的。
傳統(tǒng)的基于閾值分割[12]或基于邊緣檢測(cè)[13]的圖像分割算法存在一些普遍問題,如需要手動(dòng)輸入閾值等參數(shù),工作量大,占用大量人力資源,無法自動(dòng)、高效地分割裂縫,達(dá)不到智能化提取裂縫的要求。另外,這些算法都是利用像素之間的灰度信息提取目標(biāo)裂縫,并沒有更細(xì)致地考慮圖像的空間信息,導(dǎo)致分割后的目標(biāo)裂縫連續(xù)性較差。
目前,由于深度學(xué)習(xí)模型在視覺應(yīng)用中取得了大量成果,已有大量的工作者致力開發(fā)應(yīng)用于圖像分割的深度學(xué)習(xí)模型。為了更加智能化地將裂縫完整地提取出來,本文引入全卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行裂縫分割。
卷積神經(jīng)網(wǎng)絡(luò)早期主要應(yīng)用于圖像分類領(lǐng)域[14-15],但隨著計(jì)算機(jī)算力逐步增強(qiáng)和研究者對(duì)卷積神經(jīng)網(wǎng)絡(luò)的深入研究,部分學(xué)者著手利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行語義分割,其利用像素點(diǎn)周圍的像素塊作為輸入數(shù)據(jù),通過大量的數(shù)據(jù)進(jìn)行訓(xùn)練得到訓(xùn)練完畢的網(wǎng)絡(luò)模型,進(jìn)而可以測(cè)試出像素塊中心點(diǎn)的類別,最終實(shí)現(xiàn)圖像像素點(diǎn)分類。該算法存在以下缺陷:1)選擇像素點(diǎn)周圍的像素塊作為該像素點(diǎn)的輸入數(shù)據(jù)時(shí),會(huì)增加模型的儲(chǔ)存空間;2)圖像塊大小決定感知域大小,當(dāng)像素點(diǎn)的圖像塊選擇較大時(shí),不僅計(jì)算量會(huì)成倍增加,而且還占用更多的內(nèi)存空間,導(dǎo)致模型訓(xùn)練效率低下;而當(dāng)像素點(diǎn)圖像塊選擇較小時(shí),又會(huì)因感知域較小,只能提取到圖像的部分特征,導(dǎo)致圖像分割效果欠佳;3)相鄰像素點(diǎn)的像素塊中包含很多重合的像素點(diǎn),在圖像卷積計(jì)算過程中致使計(jì)算冗余,降低網(wǎng)絡(luò)的運(yùn)行效率;4)卷積神經(jīng)網(wǎng)絡(luò)模型中的全連接層[16]附帶的大量權(quán)重和偏置參數(shù)將進(jìn)一步降低網(wǎng)絡(luò)的訓(xùn)練效率。基于卷積網(wǎng)絡(luò)存在的以上問題,卷積神經(jīng)網(wǎng)絡(luò)很少被用來解決圖像分割問題。
直到2015年,Long等開發(fā)了一種能自動(dòng)將圖像目標(biāo)對(duì)象分割出來的全卷積神經(jīng)網(wǎng)絡(luò)(FCN)[17],它在沒有全連接層的情況下實(shí)現(xiàn)了像素點(diǎn)分類,并獲得較好的分割效果。全卷積神經(jīng)網(wǎng)絡(luò)是端到端的網(wǎng)絡(luò)模型,在分割精度和速度方面相較于卷積模型都有明顯提高。其關(guān)鍵技術(shù)是在卷積層或池化層后面緊接反卷積層,反卷積層通過上采樣操作使輸出層的圖像大小與原始圖像相同,這種改變給分割模型帶來了以下優(yōu)點(diǎn):1)網(wǎng)絡(luò)輸入層支持任意大小的圖像,不要求所有訓(xùn)練集和測(cè)試集的圖像大小必須相同,使模型具有更強(qiáng)的泛化能力;2)避免了利用像素周圍的像素塊作為模型的輸入數(shù)據(jù),減少了網(wǎng)絡(luò)的儲(chǔ)存空間,使網(wǎng)絡(luò)訓(xùn)練效率大大提高;3)利用卷積操作在整幅圖上提取全局特征,能有效提高圖像的分割精度。
全卷積神經(jīng)網(wǎng)絡(luò)的層級(jí)結(jié)構(gòu)如圖5所示,從圖中可以看出,全卷積神經(jīng)網(wǎng)絡(luò)的編碼階段通過卷積、池化組合實(shí)現(xiàn)了圖像的特征提取,且在編碼階段的第5次池化運(yùn)算后,圖像大小變成輸入圖像的1/32,為了實(shí)現(xiàn)圖像分割,即圖像像素級(jí)分類,需要對(duì)卷積、池化后的特征圖采取反卷積操作(上采樣),依據(jù)上采樣具體操作流程的差異將網(wǎng)絡(luò)命名成FCN-32s、FCN-16s和FCN-8s。FCN-32s是把編碼階段的特征提取結(jié)果直接進(jìn)行32倍的反卷積操作,使其恢復(fù)到原圖大小,該網(wǎng)絡(luò)模型對(duì)圖像細(xì)節(jié)部分處理過于粗糙,分割后的目標(biāo)對(duì)象比較模糊,效果不佳。FCN-16s首先將卷積、池化階段的特征提取結(jié)果進(jìn)行2倍反卷積操作,然后把反卷積計(jì)算結(jié)果與第四次池化操作后的特征圖相結(jié)合,最后針對(duì)結(jié)合后的結(jié)果進(jìn)行16倍反卷積操作得到圖像分割結(jié)果,該網(wǎng)絡(luò)模型分割效果優(yōu)于FCN-32s。FCN-8s首先將卷積、池化階段的特征提取結(jié)果進(jìn)行2倍反卷積操作,把反卷積計(jì)算結(jié)果與第四次池化操作后的特征圖相結(jié)合,然后利用2倍反卷積操作處理上述結(jié)果,再將其與第三次池化操作后的特征圖相結(jié)合,最終針對(duì)結(jié)合后的結(jié)果進(jìn)行8倍反卷積操作得到圖像的最終分割結(jié)果,該網(wǎng)絡(luò)模型分割結(jié)果優(yōu)于FCN-16s。
圖5 全卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
為了更好地提取圖像中的目標(biāo)裂縫,本文提出一種基于全卷積神經(jīng)網(wǎng)絡(luò)的橋梁裂縫圖像自動(dòng)分割模型(Bridge Crack Image-Automatic Segmentation, BCI-AS),BCI-AS全卷積模型依據(jù)關(guān)鍵技術(shù)可以分為收縮路徑和擴(kuò)張路徑兩部分,收縮路徑主要通過多個(gè)卷積層以及池化層的組合來提取重要特征,擴(kuò)張路徑主要利用反卷積操作還原圖像大小并實(shí)現(xiàn)目標(biāo)裂縫的提取,該網(wǎng)絡(luò)模型的框架結(jié)構(gòu)如圖6所示。
從圖6可以看出,除去輸入層和輸出層,BCI-AS模型包含9個(gè)模塊,具體內(nèi)容如下:
輸入層的輸入對(duì)象是經(jīng)過預(yù)處理后大小為L×L×1的圖像。
第一模塊由兩個(gè)卷積層以及一個(gè)池化層構(gòu)成,兩個(gè)卷積層均有64個(gè)卷積核。除了輸出層以外,模型中所有卷積層都利用“Relu”激活函數(shù),卷積核窗口均為3×3,步長為1;模型中所有池化層均采用最大池化的方式,池化模板為2×2,步長為2。第一模塊輸出特征圖大小為(L/2)×(L/2)×64。
第二模塊的層級(jí)結(jié)構(gòu)和第一模塊相似,區(qū)別在于這兩個(gè)卷積層均有128個(gè)卷積核,即兩個(gè)卷積操作后得到圖像的128個(gè)特征。第二模塊輸出特征圖大小為(L/4)×(L/4)×128。
第三模塊的層級(jí)結(jié)構(gòu)與第二模塊相似,只是兩個(gè)卷積層的卷積核數(shù)量不同,該模塊卷積核的個(gè)數(shù)為256。第三模塊輸出特征圖大小為(L/8)×(L/8)×256。
第四模塊的層級(jí)結(jié)構(gòu)與第三模塊相似,也是兩個(gè)卷積層的卷積核數(shù)量不同,該模塊卷積核的數(shù)量為512個(gè)。第四模塊輸出特征圖大小為(L/16)×(L/16)×512。
第五模塊僅有兩個(gè)卷積層,它們的卷積核數(shù)量都是1 024個(gè)。該模塊沒有池化層,輸出特征圖大小為(L/16)×(L/16)×1 024。
第六模塊由一個(gè)反卷積層、一個(gè)特征組合層和兩個(gè)卷積層構(gòu)成,其中,所有模塊中反卷積層的卷積核都為3×3,步長為2。該模塊反卷積操作后,圖像大小擴(kuò)大一倍,得到的圖像特征數(shù)量為512;特征組合層是將本模塊上采樣層得到的結(jié)果與第四模塊卷積操作后得到的特征組合起來,將圖像的特征擴(kuò)展一倍,此時(shí)圖像特征數(shù)量為1 024;經(jīng)過兩個(gè)卷積操作后,圖像的特征數(shù)量變?yōu)?12個(gè)。第六模塊輸出特征圖大小為(L/8)×(L/8)×512。
第七模塊的層級(jí)結(jié)構(gòu)和第六模塊相似。該模塊反卷積操作后,圖像相較上一模塊擴(kuò)大一倍,得到的圖像特征數(shù)量為256;特征組合層是將本模塊上采樣層得到的結(jié)果與第三模塊卷積操作后得到的特征組合起來,將圖像的特征擴(kuò)展一倍,此時(shí)圖像特征數(shù)量為512;兩個(gè)卷積層操作后,得到圖像的256個(gè)特征。第七模塊輸出特征圖大小為(L/4)×(L/4)×256。
第八模塊的層級(jí)結(jié)構(gòu)與第七模塊相似。該模塊反卷積操作后,圖像大小相較于上一模塊擴(kuò)大一倍,得到的圖像特征數(shù)量為128;特征組合層是將本模塊上采樣層得到的結(jié)果與第二模塊卷積操作后得到的特征組合起來,將圖像的特征擴(kuò)展一倍,此時(shí)圖像特征數(shù)量為256;兩個(gè)卷積層操作后,得到的特征數(shù)量為128。第八模塊輸出特征圖大小為(L/2)×(L/2)×128。
第九模塊的層級(jí)結(jié)構(gòu)與第八模塊相似。該模塊反卷積操作后,圖像大小相較于上一模塊擴(kuò)大一倍,得到的圖像特征數(shù)量為64;特征組合層是將本模塊上采樣層得到的結(jié)果與第二模塊卷積操作后得到的特征組合起來,將圖像的特征擴(kuò)展一倍,此時(shí)圖像特征數(shù)量為128;兩個(gè)卷積層操作后,得到的特征數(shù)量為64。第九模塊輸出特征圖大小為L×L×64。
輸出層只有一個(gè)卷積層,其中卷積核窗口為1×1,卷積核數(shù)量是2個(gè),即圖像的前景(目標(biāo)裂縫)與背景,激勵(lì)函數(shù)為“Sigmoid”。最終輸出圖像大小為L×L×2。
本文采用Python語言并調(diào)用TensorFlow深度學(xué)習(xí)框架來搭建BCI-AS卷積模型。
2.3.1數(shù)據(jù)集的準(zhǔn)備
訓(xùn)練BCI-AS全卷積網(wǎng)絡(luò)模型前,第一步,選取上述預(yù)處理后的GPM數(shù)據(jù)集制作相應(yīng)的標(biāo)簽圖像,即將圖像中的裂縫用白色(像素灰度值255)標(biāo)記出來,圖像的其余背景部分設(shè)置為黑色(像素灰度值為0),并將標(biāo)記好的圖像保存為PNG格式;第二步,將標(biāo)記好的標(biāo)簽圖像與數(shù)據(jù)圖像一一對(duì)應(yīng)起來并進(jìn)行編號(hào);第三步,對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行批量處理,即數(shù)據(jù)的batch操作,批量輸入多張訓(xùn)練圖像,并且輸入數(shù)據(jù)中的圖像與標(biāo)簽一一對(duì)應(yīng),經(jīng)過上述步驟后就得到BCI-AS模型的數(shù)據(jù)集。
2.3.2模型超參數(shù)的設(shè)置
本文以訓(xùn)練過程的損失函數(shù)值和準(zhǔn)確率來評(píng)判模型訓(xùn)練效果,以測(cè)試的準(zhǔn)確率來評(píng)判模型的泛化能力,然后通過對(duì)比不同參數(shù)下模型的測(cè)試結(jié)果,在Tensorflow深度學(xué)習(xí)框架中調(diào)用sparse_softmax_cross_entropy_with_logits函數(shù)作為訓(xùn)練BCI-AS模型的損失函數(shù),采用自適應(yīng)矩(Adaptive Moment Estimation)依據(jù)訓(xùn)練情況動(dòng)態(tài)調(diào)整學(xué)習(xí)率,初始學(xué)習(xí)率(init_learning_rate)設(shè)置為1×e-3,訓(xùn)練批次(batch_size)大小為6,訓(xùn)練輪數(shù)總計(jì)3 000次。
2.3.3模型訓(xùn)練結(jié)果
隨著訓(xùn)練過程的推進(jìn),經(jīng)過3 000次迭代,分割準(zhǔn)確率達(dá)到94.45%。最終模型訓(xùn)練階段的損失函數(shù)值和準(zhǔn)確率的變化曲線如圖7和圖8所示。
圖7 BCI-AS模型訓(xùn)練損失函數(shù)變化曲線
圖8 BCI-AS模型訓(xùn)練準(zhǔn)確率變化曲線
2.3.4圖像分割結(jié)果
將圖像輸入到訓(xùn)練完畢的全卷積神經(jīng)網(wǎng)絡(luò)分割模型中,圖像的分割效果見圖9。
a—預(yù)處理后的圖像;b—分割后的效果。
由圖9可以看出,基于全卷積神經(jīng)網(wǎng)絡(luò)分割算法定位精度高,噪聲相對(duì)較少,分割后裂縫具有良好的連續(xù)性,能為后續(xù)裂縫幾何參數(shù)計(jì)算做好充分準(zhǔn)備。另外,該算法只需在訓(xùn)練時(shí)調(diào)整超參數(shù),待模型訓(xùn)練好后,可直接對(duì)裂縫圖像進(jìn)行分割,操作方便,在處理大批量圖像時(shí)具有顯著優(yōu)勢(shì)。
連通域標(biāo)記是分析二值圖像的重要手段,它主要通過特定的規(guī)則標(biāo)記二值圖像中的目標(biāo)對(duì)象,讓圖像中每個(gè)單獨(dú)連通的目標(biāo)區(qū)域成為有特定標(biāo)簽的塊[18],進(jìn)而計(jì)算各個(gè)標(biāo)識(shí)塊的幾何特征值,最終達(dá)到去除噪聲或?qū)δ繕?biāo)區(qū)域進(jìn)行分析計(jì)算的目的。
由于像素是分析二值圖像的基本單位,它的鄰域范圍內(nèi)有8個(gè)像素點(diǎn)。根據(jù)鄰接像素點(diǎn)的數(shù)量和位置的差異,連通域標(biāo)記可以具體分為4連通域標(biāo)記和8連通域標(biāo)記,其中,4連通域標(biāo)記的4個(gè)位置對(duì)應(yīng)中心像素的左、右、上、下4個(gè)像素點(diǎn),8連通域標(biāo)記的8個(gè)位置對(duì)應(yīng)中心像素的左上、上、右上、左、右、左下、下、右下8個(gè)像素點(diǎn),上述兩種連通域標(biāo)記的鄰接關(guān)系如圖10所示。
a—4連通;b—8連通。
連通域標(biāo)記是對(duì)目標(biāo)對(duì)象進(jìn)行幾何特征分析的前提,它的實(shí)質(zhì)就是依序掃描整張圖像,然后將目標(biāo)像素點(diǎn)編號(hào)標(biāo)記,同一連通域的像素點(diǎn)使用相同的編號(hào)。若M為裂縫二值圖像,分別利用4連通域和8連通域?qū)ζ溥M(jìn)行標(biāo)記,標(biāo)記后的結(jié)果分別為M1和M2(0、255為圖像的灰度值,A、B、C為標(biāo)記后連通域的編號(hào)),如圖11所示。
圖11 4連通域和8連通域的標(biāo)記結(jié)果
從圖11連通域的標(biāo)記結(jié)果可知,采用4連通和8連通標(biāo)記結(jié)果具有很大差異,針對(duì)目標(biāo)裂縫自身特性以及后續(xù)計(jì)算的便利性,本文采用8連通進(jìn)行連通域的標(biāo)記,通過Open CV2中的findContours()函數(shù)來檢測(cè)圖像中的連通域,得到返回參數(shù)Contours,利用Contours可以獲取各個(gè)連通域的面積、最小外接矩形、周長、矩形度、最小外接橢圓的長短軸比和圓形度等特征參數(shù)。
在圖像分割操作后,對(duì)得到的二值圖像采用8連通域進(jìn)行標(biāo)記,并利用紅色的最小外接矩形框出二值圖像中的每個(gè)連通域,同時(shí)對(duì)每個(gè)連通域編號(hào),連通域標(biāo)記編號(hào)后的二值圖像如圖12所示。
a—形態(tài)學(xué)處理后裂縫;b—最小外接矩形框出的裂縫。
圖12中各個(gè)連通域的幾何特征值的計(jì)算結(jié)果如表1所示。
表1 二值圖像連通域幾何特征計(jì)算結(jié)果
由圖12和表1中各個(gè)連通域的數(shù)量和對(duì)應(yīng)的幾何特征值可以看出,經(jīng)過分割后的裂縫二值圖像中仍然存在部分噪聲,對(duì)后續(xù)橋梁裂縫相關(guān)信息的計(jì)算帶來干擾。本文主要利用橋梁裂縫自身的特性估算出裂縫連通域特征參數(shù)的大致范圍,通過連通域特征參數(shù)將噪聲連通域刪除,得到無噪聲的裂縫二值圖像,為后續(xù)裂縫寬度的計(jì)算奠定堅(jiān)實(shí)的基礎(chǔ)。
混凝土橋梁表面的裂縫主要呈現(xiàn)細(xì)長連續(xù)的線性形態(tài),其面積明顯大于噪聲的面積,分布是隨機(jī)的、不規(guī)則的、比較復(fù)雜的。
根據(jù)裂縫特性,具體通過以下四點(diǎn)來識(shí)別目標(biāo)裂縫:
1)二值圖像中,噪聲連通域的面積比裂縫小,可以設(shè)定一個(gè)閾值T,當(dāng)連通域的面積不超過設(shè)定閾值T,將此連通域視為噪聲區(qū)域,并將其刪除。
2)大多數(shù)情況下,橋梁裂縫在圖像中呈現(xiàn)細(xì)長的線性形態(tài),因此其最小外接矩形的長寬比通常比較大。
3)裂縫大多呈一定的彎曲狀,另外,由于混凝土橋梁裂縫寬度都很小,它呈現(xiàn)在圖像中也比較纖細(xì),所以,它的連通域矩形度值也比較小。
4)裂縫形狀是復(fù)雜的、不規(guī)則的和無規(guī)律可循的,因此它的連通域圓形度值也很小。
根據(jù)裂縫連通域的特性,本文將面積S<300、最小外接矩形長寬比P1<5、矩形度P2>0.5、圓形度D>0.5的連通域判定為噪聲,把這些判定條件加入到程序中,并使用 cv2.drawContours(img,[contours[i]], 0, 0,-1)函數(shù)把判定為噪聲的連通域變?yōu)楸尘?,最終得到剔除噪聲后的效果如圖13所示。
a—分割后的二值圖;b—剔除噪聲區(qū)域后的二值圖。
裂縫寬度是評(píng)價(jià)橋梁結(jié)構(gòu)安全的重要指標(biāo)之一,當(dāng)橋梁裂縫寬度超過限值時(shí),部分混凝土?xí)顺龉ぷ?,?dǎo)致預(yù)應(yīng)力鋼束和普通鋼筋承受更大的負(fù)荷,此外,超過限值的裂縫還會(huì)造成鋼筋銹蝕,危及結(jié)構(gòu)安全。
近幾年研究者提出多種計(jì)算裂縫寬度的方法,代表性算法以以下兩類為主:王聰雅直接采用投影法進(jìn)行計(jì)算,即將裂縫上下邊緣的最大像素點(diǎn)數(shù),經(jīng)比例計(jì)算后的值作為裂縫寬度[19]。王鵬利用裂縫連通域面積與裂縫細(xì)化后長度的比值作為裂縫平均寬度。但是由于大多數(shù)情況下,橋梁結(jié)構(gòu)裂縫是不規(guī)則的曲線,裂縫不同位置的寬度差別很大,并且裂縫寬度方向需垂直于裂縫走向,所以采用以上兩種方法進(jìn)行裂縫寬度計(jì)算存在較大誤差[20]。為了使計(jì)算結(jié)果更準(zhǔn)確,本文提出利用基于投影技術(shù)的最小二乘擬合中心線法計(jì)算裂縫寬度。
基于投影技術(shù)的最小二乘擬合中心線法是在投影法的基礎(chǔ)上,依據(jù)目標(biāo)裂縫上下邊緣像素點(diǎn)的坐標(biāo),進(jìn)而獲得裂縫中心線像素點(diǎn)的坐標(biāo),然后利用最小二乘法擬合裂縫中心線的函數(shù),依據(jù)函數(shù)表達(dá)式可知裂縫中心線的斜率,進(jìn)而得到裂縫切線方向的夾角,最終計(jì)算出裂縫的實(shí)際寬度。基于投影技術(shù)的最小二乘擬合中心線法的裂縫寬度計(jì)算示意如圖14所示,其具體算法如下:
圖14 基于投影技術(shù)最小二乘擬合中心線法裂縫寬度的計(jì)算示意
1)將分類后的二值圖像進(jìn)行旋轉(zhuǎn)。將縱向裂縫圖像旋轉(zhuǎn)90°,斜向裂縫圖像旋轉(zhuǎn)45°,橫向裂縫圖像不用旋轉(zhuǎn)。
2)將旋轉(zhuǎn)后圖像的水平方向作為橫坐標(biāo)(X軸),然后,把圖像向X軸投影,得到橫坐標(biāo)下裂縫的像素點(diǎn)數(shù)。
5)圖像第n列裂縫的寬度值wn=w′ncosθ。
6)重復(fù)步驟3)至步驟5),直到掃描完整張圖像。
7)最終取max(wn)作為該條裂縫的寬度值。
按以上步驟計(jì)算橋梁裂縫寬度,把裂縫的上述信息標(biāo)記在圖中,如圖15所示。
L和W分別為裂縫的計(jì)算長度和寬度。
為了更好地對(duì)比上述兩種方法計(jì)算結(jié)果的準(zhǔn)確率,本文將實(shí)測(cè)結(jié)果與圖像處理結(jié)果進(jìn)行對(duì)比,結(jié)果如表2~4所示。
表2 本文方法裂縫寬度測(cè)量結(jié)果
從表2中,基于投影技術(shù)的最小二乘擬合中心線的方法計(jì)算結(jié)果相對(duì)誤差較小,相對(duì)誤差都在6%以下,檢測(cè)準(zhǔn)確率較高,并且該算法計(jì)算速度快。
從表3和表4可看出,由于文獻(xiàn)[19]的方法沒有準(zhǔn)確地定位裂縫的邊界,因此準(zhǔn)確率偏低。文獻(xiàn)[20]的方法由于是通過面積和周長的比值作為裂縫的平均寬度,產(chǎn)生的隨機(jī)誤差也相對(duì)較大。因此本文算法準(zhǔn)確率更高。為了進(jìn)一步驗(yàn)證利用基于投影技術(shù)最小二乘擬合中心線算法對(duì)裂縫寬度計(jì)算的精度,在200張?jiān)瓐D上利用本文算法統(tǒng)計(jì)檢測(cè)結(jié)果與實(shí)際測(cè)量結(jié)果并進(jìn)行對(duì)比。試驗(yàn)結(jié)果表明:200張裂縫圖片寬度提取平均誤差為6.76%,表明本文提出的算法具有理想的計(jì)算能力。
表3 文獻(xiàn)[19]方法裂縫寬度測(cè)量結(jié)果
表4 文獻(xiàn)[20]方法裂縫寬度測(cè)量結(jié)果
混凝土結(jié)構(gòu)表面裂縫的提取一直是圖像處理中的難點(diǎn)[21],早期的基于閾值和基于邊緣檢測(cè)算法在混凝土橋梁裂縫分割中應(yīng)用頗多,但存在去噪效果不明顯、分割后裂縫連續(xù)性較差等問題,這會(huì)直接影響到最終裂縫提取的準(zhǔn)確性。近年來,由于深度學(xué)習(xí)模型在廣泛的視覺應(yīng)用中取得了成功,已經(jīng)有大量的工作致力于開發(fā)使用深度學(xué)習(xí)模型的圖像分割方法?;诖?,本文提出一種基于全卷積神經(jīng)網(wǎng)絡(luò)的橋梁裂縫圖像自動(dòng)分割模型(BCI-AS)和一種基于投影技術(shù)的最小二乘擬合中心線的裂縫寬度測(cè)量算法,通過對(duì)比分析,研究得到的主要結(jié)論如下:
1)目前橋梁裂縫檢測(cè)方面缺乏開放的、通用的大樣本圖像數(shù)據(jù)庫,而深度學(xué)習(xí)的準(zhǔn)確性依賴于大規(guī)模數(shù)據(jù)集樣本的訓(xùn)練,因此本文利用無人機(jī)攝取了大量橋梁裂縫圖像,但是數(shù)據(jù)量還遠(yuǎn)遠(yuǎn)不夠,開展數(shù)據(jù)樣本采集整理是未來主要任務(wù)之一。
2)由于圖片中光照和噪聲的干擾,將會(huì)很大程度上影響裂紋的提取準(zhǔn)確性,因此圖像增強(qiáng)是裂縫分割的前期和不可缺少的工作。本文提出了GPM圖像預(yù)處理方法,然而存在的局限性在于其對(duì)于單一或小樣本圖像數(shù)據(jù)處理效果較好,而對(duì)大規(guī)模圖像數(shù)據(jù)集做統(tǒng)一處理自適應(yīng)性較差,因此開展針對(duì)BCI-AS模型訓(xùn)練的大規(guī)模圖像自適應(yīng)預(yù)處理方法是未來的重要任務(wù)。
3)BCI-AS全卷積模型分割結(jié)果顯示,該算法能高效準(zhǔn)確地提取裂縫,同時(shí)保證了裂縫的連續(xù)性,為后續(xù)裂縫寬度計(jì)算做好充分準(zhǔn)備。
4)對(duì)分割后的二值圖像進(jìn)行連通域標(biāo)記,同時(shí),計(jì)算連通域的幾何參數(shù),通過裂縫連通域所具有的特性設(shè)定閾值,剔除噪聲區(qū)域的連通域,獲得純凈的裂縫二值圖像。
5)本文提出基于投影技術(shù)的最小二乘擬合中心線的方法進(jìn)行計(jì)算,經(jīng)實(shí)測(cè)驗(yàn)證,計(jì)算誤差在7%以內(nèi),證明了本算法計(jì)算的有效性。