馬東群,李寶林,王秋月,何先波
(西華師范大學(xué)計算機學(xué)院,四川 南充 637000)
關(guān)于橋梁病害自動識別的研究很多,但根據(jù)真實數(shù)據(jù)集并切實推廣應(yīng)用的相對較少。其中寇瀟等人[1-5]采用正圓可調(diào)粗細小圓圈紅外線激光模組、激光測距儀、單反相機等拍攝搜集了不同橋梁、不同位置、不同時間下的144張照片數(shù)據(jù),通過Photoshop以及編程工具的處理后,作為數(shù)據(jù)集使用;李良福等人[6-8]使用基于人工擴增的數(shù)據(jù)及預(yù)處理的方法,將2000張橋梁裂縫圖像歸一化為1024×1024分辨率的橋梁裂縫圖像,經(jīng)滑動窗口算法,用W×H固定大小的窗口不重疊進行滑動,將窗口覆蓋下的小切片作為一個ROI感興趣區(qū)域,再把擁有橋梁裂縫的切片歸納為橋梁裂縫面元,不擁有橋梁裂縫的切片歸納為橋梁背景面元,集成為擁有7000張橋梁裂縫面元的數(shù)據(jù)集以及48000張橋梁背景面元的數(shù)據(jù)集,用這2個數(shù)據(jù)集作為橋梁裂縫訓(xùn)練、比對、測試的數(shù)據(jù)集;劉洪公等人[9-11]通過Raspberry Pi處理器采集圖像,通過3G無線網(wǎng)絡(luò)傳輸圖像數(shù)據(jù),利用服務(wù)器運用圖像處理技術(shù)對釆集到的圖像進行分析處理,最后使用卷積神經(jīng)網(wǎng)絡(luò)技術(shù)(CNN)對裂縫進行分類識別。
而本文所采用的數(shù)據(jù)來源,是一款公路橋梁專業(yè)定檢系統(tǒng)下所收集的真實橋梁病害數(shù)據(jù),在數(shù)據(jù)上具有真實性和可靠性等特點。該系統(tǒng)集合了不同地區(qū)、不同橋梁類型、不同環(huán)境以及不同病害位置的諸多橋梁并且進行了較好的推廣應(yīng)用。目前系統(tǒng)共有數(shù)萬座橋,總共百萬余條病害,其中裂縫病害數(shù)十萬條,本文將在這些數(shù)據(jù)的基礎(chǔ)上進行相關(guān)數(shù)據(jù)的研究和分析。
橋梁橫向裂縫病害數(shù)據(jù)來源于一款公路橋梁定期檢測系統(tǒng),首先需要對該系統(tǒng)進行數(shù)據(jù)庫建模,關(guān)聯(lián)并批量提取出橋梁橫向裂縫圖片數(shù)據(jù)。對數(shù)據(jù)庫建模和關(guān)聯(lián)的詳細過程是先建立橋梁裂縫數(shù)據(jù)關(guān)系模式BDPS(BF,DF,PF,SF,HJ),其中BF表示橋梁基本信息集,DF表示橋梁病害信息集,PF表示橋梁病害圖片信息集,SF表示橋梁病害標(biāo)度信息集,HJ表示環(huán)境。且不同的地域、不同的氣候條件、不同的外界情況導(dǎo)致病害也不一樣。本文結(jié)合病害類型及病害類型所對應(yīng)的標(biāo)度信息自動識別所拍攝的病害圖片。根據(jù)上文描述,特此給出如下定義:
定義1橋梁基本信息集BF。該信息集包含橋梁編號Bno、橋梁名稱、橋梁類型、橋梁材質(zhì)、橋梁結(jié)構(gòu)、部件名稱、構(gòu)件名稱和橋梁受力形式。用公式(1)表示:
BF=bridgeInfo(Bno,Bname,type,material,struc,comp,member,weight)
(1)
定義2橋梁病害信息集DF。該信息集包含病害編號Dno、病害標(biāo)度編號Sno、病害名稱、病害描述。用公式(2)表示:
DF=diseaseInfo(Dno,Sno,Dname,describe)
(2)
定義3橋梁病害示意圖信息集PF。該信息集包含病害圖片編號Pno、病害圖片名稱Pname、病害圖片標(biāo)題等信息。用公式(3)表示:
PF=pictureInfo(Pno,Pname,title,category,url,Dno)
(3)
定義4橋梁病害標(biāo)度信息集SF,該信息集包含病害標(biāo)度編號Sno、病害編號Dno、當(dāng)前病害標(biāo)度、病害定性描述和病害定量描述。用公式(4)表示:
SF=scaleInfo(Sno,Dno,curscale,qulitative,quantify)
(4)
定義5裂縫病害指標(biāo)描述模型DD。病害所涉及的指標(biāo)非常龐雜,不同的病害所涉及的指標(biāo)不一樣,本文主要從橋梁裂縫病害入手,一般來說,橋梁裂縫病害主要的標(biāo)度有寬度、長度、深度,及構(gòu)建病害總面積和最大單出面積,可用公式(5)表示:
DD=diseaseDescription(width,longth,depth,totalArea,maxArea)
(5)
根據(jù)上述定義,本文將對上述數(shù)據(jù)進行關(guān)聯(lián)、抽取、優(yōu)化并隨機提取出該系統(tǒng)對應(yīng)的病害位置、標(biāo)度信息和1000張橫向裂縫作為訓(xùn)練數(shù)據(jù)集。
由于系統(tǒng)中提取的病害圖片是由不同的設(shè)備進行采集,所以分辨率有所區(qū)別,因此將圖像像素作為輸入提供給神經(jīng)網(wǎng)絡(luò)之前,先將圖像進行歸一化處理,分別處理成分辨率為75 px、150 px和300 px。TensorFlow[12]分別提供了雙線性插值法、最近鄰居法、雙三次插值法和面積插值法對圖像進行歸一化處理,其效果如圖1所示。
圖1 分辨率為75 px、150 px、300 px的4種插值算法預(yù)處理
完成1000張橫向裂縫圖片的預(yù)處理后,接下來進行數(shù)據(jù)集的建立,TensorFlow提供了TFRecord標(biāo)準(zhǔn)接口讀入文件,制作數(shù)據(jù)集。TFRecord是一種將數(shù)據(jù)集內(nèi)容及標(biāo)簽放在一起的二進制文件,能更好地利用內(nèi)存。本文制作數(shù)據(jù)集的流程如圖2所示。
在圖2中,先將預(yù)處理后的橫向裂縫圖片存儲到文件夾hxlf中,然后將hxlf文件夾中的原始橫向裂縫圖片制作成TFRecord二進制文件,在TFRecord二進制文件夾中將橫向裂縫圖片的名稱統(tǒng)一命名為index_samples_label格式,其中index表示圖片的索引,samples表示分隔符,label表示圖片的標(biāo)簽。最后為了驗證TFRecord二進制文件的準(zhǔn)確性,對數(shù)據(jù)集部分圖片進行展示,展示的結(jié)果如圖3所示。
圖2 數(shù)據(jù)集的制作流程
圖3 數(shù)據(jù)集的建立及驗證
CNN模型[13]的構(gòu)建過程可以描述為:輸入層→[[卷積層]×M→池化層?]×N→[全連接層]×T,也就是M個卷積層疊加,然后疊加一個池化層,重復(fù)這個結(jié)構(gòu)N次,最后疊加T個全連接層。本文建立的CNN模型是由2層卷積、2層池化、2層全連接層和1個分類器組成的卷積模型,模型架構(gòu)如圖4所示。
圖4 CNN的模型架構(gòu)圖
在圖4中2層卷積加池化層進行圖片的特征提取,全連接層進行圖片的特征分析和識別,最后用softmax激活函數(shù)分類輸出識別結(jié)果。該模型的卷積算法如公式(6)所示。
(6)
式中,xm,n表示訓(xùn)練圖像第m行第n列像素;wi,j表示CNN卷積層中卷積核第i行第j列權(quán)重,b表示CNN卷積層中卷積核的偏置;ym,n表示特征圖第m行第n列輸出值;g表示激活函數(shù)。
CNN具有很強的學(xué)習(xí)能力和泛化能力[13-20],它的訓(xùn)練方式是找到訓(xùn)練數(shù)據(jù)集真實值與目標(biāo)函數(shù)之間的映射關(guān)系,該映射關(guān)系主要是通過CNN模型的訓(xùn)練來實現(xiàn),其訓(xùn)練的主要工作是更新模型的權(quán)值和偏置,具體訓(xùn)練流程如圖5所示。
在圖5中,CNN模型的訓(xùn)練分為2個過程,第一個過程是將1000張橫向裂縫數(shù)據(jù)集按照4∶1的比例分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,把訓(xùn)練數(shù)據(jù)集作為輸入樣本,輸入到CNN中進行訓(xùn)練。訓(xùn)練過程中首先通過正向傳播算法得到目標(biāo)樣本的預(yù)測值,然后計算目標(biāo)樣本真實值與預(yù)測值之間的差值,該差值被稱為誤差(也叫損失),用公式(7)表示。接下來對誤差進行評估,若滿足要求則直接通過全連接層進行分類輸出,若不滿足要求則進入第二個過程反向傳播過程,反向傳播算法主要是做模型參數(shù)的更新,也就是對權(quán)值和偏置進行更新,通過更新權(quán)值和偏置的方法來減小誤差值,如公式(8)所示,而更新模型參數(shù)最常用的算法是隨機梯度下降算法(Stochastic Gradient Descent, SGD),如公式(9)所示。
圖5 CNN模型訓(xùn)練流程圖
(7)
(8)
x(i+1)=x(i)-μL(w)
(9)
(10)
(11)
訓(xùn)練過程中全連接層權(quán)值、偏置每一步的變化如圖6~圖8所示。
圖6 300 px全連接層權(quán)重和偏置變化
圖7 150 px全連接層權(quán)重和偏置變化
圖8 75 px全連接層權(quán)重和偏置變化
為了獲取訓(xùn)練的效果,按照相同的迭代輪數(shù)(epochs)和輸入圖片的batch數(shù)量分別對分辨率為75 px、150 px和300 px的橫向裂縫圖片進行訓(xùn)練,得出在不同分辨率情況下橫向裂縫病害的訓(xùn)練精度、收斂性和效率如圖9~圖11所示。
圖9 收斂性
圖10 訓(xùn)練精度
圖11 訓(xùn)練效率
在圖9~圖11中,迭代輪數(shù)為200,黑色實線表示分辨率為300 px訓(xùn)練的結(jié)果,黑色虛線表示分辨率為150 px訓(xùn)練的結(jié)果,黑色小圓點表示分辨率為75 px訓(xùn)練的結(jié)果。通過對3種不同分辨率的橫向裂縫圖片訓(xùn)練,可得到以下實驗結(jié)論:
1)分辨率為300 px的預(yù)測精度率先接近1。如圖10,分辨率為300 px的橫向裂縫圖片在訓(xùn)練輪數(shù)為30時,預(yù)測精度就接近1,并保持穩(wěn)定;分辨率為150 px的橫向裂縫圖片在輪數(shù)為90時訓(xùn)練精度接近1并保持穩(wěn)定;分辨率為75 px的橫向裂縫圖片在輪數(shù)為200時訓(xùn)練精度才趨近于1。
2)分辨率為300 px的收斂速度比分辨率為75 px和150 px的更快,如圖9所示,分辨率為300 px的橫向裂縫圖片在迭代輪數(shù)為80時基本達到收斂,分辨率為150 px的橫向裂縫圖片在迭代輪數(shù)為130時達到收斂,分辨率為75 px的橫向裂縫圖片在迭代輪數(shù)為200時達到收斂,分辨率為300 px的收斂速度比分辨率為150 px和75 px的分別快出38.46%和60%。
3)如圖11所示,時間效率上分辨率為75 px的最快,每迭代10輪大概用時40 s;其次是分辨率為150 px,每迭代10輪大概用時100 s;分辨率為300 px的橫向裂縫圖片用時最長,每迭代10輪大概用時1200 s。
本文對3種分辨率的橫向裂縫圖片訓(xùn)練結(jié)果做測試分析,如表1~表3所示,前3張橫向裂縫圖片是經(jīng)過預(yù)處理的測試集圖片,后2張是實際環(huán)境中拍攝的橫向裂縫圖片。
表1 分辨率為300 px的橫向裂縫病害圖片識別結(jié)果
表2 分辨率為150 px的橫向裂縫病害圖片識別結(jié)果
表3 分辨率為75 px的橫向裂縫病害圖片識別結(jié)果
從表1~表3可以得出如下測試結(jié)論:
1)對于測試集中的橫向裂縫圖片,分辨率為300 px的識別效果最好,但識別時間最長;分辨率為75 px和150 px的次之。
2)對于實際環(huán)境中拍攝的橫向裂縫圖片,分辨率為300 px的識別效果最好;分辨率為150 px的次之,而分辨率為75 px的橫向裂縫圖片能正確識別,但識別的準(zhǔn)確率較低。識別時間上像素越低的用時越短,像素越大的用時越長,但單張圖片識別時間相差并不太大。
因此,在具體的工程項目中,需結(jié)合實際情況,選用識別效果最好的模型作為工程應(yīng)用中使用的模型。
劉洪公等人[9]提出了一種基于CNN的圖形圖像識別算法,該模型是一種基于LeNet卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)模型,本文采取該算法對相應(yīng)的數(shù)據(jù)集進行模擬仿真對比,在數(shù)據(jù)、參數(shù)和運行環(huán)境一致的情況下其收斂性和訓(xùn)練精度對比結(jié)果如圖12和圖13所示。
圖12 2種模型收斂性比對
圖13 2種模型訓(xùn)練精度比對
在圖12和圖13中,黑色實線表示本文模型訓(xùn)練的結(jié)果,黑色虛線表示劉洪公等人提出的算法模型訓(xùn)練的結(jié)果。通過2種不同模型間的性能比較,可得到以下實驗結(jié)論:
1)本文的預(yù)測精度高于劉洪公等人提出模型的訓(xùn)練精度。如圖13,本文在訓(xùn)練輪數(shù)為120時,預(yù)測精度在99%以上,并且保持穩(wěn)定;而劉洪公等人提出模型的訓(xùn)練精度在輪數(shù)為200時,預(yù)測精度才達到96%左右,本文的預(yù)測精度比劉洪公等人提出的模型預(yù)測精度高出約4個百分點。
2)本文的收斂速度比劉洪公等人提出的模型收斂速度快,如圖12所示,本文在迭代輪數(shù)為120時達到收斂,而劉洪公等人提出的模型收斂速度在迭代輪數(shù)為200時還未達到收斂。
本文主要對橋梁橫向裂縫病害數(shù)據(jù)進行了分析與識別,建立了相應(yīng)的數(shù)據(jù)模型,并根據(jù)病害圖片特征詳細地描述了針對具體病害圖片如何進行目標(biāo)檢測和病害的自動標(biāo)識過程和方法。在具體的工程中,該方法得到了相應(yīng)的應(yīng)用,并且取得了良好的效果,大大減輕了檢測人員的工作量。本文在實驗上比較單一,下一步將進行拓展,做更深入的研究,將所有種類的裂縫病害都用來做深度學(xué)習(xí),學(xué)習(xí)所有裂縫病害的特征,實現(xiàn)所有裂縫病害的自動識別,再結(jié)合《公路橋梁技術(shù)狀況評定標(biāo)準(zhǔn)》(JTG/T H21-2011)[21]對橋梁裂縫病害做定位、定因和定性判斷,然后結(jié)合現(xiàn)有的公路橋梁定檢系統(tǒng)對橋梁進行專業(yè)技術(shù)評定和自動生成評定報告并給出相應(yīng)的維護建議。