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