国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度學(xué)習(xí)的橋梁裂縫檢測算法研究

2019-10-14 06:45李良福馬衛(wèi)飛
自動(dòng)化學(xué)報(bào) 2019年9期
關(guān)鍵詞:面元像素卷積

李良福 馬衛(wèi)飛 李 麗 陸 鋮

近年來,我國的公路橋梁建設(shè)取得了空前發(fā)展,特別是在《國家公路網(wǎng)規(guī)劃2013 年–2030 年》和《十三五規(guī)劃綱要》的推動(dòng)下,中國的橋梁總數(shù)已穩(wěn)居世界第一[1].隨著橋梁的建成通車,橋梁的維護(hù)和管理成為保障橋梁安全運(yùn)營的關(guān)鍵.橋梁的質(zhì)量安全關(guān)系國計(jì)民生,關(guān)系千家萬戶.橋梁垮塌的原因往往都是由于沒有進(jìn)行科學(xué)及時(shí)的橋梁病害檢測,因此,必須選擇科學(xué)合理的方法對橋梁病害進(jìn)行檢查,定期對其健康狀況進(jìn)行評估[2].裂縫作為最主要的橋梁病害之一,嚴(yán)重影響著橋梁的安全運(yùn)營,甚至?xí)l(fā)生橋毀人亡的事故.因此,對橋梁裂縫進(jìn)行有效的檢測識別至關(guān)重要.隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,特別是圖像處理、模式識別與計(jì)算機(jī)視覺技術(shù)的發(fā)展,基于圖像的無損檢測技術(shù)已經(jīng)成為國內(nèi)外橋梁缺陷檢測的研究熱點(diǎn).近年來,為了從影像中準(zhǔn)確、快速、高效地提取裂縫,國內(nèi)外學(xué)者對此進(jìn)行了廣泛而深入的研究,并且取得了一些研究成果.Oh等針對路面裂縫的檢測和提取,提出了一種迭代閾值分割的方法[3];Li 等為了從影像中準(zhǔn)確地提取裂縫,提出了一種基于相鄰差分直方圖的裂縫分割算法[4];這類基于閾值分割的裂縫識別方法雖然簡單易用,但是并沒有考慮影像表面環(huán)境的變化以及光照、噪聲、紋理對于裂縫識別的影響,因此,很難取得穩(wěn)定的效果.針對此問題,Anders 等結(jié)合形態(tài)學(xué)處理和邏輯回歸算法對裂縫進(jìn)行檢測,利用統(tǒng)計(jì)學(xué)分類方法濾除噪聲,提高檢測精度[5];Varadharajan等基于對路面紋理、顏色和局部信息的分析,對城市路面的裂縫進(jìn)行了研究[6];Jahanshahi 等通過融合裂縫的深度信息,提出了一種新的裂縫檢測和評估方法[7];Amhaz 等和Zou 等針對路面裂縫的對比度低、連續(xù)性差等特點(diǎn),提出了一種基于最小代價(jià)路徑搜索的路面裂縫檢測算法[8?9];Oliveira 等構(gòu)造了兩個(gè)分類器,然后,用這兩個(gè)分類器分別對路面裂縫進(jìn)行檢測和分類[10];Tien 等在綜合考慮裂縫的亮度和連通性之后,提出了一種用于道路裂縫檢測的算法,簡稱FFA(Free-form anisotropy)算法[11].除了上述這些主流的裂縫檢測算法之外,還有很多其他的裂縫檢測算法[12?19].但是,橋梁裂縫圖像不同于傳統(tǒng)的路面裂縫、巖石裂縫圖像,它具有很多復(fù)雜的特性,比如背景紋理多樣復(fù)雜、噪聲種類繁多、分布無規(guī)律等.因此,傳統(tǒng)的裂縫檢測算法不能很好地對橋梁裂縫進(jìn)行檢測.

深度學(xué)習(xí),特別是深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)最近在圖像識別、視頻識別、語音識別中取得了巨大成功[20?21].但是,經(jīng)典的深度學(xué)習(xí)模型主要是針對大尺寸、整體目標(biāo)的分類模型或者檢測模型,比如AlexNet[22]、GoogLeNet[23?24]、Faster R-CNN 系列模型[25?26]等,例如采用Faster R-CNN 模型檢測到的目標(biāo)如圖1(a)和圖1(b)所示.如果將這些模型直接用于如圖1(c)所示的橋梁裂縫,由于它是具有拓?fù)浣Y(jié)構(gòu)的線性目標(biāo),效果將不會理想,只能得到一個(gè)目標(biāo)區(qū)域塊,而得不到裂縫的具體位置,如圖1(d)所示.因此,本文提出了一種基于深度學(xué)習(xí)的橋梁裂縫檢測算法.該算法首先利用滑動(dòng)窗口算法將橋梁裂縫圖像切分為16 像素×16 像素大小的切片,并將所有的切片分為橋梁裂縫面元和橋梁背景面元.然后,根據(jù)對這些面元圖像的分析,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的DBCC(Deep bridge crack classify)分類模型,用于橋梁背景面元和橋梁裂縫面元的識別.最后,結(jié)合改進(jìn)的窗口滑動(dòng)算法在整幅橋梁裂縫圖像中對橋梁裂縫進(jìn)行檢測.同時(shí),為了滿足橋梁裂縫檢測算法實(shí)時(shí)處理的要求,采用圖像金字塔和ROI 區(qū)域相結(jié)合的搜索策略對算法進(jìn)行加速.大量實(shí)驗(yàn)數(shù)據(jù)表明,與傳統(tǒng)算法相比,本文算法具有更好的識別率和更強(qiáng)的泛化能力.

1 基于人工擴(kuò)增的數(shù)據(jù)集預(yù)處理方法

使用深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行橋梁裂縫檢測,需要大量的、帶類別標(biāo)簽的橋梁裂縫圖像作為訓(xùn)練集、驗(yàn)證集和測試集.但是,到目前為止,全球還沒有公開的、帶類別標(biāo)簽的、用于深度學(xué)習(xí)的橋梁裂縫圖像數(shù)據(jù)集.如果直接用人工的方式去采集大量的橋梁裂縫圖像,這將是個(gè)非常嚴(yán)峻的問題.本文在對采集來的2 000 張橋梁裂縫圖像研究的基礎(chǔ)之上,提出一種基于滑動(dòng)窗口算法,專門用于橋梁裂縫圖像數(shù)據(jù)集的人工擴(kuò)增方法.

圖1 經(jīng)典深度學(xué)習(xí)模型和橋梁裂縫特點(diǎn)示意圖Fig.1 Schematic diagram of classical depth learning model and bridge crack characteristics

該人工擴(kuò)增方法首先將采集來的橋梁裂縫圖像歸一化為1 024×1 024 分辨率的橋梁裂縫圖像.然后,使用W ×H固定大小的窗口在橋梁裂縫圖像上不重疊地進(jìn)行滑動(dòng).同時(shí),把窗口覆蓋下的橋梁裂縫圖像的小切片作為一個(gè)ROI 感興趣區(qū)域.其中,把不包含橋梁裂縫小切片的圖像稱為橋梁背景面元,把包含橋梁裂縫的小切片稱為橋梁裂縫面元,具體過程如式(1)所示.

其中,W和H為滑動(dòng)窗口的寬和高,并且取W=H=16 像素;坐標(biāo)(imgRoiLx,imgRoiLy)為ROI 區(qū)域左上角的角點(diǎn)坐標(biāo),坐標(biāo)(imgRoiRx,imgRoiRy)為ROI 區(qū)域的右下角角點(diǎn)坐標(biāo),i和j的取值范圍分別為(0,1,2,···,srcImgw/W)和(0,1,2,···,srcImgh/H).srcImgw和srcImgh分別為被窗口滑動(dòng)的橋梁裂縫圖像的寬和高,令srcImgw=srcImgh=1 024 像素.最終,整個(gè)數(shù)據(jù)集人工擴(kuò)增的過程如圖2 所示.

圖2 橋梁裂縫面元數(shù)據(jù)集人工擴(kuò)增方式示意圖Fig.2 Schematic diagram of manual expansion of bridge crack surface metadata set

通過將采集來的2 000 張橋梁裂縫圖像隨機(jī)地劃分為兩個(gè)集合,每個(gè)集合包含1 000 張橋梁裂縫圖像,并且將這兩個(gè)集合分別命名為A集合和B集合.對A集合中的1 000 張橋梁裂縫圖像使用上述的數(shù)據(jù)集人工擴(kuò)增方式進(jìn)行數(shù)據(jù)集擴(kuò)增;然后,從這個(gè)巨大的、擴(kuò)增之后的數(shù)據(jù)集合中手動(dòng)地挑選出7 000 張橋梁裂縫面元圖像構(gòu)成橋梁裂縫面元數(shù)據(jù)集合,手動(dòng)地挑選出48 000 張橋梁背景面元圖像構(gòu)成橋梁背景面元圖像的數(shù)據(jù)集合.最后,將橋梁裂縫面元集合和橋梁背景面元集合拆分為訓(xùn)練集和驗(yàn)證集.其中,訓(xùn)練集包含6 000 張橋梁裂縫面元圖像,44 000 張橋梁背景面元圖像;驗(yàn)證集包含1 000 張橋梁裂縫面元圖像和4 000 張橋梁背景面元圖像.在訓(xùn)練集和驗(yàn)證集中,橋梁背景面元圖像所占的比例大于橋梁裂縫面元圖像所占的比例,之所以這樣劃分,是因?yàn)樵谝环鶚蛄毫芽p圖像中,橋梁裂縫區(qū)域所占整幅圖像的比例小于橋梁背景區(qū)域所占整幅圖像的比例.訓(xùn)練集和驗(yàn)證集構(gòu)建成功之后,分別對訓(xùn)練集和驗(yàn)證集中的橋梁裂縫面元圖像和橋梁背景面元圖像構(gòu)建相應(yīng)的類別標(biāo)簽.剩下B集合中的1 000張橋梁裂縫圖像構(gòu)成最終算法的測試集合.此外,本文為了推動(dòng)橋梁裂縫自動(dòng)檢測與識別技術(shù)的進(jìn)一步發(fā)展,對本文使用的所有數(shù)據(jù)集進(jìn)行了公開.

2 基于CNN 深度學(xué)習(xí)的DBCC 分類模型及構(gòu)建方法

2.1 DBCC 模型提出的原因分析

由圖3 可知,橋梁裂縫圖像具有背景紋理復(fù)雜多樣、噪聲種類繁多、分布無規(guī)律的特點(diǎn),因此,主流的裂縫檢測方法對于橋梁裂縫的檢測,其效果不甚理想.由于深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)具有非常強(qiáng)大的特征提取能力和目標(biāo)識別能力.因此,本文提出了一種基于CNN 深度學(xué)習(xí)的BDCC 分類模型,用于識別橋梁裂縫面元和橋梁背景面元.

圖3 橋梁裂縫圖像特點(diǎn)示意圖Fig.3 Image characteristics of bridge cracks

數(shù)據(jù)集擴(kuò)充之后,數(shù)據(jù)集中的橋梁裂縫面元和橋梁背景面元如圖4 所示;其中橋梁裂縫面元有效地表達(dá)了橋梁裂縫的局部結(jié)構(gòu)信息,而橋梁背景面元?jiǎng)t表示除橋梁裂縫結(jié)構(gòu)信息以外的其他任何信息和橋梁圖像中有可能出現(xiàn)的噪聲信息;這些面元的分辨率均為16 像素×16 像素的小圖像.

圖4 橋梁裂縫面元和背景面元示意圖Fig.4 Schematic diagram of bridge crack surface and background surface

在深度學(xué)習(xí)中,對于小圖像的識別通常使用CIFAR10[27]模型.但是,此CIFAR10 模型并不適用于橋梁裂縫的檢測,其原因如下:1)CIFAR10模型是一種專門針對32 像素×32 像素分辨率圖像的識別模型,并不能識別16 像素×16 像素分辨率的小圖像.如果通過像拉普拉斯金字塔這樣的圖像處理技術(shù)強(qiáng)制將16 像素×16 像素分辨率的小圖像拉伸為32 像素×32 像素分辨率的圖像,然后,再用CIFAR10 模型進(jìn)行識別,這樣將會使得CIFAR10模型的識別率降低,達(dá)不到橋梁裂縫檢測的要求.原因在于:把16 像素×16 像素分辨率的圖像通過拉普拉斯金字塔向上重建為32 像素×32 像素分辨率圖像的過程中,該圖像會出現(xiàn)一定程度的失真.2)如果直接將CIFAR10 模型用于橋梁裂縫的檢測,首先使用32 像素×32 像素大小的滑動(dòng)窗口將橋梁裂縫圖像切分為32 像素×32 像素大小的橋梁裂縫面元和橋梁背景面元;然后,使用這些圖像訓(xùn)練一個(gè)基于CIFAR10 的分類識別模型;最后,基于這個(gè)模型去檢測橋梁裂縫.那么,這將會導(dǎo)致最終在整幅橋梁圖像上檢測出來的橋梁裂縫十分不準(zhǔn)確,具體檢測結(jié)果如圖5(a)圖所示,圖5(b)為基于DBCC 模型檢測的結(jié)果.3)本文之所以提出DBCC 模型而不使用CIFAR10 模型,不僅因?yàn)榛贒BCC 模型所檢測出來的橋梁裂縫更加逼近真實(shí)的橋梁裂縫區(qū)域;而且也因?yàn)闃蛄毫芽p面元的面積越小,橋梁裂縫面元中所含有的噪聲信息也越少.但是,橋梁裂縫面元的選取也不能無限小,橋梁裂縫面元太小,不僅不利于橋梁裂縫面元對于裂縫結(jié)構(gòu)信息的表達(dá),也會導(dǎo)致識別網(wǎng)絡(luò)模型難以構(gòu)建,識別網(wǎng)絡(luò)模型的網(wǎng)絡(luò)深度過低,這些最終都會嚴(yán)重降低模型的識別準(zhǔn)確率,這也是本文將橋梁裂縫面元選定為16 像素×16 像素分辨率的依據(jù).

圖5 CIFAR10 模型和DBCC 模型檢測結(jié)果的示意圖Fig.5 Detection results of CIFAR10 and DBCC model

基于以上原因,提出一種專門用于橋梁裂縫這種具有拓?fù)浣Y(jié)構(gòu)的、線性目標(biāo)的檢測識別模型十分必要.本文在對CIFAR10、AlexNet、GoogLeNet等模型研究的基礎(chǔ)之上,提出了一種針對16 像素×16 像素分辨率的橋梁裂縫面元和橋梁背景面元的分類識別模型DBCC 模型.

2.2 DBCC 模型的構(gòu)建

對于DBCC 模型的具體構(gòu)建,本文將主要從以下幾個(gè)方面展開:DBCC 模型的全模型網(wǎng)絡(luò)結(jié)構(gòu)、使用更小的輸入圖像、使用更大的卷積核、加深網(wǎng)絡(luò)深度、每層使用更多的卷積核、添加LRN 層、使用Dropout 層.這個(gè)順序同時(shí)也是本文通過實(shí)驗(yàn)逐步構(gòu)建DBCC 模型的順序.

2.2.1 DBCC 全模型

DBCC 模型使用了4 層卷積層(C1~C4),3層池化層(P1~P3),2 層全連接層(FC1~FC2),最后采用Softmax 函數(shù)(S)作為損失函數(shù).在C1、C4、P2、P3、FC1 后面各加一個(gè)激活函數(shù)(RELU);同時(shí),在第一卷積層后面添加LRN 層,FC1 后面添加Dropout 層.最后一層輸出橋梁裂縫面元和橋梁背景面元這兩類面元相應(yīng)的識別概率值.卷積核數(shù)目從32 開始,每經(jīng)過一次卷積層,卷積核的數(shù)目翻倍,直到256 為止.偏置項(xiàng)值初始化為0.1.DBCC 模型的整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖6 所示.其中In 表示輸入的圖像數(shù)據(jù),C 表示卷積層,P 表示池化層,FC 表示全連接層,S 表示Softmax 函數(shù),Out 表示輸出,RELU 表示激活函數(shù),LRN 表示局部響應(yīng)值歸一化層,D 表示Dropout 層.

2.2.2 使用更小的輸入圖像

由于橋梁裂縫是一種典型的線性目標(biāo),并且具有一定的拓?fù)浣Y(jié)構(gòu).如果識別模型的輸入圖像選用32 像素×32 像素的分辨率,即橋梁裂縫面元的分辨率選用32 像素×32 像素的分辨率,那么最終由橋梁裂縫面元組成的橋梁裂縫將會十分不準(zhǔn)確,如圖5 所示.因此,本文選用了更小分辨率的輸入圖像作為橋梁裂縫面元和橋梁背景面元分類識別模型的輸入圖像,并且在研究CIFAR10 模型的基礎(chǔ)之上,提出了DBCC-A 模型,具體的模型構(gòu)建參數(shù)如表1和表2 中的第2 行所示.

圖6 DBCC 模型的網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.6 Network structure of DBCC model

2.2.3 使用更大的卷積核

DBCC-A 模型輸入圖像的分辨率和CIFAR10模型輸入圖像的分辨率相比,減小了一半.因此,DBCC-A 模型各層的卷積核尺寸也按一定的比例進(jìn)行了減小.但是,提出DBCC-A 模型的目的主要是為了識別橋梁裂縫面元,而使用更大的卷積核不僅有利于提取橋梁裂縫面元中裂縫的結(jié)構(gòu)信息,而且還有利于忽略掉和橋梁裂縫結(jié)構(gòu)無關(guān)的其他噪聲信息.因此,本文對DBCC-A 模型做了進(jìn)一步改進(jìn),并且提出DBCC-B 模型.在DBCC-B 模型中,各卷積層使用了相對較大的、5 像素×5 像素分辨率的卷積核,并且為了保證識別模型的卷積層數(shù)不會隨著卷積核分辨率的增大而減少,DBCC-B 模型為各卷積層的特征映射圖添加了大小為了2 的擴(kuò)展邊距.其中DBCC-B 模型具體的構(gòu)建參數(shù)如表1 和表2 中的第3 行參數(shù)所示.

2.2.4 加深網(wǎng)絡(luò)深度

實(shí)驗(yàn)結(jié)果表明,網(wǎng)絡(luò)的深度在一定條件下越深結(jié)果越好[23,28].因此,針對本文中16 像素×16 像素分辨率的橋梁裂縫面元和橋梁背景面元,為了盡可能地加深網(wǎng)絡(luò)結(jié)構(gòu)的深度,DBCC-B 模型為各卷積層的特征映射圖添加了大小為2 的擴(kuò)展邊距,而且本文為了進(jìn)一步加深網(wǎng)絡(luò)結(jié)構(gòu)的深度,對DBCCB 模型中池化層的池化窗口做了進(jìn)一步的縮小.在此改進(jìn)的基礎(chǔ)之上,提出了DBCC-C 模型.其具體構(gòu)建的參數(shù)如表1 和表2 中的第4 行參數(shù)所示.

2.2.5 每層使用更多的卷積核

在卷積層中,每一個(gè)卷積核都可以被看成一個(gè)特征提取器,卷積層中每一幅輸出的特征映射圖(Feature map)都可以被看成輸入圖像經(jīng)過一個(gè)卷積核進(jìn)行特征提取之后的結(jié)果,但是通過對各卷積層的輸出結(jié)果進(jìn)行可視化對比可知,并不是每一個(gè)卷積核都可以成功提取輸入圖像的特征,從而得到有效的特征表達(dá)(特征映射圖).如圖7(a)為DBCC模型第一卷積層的可視化結(jié)果,圖7(b)為第4 卷積層前128 個(gè)特征映射圖的可視化結(jié)果.因此,為了增強(qiáng)卷積層的特征表達(dá)能力,對輸入圖像的特征進(jìn)行充分的提取,本文在DBCC-C 模型的各卷積層中使用了更多的卷積核,并且基于這一改進(jìn),提出了DBCC-D 模型.其具體構(gòu)建的參數(shù)如表1 和表2 中的第5 行參數(shù)所示.

表1 DBCC 模型的輸入層至第2 池化層各層的具體模型構(gòu)建參數(shù)Table 1 Modeling parameters from the input layer to the second pool layer of the DBCC model

表2 DBCC 模型的第3 卷積層至輸出層各層的具體模型構(gòu)建參數(shù)Table 2 Modeling parameters from the third volume accumulated layer to the output layer of the DBCC model

圖7 卷積層可視化結(jié)果示意圖Fig.7 Visualization results of convolution layer

2.2.6 添加局部響應(yīng)值歸一化層(LRN)

局部響應(yīng)歸一化層(Local response normalization,LRN)完成了一種“鄰近抑制”操作,對局部輸入?yún)^(qū)域進(jìn)行了歸一化.可以用于圖像的明亮度矯正,而橋梁裂縫圖像由于光照、陰影等因素,會出現(xiàn)圖像亮度不均的問題,因此,本文在DBCC-D 模型的第1 卷積層之后添加了LRN 層,并且基于這一改進(jìn)提出了DBCC-E 模型.其具體構(gòu)建的參數(shù)如表1和表2 中的第6 行參數(shù)所示.

2.2.7 使用Dropout 層

Dropout[29]是指在訓(xùn)練模型時(shí),隨機(jī)地讓網(wǎng)絡(luò)中某些隱含層的節(jié)點(diǎn)暫時(shí)不工作,不工作的那些節(jié)點(diǎn)可以暫時(shí)認(rèn)為不是網(wǎng)絡(luò)結(jié)構(gòu)的一部分,但是它們的權(quán)值保留了下來(暫時(shí)不更新),而在下次樣本輸入的時(shí)候,隨機(jī)地進(jìn)行選擇,它們可能又可以工作.所以,每一次的樣本輸入,都相當(dāng)于隨機(jī)選取了一個(gè)不同的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,但是這些不同的網(wǎng)絡(luò)卻共同訓(xùn)練出了共享的權(quán)值.因此,Dropout 可以看作是不同學(xué)習(xí)模型之間組合的一種替代方法,而使用不同的模型訓(xùn)練同一樣本又是防止過擬合的一種方法,因此,對DBCC-E 模型添加Dropout 層,可以有效地防止過擬合.由于訓(xùn)練模型的數(shù)據(jù)集較小,因此,采用更大概率的Dropout 進(jìn)行補(bǔ)償,Dropout取值0.55,本文基于對DBCC-E 模型的這一改進(jìn),最終提出了DBCC 模型.其具體構(gòu)建的參數(shù)如表1和表2 中的第7 行參數(shù)所示.

2.2.8 DBCC 模型的網(wǎng)絡(luò)深度和卷積層數(shù)確定的依據(jù)

本文在構(gòu)建DBCC 模型的過程中,除了依據(jù)以上的幾點(diǎn)逐步構(gòu)建出DBCC 模型之外,DBCC 模型中各卷積層和各池化層的輸入特征映射圖和輸出特征映射圖的分辨率還必須滿足式(2)所表述的計(jì)算關(guān)系,這也是最終確定DBCC 模型網(wǎng)絡(luò)深度和卷積層個(gè)數(shù)最主要的依據(jù)之一.

其中,(Fxl?1,Fyl?1)為前一卷積層或者池化層輸入到本層的特征映射圖;(Kx,Ky)為本層卷積層卷積核的大小或者池窗口的大小;Sx和Sy為卷積核或者池化窗口在特征映射圖上滑動(dòng)的步長;pad為給當(dāng)前特征映射圖添加的邊界寬度;則為當(dāng)前層的特征映射圖經(jīng)過卷積或者池化之后輸出的特征映射圖.

3 改進(jìn)的窗口滑動(dòng)算法

DBCC 深度學(xué)習(xí)模型實(shí)現(xiàn)了針對16 像素×16像素分辨率這樣小尺寸的橋梁裂縫面元圖像和橋梁背景面元圖像的分類識別,但是如果想要最終檢測出整幅橋梁裂縫圖像中的橋梁裂縫,還需要結(jié)合本文改進(jìn)的窗口滑動(dòng)算法.本文改進(jìn)的窗口滑動(dòng)算法如圖8 所示.

如果直接使用傳統(tǒng)的窗口滑動(dòng)算法和DBCC模型結(jié)合檢測橋梁裂縫,則有可能檢測出過多的橋梁噪聲面元.其原因在于,DBCC 模型最后使用了一個(gè)Softmax 函數(shù),分別輸出在本次識別過程中橋梁背景面元和橋梁裂縫面元的概率Pb(x)和Pc(x),然后,對兩者的概率進(jìn)行比較,具體的計(jì)算過程如式(3)所示.其中f(x)為0,表示當(dāng)前的圖像為橋梁背景面元圖像,f(x)為1,表示當(dāng)前的圖像為橋梁裂縫面元圖像.

如果只根據(jù)Pb(x))≤Pc(x),就認(rèn)為當(dāng)前的橋梁面元圖像為橋梁裂縫面元圖像,那么在整幅橋梁裂縫圖片識別的時(shí)候,有可能將某些橋梁噪音面元誤識別為橋梁裂縫面元.因?yàn)楹芏鄻蛄涸胍裘嬖罱K識別出來的概率也有可能大于橋梁背景面元的概率.針對這一問題,對窗口滑動(dòng)算法進(jìn)行了改進(jìn).具體做法是對式(3)進(jìn)行了改進(jìn),改進(jìn)后的公式如式(4)所示:

圖8 改進(jìn)的窗口滑動(dòng)算法示意圖Fig.8 Improved window sliding algorithm

其中,Tp為一個(gè)概率區(qū)分閾值.根據(jù)實(shí)驗(yàn),Tp一般可以取(0.90,0.99)之間的數(shù).

4 算法的加速策略

為了降低算法的時(shí)間復(fù)雜度,加速算法的處理速度,滿足橋梁裂縫檢測實(shí)時(shí)處理的要求,必須采用多種措施來提高算法的執(zhí)行效率.本文主要采用圖像金字塔和ROI 區(qū)域相結(jié)合的策略對本文的橋梁裂縫檢測的算法進(jìn)行加速.由DBCC 模型結(jié)合改進(jìn)的窗口滑動(dòng)算法對橋梁裂縫的檢測過程可知,算法的運(yùn)行時(shí)間主要取決于檢測目標(biāo)圖像的大小.針對這一問題,提出一種基于圖像金字塔和ROI 區(qū)域相結(jié)合的加速策略.即首先針對要識別的橋梁裂縫圖像構(gòu)建圖像金字塔,如圖9 所示.然后,在低分辨率的圖像上使用檢測算法對橋梁裂縫進(jìn)行檢測,同時(shí)對識別出來的橋梁裂縫面元的橫縱坐標(biāo)進(jìn)行排序,求出包含裂縫的矩形區(qū)域的左上角坐標(biāo)和右下角坐標(biāo),然后將求出來的坐標(biāo)代入式(5)確定在高分辨率圖像上包含裂縫的矩形區(qū)域,并且將這一矩形區(qū)域設(shè)為ROI 區(qū)域.最后,使用檢測算法對ROI 區(qū)域的橋梁裂縫圖像進(jìn)行檢測.具體的算法加速策略可以參考圖9.

圖9 圖像金字塔和ROI 加速策略示意圖Fig.9 Schematic diagram of image pyramid and ROI acceleration strategy

其中,坐標(biāo)(xl,yl)為低分辨率圖片上確定的位置坐標(biāo),(xh,yh)為高分辨率圖片確定的位置坐標(biāo).n為橋梁裂縫圖片通過高斯圖像金字塔向下采樣的次數(shù).

5 基于橋梁裂縫面元的裂縫提取和定位算法

橋梁裂縫圖像經(jīng)過本文中上述算法的處理,其結(jié)果已經(jīng)十分逼近橋梁裂縫的真實(shí)區(qū)域和面積,并且已經(jīng)成功地將橋梁裂縫圖像中的噪聲隔離于橋梁裂縫之外,如圖10 所示.但是,為了更加準(zhǔn)確地提取橋梁裂縫和確定橋梁裂縫在橋梁圖像中的位置,本文提出了一種基于橋梁裂縫面元的橋梁裂縫提取和定位算法.該算法可歸納為以下三個(gè)步驟:

圖10 DBCC 模型橋梁裂縫檢測結(jié)果的示意圖Fig.10 Schematic diagram of DBCC model bridge crack detection results

1)采用已經(jīng)訓(xùn)練好的DBCC 模型和改進(jìn)的窗口滑動(dòng)算法對橋梁裂縫圖像進(jìn)行檢測,識別出橋梁裂縫圖像中所有的橋梁裂縫面元,并且將識別出來的橋梁裂縫面元使用相同分辨率的標(biāo)識框標(biāo)記出來,最終橋梁裂縫檢測的結(jié)果如圖11(b)所示;

2)使用Otsu 閾值化算法求解出橋梁裂縫圖像全局的分割閾值T,并且根據(jù)這個(gè)求解出來的閾值T對每一個(gè)橋梁裂縫面元進(jìn)行固定化閾值分割;由于現(xiàn)在的橋梁裂縫面元已經(jīng)十分逼近橋梁裂縫,并且已經(jīng)將干擾噪聲排除在外,因此,基于橋梁裂縫面元和求解出來的閾值T可以十分準(zhǔn)確地提取出橋梁裂縫面元中的橋梁裂縫,所有基于橋梁裂縫面元提取出的橋梁裂縫最終組成整幅圖像的裂縫提取結(jié)果,如圖11(c)所示;

3)本步對上一步驟中提取的橋梁裂縫中所有的像素點(diǎn)的X坐標(biāo)和Y坐標(biāo)分別進(jìn)行排序,將最小的X坐標(biāo)和Y坐標(biāo)組成的坐標(biāo)點(diǎn)作為裂縫區(qū)域的左上角點(diǎn)坐標(biāo),將最大的X坐標(biāo)和Y坐標(biāo)所組成的坐標(biāo)點(diǎn)作為裂縫區(qū)域的右下角點(diǎn)坐標(biāo);最后,標(biāo)記出由這兩個(gè)坐標(biāo)點(diǎn)所確定的矩形區(qū)域,這個(gè)區(qū)域即為橋梁裂縫的位置.

6 實(shí)驗(yàn)結(jié)果與分析

本文采用真實(shí)的橋梁裂縫圖像數(shù)據(jù)進(jìn)行試驗(yàn),橋梁裂縫圖像是由大疆無人機(jī)Phantom 4 pro 自帶的CMOS 面陣相機(jī)采集的,具體的采集方法是讓無人機(jī)在橋梁裂縫的附近進(jìn)行懸停,然后通過無人機(jī)上的云臺調(diào)整面陣相機(jī)的姿態(tài),使得相機(jī)的鏡頭平行于橋梁裂縫的表面,并且要求相機(jī)的鏡頭距離橋梁裂縫的表面30 cm,調(diào)整好相機(jī)的姿態(tài)和距離后,讓無人機(jī)從懸停狀態(tài)轉(zhuǎn)換為沿著裂縫方向平穩(wěn)飛行,連續(xù)拍照.本文一共采集了2 000 張橋梁裂縫圖像,并且將這2 000 張橋梁裂縫圖像分為兩個(gè)集合,將這兩個(gè)集合分別稱為A集合和B集合.其中,A集合中的1 000 張圖像結(jié)合數(shù)據(jù)集人工擴(kuò)增方法用于構(gòu)建訓(xùn)練DBCC 模型的訓(xùn)練集、驗(yàn)證集;B集合中的1 000 圖像用以構(gòu)建本文算法的測試集,用于測試本文算法中的各項(xiàng)參數(shù)以及算法的性能,并且B集合中的1 000 張圖像在實(shí)驗(yàn)結(jié)果和分析部分統(tǒng)一從原來1 024×1 024 分辨率的圖像下采樣為512×512分辨率的圖像.本文算法的程序基于主流的深度學(xué)習(xí)開源框架Caffe 和計(jì)算機(jī)視覺開源庫OpenCV,使用C/C++、python 語言開發(fā);程序的運(yùn)行環(huán)境為Ubuntu14.04,CPU 3.3 GHz,RAM 8 GB.

為了驗(yàn)證本文提出算法的有效性和準(zhǔn)確性,本文分別設(shè)計(jì)了8 組對比實(shí)驗(yàn),用以驗(yàn)證本文算法的各個(gè)方面.其中,第1 組實(shí)驗(yàn)用于測試數(shù)據(jù)集人工擴(kuò)增方法對于DBCC 模型識別準(zhǔn)確率的影響.第1 組實(shí)驗(yàn)的設(shè)計(jì)步驟分為3 步.首先,直接使用A集合中1 000 張橋梁裂縫圖像、不經(jīng)過數(shù)據(jù)集人工擴(kuò)增方法構(gòu)建DBCC 模型的訓(xùn)練集、驗(yàn)證集,用以訓(xùn)練DBCC 模型;然后,使用A集合中1 000 張圖像,并使用數(shù)據(jù)集人工擴(kuò)增方法對這1 000 圖像進(jìn)行擴(kuò)增,使用擴(kuò)增之后的數(shù)據(jù)集構(gòu)建訓(xùn)練集、驗(yàn)證集,用以訓(xùn)練DBCC 模型.最后,再從B集合中隨機(jī)地選取數(shù)幅橋梁裂縫圖像并將其切分為16 像素×16 像素大小的小圖像,隨機(jī)地選取500 張橋梁裂縫面元圖像用以測試訓(xùn)練好的DBCC 模型.測試的具體結(jié)果如表3 所示.

由第1 組實(shí)驗(yàn)結(jié)果可知,利用數(shù)據(jù)集人工擴(kuò)增方法擴(kuò)展之后的數(shù)據(jù)訓(xùn)練的DBCC 模型對于橋梁裂縫面元識別的準(zhǔn)確率得到了極大提高;沒有經(jīng)過數(shù)據(jù)集擴(kuò)增的數(shù)據(jù)訓(xùn)練的DBCC 模型識別準(zhǔn)確率之所以低,主要是因?yàn)镈BCC 模型沒有得到充分的訓(xùn)練,出現(xiàn)了欠擬合現(xiàn)象.

第2 組實(shí)驗(yàn)用于對比CIFAR10 模型和DBCC模型對于橋梁裂縫最終檢測結(jié)果的影響.第2 組實(shí)驗(yàn)包含3 個(gè)小實(shí)驗(yàn).實(shí)驗(yàn)1,先使用32 像素×32 像素分辨率的滑動(dòng)窗口擴(kuò)增的數(shù)據(jù)集訓(xùn)練CIFAR10模型,再使用訓(xùn)練好的CIFAR10 模型對于B集合中的橋梁裂縫圖像進(jìn)行檢測.實(shí)驗(yàn)2,使用DBCC模型對于B集合中的橋梁裂縫圖像進(jìn)行檢測;實(shí)驗(yàn)3,先使用16 像素×16 像素分辨率的滑動(dòng)窗口對橋梁裂縫圖像進(jìn)行滑動(dòng),然后使用拉普拉斯圖像金字塔,將每一個(gè)16 像素×16 像素的小圖像面元向上重建為32 像素×32 像素的小圖像面元,最后將重建的圖像面元送入CIFAR10 模型進(jìn)行識別.三種方式的檢測結(jié)果如圖12 所示.

圖11 基于橋梁裂縫面元的裂縫提取和定位算法流程示意圖Fig.11 Flow chart of crack extraction and location algorithm based on bridge crack surface element

其中圖12 的第1 行為實(shí)驗(yàn)1 的檢測結(jié)果;第2 行為實(shí)驗(yàn)2 的檢測結(jié)果;第3 行為實(shí)驗(yàn)3 的檢測結(jié)果.由實(shí)驗(yàn)結(jié)果可知,基于DBCC 模型的橋梁裂縫檢測結(jié)果十分逼近橋梁裂縫的真實(shí)區(qū)域,也能夠較好地表達(dá)橋梁裂縫的拓?fù)浣Y(jié)構(gòu);而直接使用CIFAR10 模型的檢測結(jié)果,相對于DBCC 的檢測結(jié)果來說,十分不準(zhǔn)確.實(shí)驗(yàn)3 的結(jié)果說明,如果先用16 像素×16 的滑動(dòng)窗口滑動(dòng)橋梁裂縫,再將窗口覆蓋下的小圖像面元通過拉普拉斯金字塔這樣的圖像處理方法強(qiáng)制拉伸為適合CIFAR10 模型識別的面元,這將會導(dǎo)致CIFAR10 模型的識別率降低.因此,提出一個(gè)專門用于橋梁裂縫檢測的深度學(xué)習(xí)模型是極其必要的.

表3 人工數(shù)據(jù)集擴(kuò)增方法對于DBCC 模型識別準(zhǔn)確率的影響Table 3 Effect of artificial data set amplification on recognition accuracy of DBCC model

圖12 CIFAR10 模型和DBCC 模型對于橋梁裂縫檢測結(jié)果的對比Fig.12 Comparison between CIFAR10 model and DBCC model for bridge crack detection

第3 組實(shí)驗(yàn)用于測試CIFAR10、DBCCA、DBCC-B、DBCC-C、DBCC-D、DBCCE、DBCC 模型對于橋梁裂縫面元識別的準(zhǔn)確率以及CIFAR10、DBCC 模型在不同尺寸滑動(dòng)窗口下對于橋梁裂縫面元的識別率.其中各種模型的訓(xùn)練集使用的是A集合經(jīng)過人工數(shù)據(jù)集擴(kuò)增之后的訓(xùn)練集.測試集合是隨機(jī)從B集合中選取數(shù)幅圖像,使用表4 中每行模型對應(yīng)的相應(yīng)尺寸的滑動(dòng)窗口切分,然后從切分的集合中隨機(jī)地選取1 000 張橋梁裂縫面元用于測試各種模型.最終具體的實(shí)驗(yàn)和實(shí)驗(yàn)結(jié)果如表4 所示.

通過DBCC-A 模型和DBCC-B 模型的結(jié)果對比可知,使用更大的卷積核有利于識別模型準(zhǔn)確率的提升;由DBCC-B 和DBCC-C 的結(jié)果對比可知,雖然識別模型的準(zhǔn)確率確實(shí)有提升,但是提升較小,這主要是因?yàn)镈BCC-C 相對于DBCC-B 模型的網(wǎng)絡(luò)深度加深較小所致;由DBCC-C 和DBCC-D的結(jié)果對比可知,識別模型的準(zhǔn)確率提升較大,這說明在一定條件下,增加每個(gè)卷積層的卷積核數(shù)量,有利于識別模型提取到更多有關(guān)橋梁裂縫的特征信息,這將會增加識別模型對于橋梁裂縫面元的識別能力;由DBCC-D 和DBCC-E 的結(jié)果對比可知,為第1 卷積層增加LRN 確實(shí)有利于準(zhǔn)確率的提升;由DBCC-E 和DBCC 在同樣尺寸滑動(dòng)窗口下的識別率對比可知,為模型添加Dropout 層,同樣也可以提升模型的識別準(zhǔn)確率.由第0 行和第8行的結(jié)果可知,當(dāng)滑動(dòng)窗口尺寸取值過小時(shí),無論是CIFAR10 模型還是DBCC 模型均不能對滑動(dòng)窗口覆蓋下的橋梁裂縫面元圖像進(jìn)行很好的識別,這主要是因?yàn)檩^小的滑動(dòng)窗口覆蓋下的橋梁裂縫面元圖像包含的像素信息太少,已經(jīng)不足以表達(dá)裂縫的結(jié)構(gòu)信息,從而導(dǎo)致此情況下的識別率極其低下;由第1 行、第2 行、第9 行的結(jié)果對比可知,如果不構(gòu)建新的模型,而是使用CIFAR10 模型直接對16 像素×16 像素大小滑動(dòng)窗口覆蓋下的橋梁裂縫面元圖像進(jìn)行識別,其識別率將會十分的不理想,這主要是因?yàn)樵趯?6 像素×16 像素大小的橋梁裂縫面元圖像通過拉普拉斯圖像金字塔向上重建為32 像素×32 像素大小、適合CIFAR10 模型的識別圖像時(shí),會丟失橋梁裂縫的一部分結(jié)構(gòu)信息所導(dǎo)致的;由第2 行、第9 行的對比結(jié)果可知,雖然兩者識別準(zhǔn)確率幾乎持平,但是由圖5 和圖12 的對比可知,第2 行情況下,基于CIFAR10 模型的橋梁裂縫檢測結(jié)果遠(yuǎn)不如第9 行情況下DBCC 模型的橋梁裂縫檢測結(jié)果,而且由于第2 行對應(yīng)的滑動(dòng)窗口為32 像素×32 像素,這也就意味著最終的檢測結(jié)果中將會包含更多的噪聲,而基于第9 行DBCC模型的檢測結(jié)果,由于是16 像素×16 像素大小的滑動(dòng)窗口,這種情況下的檢測結(jié)果不僅更加逼近真實(shí)的橋梁裂縫,而且對于噪聲的排除和抑制能力更強(qiáng),這說明本文提出的DBCC 模型在針對橋梁裂縫檢測這一特定問題上的性能完全優(yōu)于CIFAR10 模型,也進(jìn)一步說明,針對橋梁裂縫檢測,提出一種新的識別模型是十分重要的.

表4 各模型對于橋梁裂縫面元識別的準(zhǔn)確率Table 4 Accuracy of each model for bridge crack surface element identification

第4 組實(shí)驗(yàn)用于測試改進(jìn)的窗口滑動(dòng)算法在對橋梁裂縫圖像進(jìn)行橋梁裂縫檢測時(shí),概率區(qū)分閾值Tp對于橋梁裂縫檢測效果的影響.具體的檢測結(jié)果如圖13 所示.

由圖13 可知,當(dāng)概率區(qū)分閾值Tp的取值較小時(shí),會有大量的橋梁面元噪聲被檢測出來.根據(jù)實(shí)驗(yàn)可知:當(dāng)Tp的取值在0.9 到0.99 之間時(shí),橋梁裂縫檢測的結(jié)果可以滿足檢測的要求.因此,在本文的所有實(shí)驗(yàn)中,令Tp的取值為0.96.

第5 組實(shí)驗(yàn)用于測試本文提出的算法加速策略對于橋梁裂縫檢測算法處理速度的影響.具體的實(shí)驗(yàn)分為2 個(gè)獨(dú)立的實(shí)驗(yàn).實(shí)驗(yàn)1,不使用算法的加速策略,直接使用本文提出的橋梁裂縫檢測算法對橋梁圖像進(jìn)行裂縫檢測;實(shí)驗(yàn)2,結(jié)合算法的加速策略,對橋梁圖像進(jìn)行裂縫檢測.這兩個(gè)實(shí)驗(yàn)所使用圖像的分辨率均為1 024 像素×1 024 像素.兩種方法的耗時(shí)如表5 所示.

表5 算法加速策略對于本文識別算法的影響Table 5 Effect of algorithm acceleration strategy on the recognition algorithm in this paper

圖13 概率區(qū)分閾值Tp對于橋梁裂縫識別效果的影響Fig.13 Effect of probability discrimination threshold Tpon bridge crack identification

通過對第5 組實(shí)驗(yàn)結(jié)果的對比可知,在本文中提出的算法加速策略可以極大地提高橋梁裂縫檢測算法的檢測速度.

第6 組實(shí)驗(yàn)用于測試基于橋梁裂縫面元的橋梁裂縫提取算法對于橋梁裂縫檢測最終結(jié)果的影響.首先,本文從1 000 張用于橋梁裂縫檢測的五類不同材質(zhì)的圖像集合中,隨機(jī)地選取100 張不同背景紋理的橋梁裂縫圖像.然后,使用這些橋梁裂縫圖像對該算法進(jìn)行測試,測試的部分結(jié)果如圖14 所示.

通過對圖14 的第2 列圖像和第4 列圖像的對比可知,基于橋梁裂縫面元的裂縫提取算法將會使得最終的橋梁裂縫檢測結(jié)果更加準(zhǔn)確.通過對第1列的圖像和第3 列的圖像對比可知,基于橋梁裂縫面元的裂縫提取算法結(jié)合本文中提出的其他算法,最終可以比較準(zhǔn)確地提取出橋梁裂縫圖像中的裂縫.圖14 中的第5 列圖像則為根據(jù)提出來的裂縫對圖像中的裂縫定位的結(jié)果;裂縫所在的位置,即為矩形區(qū)域所標(biāo)注的位置.另外,表6 給出了橋梁裂縫所在矩形區(qū)域的坐標(biāo)點(diǎn),本文就是利用這兩個(gè)坐標(biāo)點(diǎn)確定的橋梁裂縫位置.對圖14 中的第一列圖像從上到下進(jìn)行編號,編號為1~4,最終的坐標(biāo)點(diǎn)位置如表6所示.

表6 橋梁裂縫定位的位置坐標(biāo)Table 6 Position coordinates of bridge crack location

圖14 基于橋梁裂縫面元的橋梁裂縫提取算法對于檢測結(jié)果的影響Fig.14 Influence of the bridge crack extraction algorithm based on bridge crack surface element on detection

第7 組實(shí)驗(yàn)用于測試各種裂縫檢測算法對于最終裂縫定位準(zhǔn)確度的影響.具體的實(shí)驗(yàn)步驟如下所示:首先,本文從1 000 張用于橋梁裂縫測試實(shí)驗(yàn)的圖像集合中,隨機(jī)地選取500 張橋梁裂縫圖像,并且在這些圖像上,手動(dòng)地標(biāo)記出裂縫的外接矩形并記錄外接矩形的左上角點(diǎn)坐標(biāo)和右下角點(diǎn)坐標(biāo),如圖15 中的第6 列圖像所示;然后,使用不同的裂縫檢測和提取算法提取出橋梁的裂縫;最后,使用本文的裂縫定位算法基于上一步的結(jié)果,對圖像中的裂縫進(jìn)行定位;圖15 給出了定位實(shí)驗(yàn)中具有代表性的一組定位結(jié)果.

在第6 組和第7 組實(shí)驗(yàn)的基礎(chǔ)上,為了對本文提出的橋梁裂縫定位算法進(jìn)行更加深入的分析和評價(jià),本文引入了橋梁裂縫定位準(zhǔn)確度指數(shù)S,用于對裂縫定位的效果進(jìn)行量化和分析.其中,S表明了裂縫真實(shí)的外接矩形和使用裂縫定位算法定位出來的外接矩形的偏差度;若兩個(gè)外接矩形所定位的裂縫位置完全重合,則S為0;否則S越大,表明裂縫定位算法定位的裂縫位置越不準(zhǔn)確;(x,y)和(,)為用裂縫定位算法定位出來的裂縫外接矩形的左上角點(diǎn)坐標(biāo)和右下角點(diǎn)坐標(biāo);(r,c)和(,)為在選取出來的500 張橋梁裂縫圖像上手動(dòng)標(biāo)記出來的橋梁裂縫實(shí)際外接矩形的左上角點(diǎn)坐標(biāo)和右下角點(diǎn)坐標(biāo).橋梁裂縫定位準(zhǔn)確度指數(shù)S的具體公式如式(6)所示;各種裂縫檢測算法在定位準(zhǔn)確度S一定的條件下,定位出來的裂縫位置在準(zhǔn)確度S范圍內(nèi)的準(zhǔn)確率如表7 所示.

通過量化實(shí)驗(yàn)可知,如果設(shè)定定位算法定位出來的裂縫外接矩形與真實(shí)裂縫外接矩形的偏差度保持在10 個(gè)像素以內(nèi)認(rèn)為定位準(zhǔn)確,則基于各檢測算法的裂縫定位合格率為表7 中的第2 列數(shù)據(jù)所示;由表7 可知,準(zhǔn)確度S的容忍越大,則基于各個(gè)檢測算法的定位合格率遞增;但是,觀察整個(gè)量化實(shí)驗(yàn)的數(shù)據(jù)可知:基于本文提出的橋梁裂縫檢測算法最終裂縫定位的合格率最高,并且算法運(yùn)行時(shí)間也最短.基于本文提出的橋梁裂縫檢測算法之所以會取得比較好的裂縫定位的準(zhǔn)確度,其原因在于:本文在橋梁裂縫檢測的過程中,在橋梁裂縫面元的識別階段,已經(jīng)排除了大量的干擾噪聲,在橋梁裂縫的檢測階段已經(jīng)將橋梁裂縫所在的區(qū)域鎖定在一個(gè)比較靠近橋梁裂縫位置的區(qū)域,而后續(xù)的橋梁裂縫提取算法和橋梁裂縫定位算法都是在這一很小的橋梁裂縫區(qū)域內(nèi)進(jìn)行的運(yùn)算,因此,本文所提出的橋梁裂縫檢測算法是一種性能可靠、穩(wěn)定的橋梁裂縫檢測算法,這對于橋梁裂縫的檢測、提取和定位來說都是極其重要的.

第8 組實(shí)驗(yàn)用于測試本文算法和其他主流裂縫檢測算法的對比.為了說明本文算法相比于其他主流的裂縫檢測算法,具有更好的識別效果和更強(qiáng)的泛化能力.該組實(shí)驗(yàn)從B集合的1 000 張橋梁裂縫圖像中選取了5 類不同材質(zhì)不同背景紋理的橋梁裂縫圖像,且特意選取為帶有復(fù)雜背景和嚴(yán)重噪聲的橋梁裂縫圖像,如圖16 中的第2 行至第5 行圖像所示.然后,利用本文提出的算法與迭代閾值分割算法[3]、FFA 算法[11]、最小路徑選擇算法[8]相對比,進(jìn)一步說明本文算法的性能.

圖15 各種裂縫檢測算法對于橋梁裂縫定位準(zhǔn)確度的影響Fig.15 Influence of various crack detection algorithms on accuracy of bridge crack location

表7 橋梁裂縫定位準(zhǔn)確度的量化分析Table 7 Quantitative analysis of location accuracy of bridge cracks

圖16 主流裂縫檢測算法和本文算法對于橋梁裂縫檢測的效果圖Fig.16 Detection results of the main stream crack detection algorithm and our algorithm for bridge cracks image

由實(shí)驗(yàn)結(jié)果可知,迭代閾值分割算法的檢測結(jié)果會產(chǎn)生大量的噪聲,并且這些噪聲幾乎覆蓋了橋梁裂縫.FFA 算法雖然對于某些橋梁裂縫圖像的裂縫提取效果不錯(cuò).但是,當(dāng)圖像背景變得復(fù)雜的時(shí)候,在提取裂縫的同時(shí)也會產(chǎn)生大量的噪聲,如圖16 的第3 列圖像所示.基于最小路徑選擇的裂縫提取算法,在大多數(shù)情況下可以比較準(zhǔn)確地提取出裂縫,但是,該算法最大的缺點(diǎn)就是有可能提取出來的橋梁裂縫不完整,如圖16 中的第3 行、第4 行的第4 列的圖像所示;而且,該算法提取出來的裂縫也不能準(zhǔn)確地表達(dá)裂縫的寬度.但是,通過圖16 中的第5 列到第7 列圖像可知,本文提出的橋梁裂縫檢測算法可以很好的對不同類型的橋梁裂縫圖像進(jìn)行裂縫的檢測和裂縫的提取,提取出來的橋梁裂縫也能夠比較準(zhǔn)確地表達(dá)裂縫的寬度.即使在面對背景復(fù)雜、噪聲嚴(yán)重的橋梁裂縫圖像時(shí),本文提出的算法也能夠很好地完成橋梁裂縫的檢測和提取,如圖16 的第5 行、第6 列和第7 列圖像所示.

在上述實(shí)驗(yàn)結(jié)果比較的基礎(chǔ)之上,為了對本文提出的橋梁裂縫檢測算法和橋梁裂縫提取算法進(jìn)行更加深入的分析和評價(jià),本文引入了裂縫準(zhǔn)確度指數(shù)Pre和裂縫召回率指數(shù)Rec用于對裂縫的檢測和提取效果進(jìn)行量化的分析和評價(jià).其中,裂縫準(zhǔn)確度指數(shù)Pre用于描述準(zhǔn)確被檢測提取出來的裂縫區(qū)域的像素?cái)?shù)量TP占被檢測提取出來的像素?cái)?shù)量(TP+FP)的比例;裂縫召回率指數(shù)Rec用于描述被正確檢測提取出來的裂縫區(qū)域的像素?cái)?shù)量TP占應(yīng)該被檢測提取出來的裂縫區(qū)域像素?cái)?shù)量的比例.裂縫準(zhǔn)確度指數(shù)Pre和裂縫召回率指數(shù)Rec具體的計(jì)算公式如式(7)和式(8)所示.

其中,TP代表被正確檢測提取出來的裂縫區(qū)域像素的數(shù)量,FP代表被誤判為裂縫區(qū)域像素的數(shù)量,FN代表屬于裂縫區(qū)域的像素但是沒有被檢測出來的像素的數(shù)量.圖16 中、第1 行到第5 行的5 幅橋梁裂縫圖像所對應(yīng)的迭代閾值分割算法、FFA 算法、最小路徑選擇算法以及本文所提的橋梁裂縫檢測提取算法的量化分析和運(yùn)行時(shí)間如表8 所示.

通過量化實(shí)驗(yàn)可知,雖然迭代閾值分割算法在時(shí)間效率上十分具有優(yōu)勢,但是Pre指數(shù)和Rec指數(shù)十分低下;FFA 算法和最小路徑選擇算法雖然在某些情況下,效果較好,比如第1 幅圖像,但是在大多數(shù)情況下,其Pre指數(shù)和Rec指數(shù)相對來說不是很理想;而本文提出的橋梁裂縫檢測和提取算法不僅在時(shí)間效率上表現(xiàn)出相對較好的結(jié)果,尤其是在Pre指數(shù)和Rec指數(shù)上效果穩(wěn)定且很理想.

通過以上的實(shí)驗(yàn)和量化分析結(jié)果對比,說明本文提出的橋梁裂縫檢測算法和其他主流的裂縫檢測算法相比,具有更好的識別效果和更強(qiáng)的泛化能力.

本文最終對B集合中的1 000 張不同背景紋理、不同材質(zhì)的橋梁裂縫圖像進(jìn)行了檢測,下面給出了基于本文算法進(jìn)行橋梁裂縫檢測的部分結(jié)果,具體的橋梁裂縫檢測結(jié)果如圖17 所示.

7 結(jié)論

本文提出了一種基于深度學(xué)習(xí)的橋梁裂縫檢測算法.討論了橋梁裂縫數(shù)據(jù)集的人工擴(kuò)增方法,詳細(xì)介紹了本文提出的DBCC 模型和對窗口滑動(dòng)算法的改進(jìn),同時(shí)采用一定的加速策略對橋梁裂縫檢測算法的執(zhí)行時(shí)間進(jìn)行了一定的優(yōu)化.實(shí)驗(yàn)結(jié)果表明,和傳統(tǒng)的裂縫檢測算法相比,本文提出的算法具有更好的識別效果和更強(qiáng)的泛化能力.

表8 橋梁裂縫檢測提取算法的量化分析對比Table 8 Quantitative analysis and comparison of bridge crack detection and extraction algorithm

圖17 基于本文算法進(jìn)行橋梁裂縫檢測的部分結(jié)果Fig.17 Partial results of bridge crack detection based on our algorithm

未來進(jìn)一步研究的重點(diǎn)是:在不斷提高算法的抗干擾能力和檢測準(zhǔn)確率的情況下,進(jìn)一步提高算法的處理速度,以便算法在實(shí)際的應(yīng)用過程中,表現(xiàn)出更好的性能.針對這一問題,可以使用CUDA、MMX、SSE、SSE2 等策略對算法進(jìn)行優(yōu)化.

為了推動(dòng)本文算法的進(jìn)一步改進(jìn)和方便其他研究者使用本文算法進(jìn)行對比和實(shí)驗(yàn),本文對論文中所使用的橋梁裂縫圖像數(shù)據(jù)集合、DBCC 模型的網(wǎng)絡(luò)配置文件、超參數(shù)配置文件進(jìn)行開源.相應(yīng)的數(shù)據(jù)集和文件可在如下的鏈接中得到,具體的鏈接為:https://github.com/maweifei/Bridge_Crack_Imag e_Data.

猜你喜歡
面元像素卷積
像素前線之“幻影”2000
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
卷積神經(jīng)網(wǎng)絡(luò)的分析與設(shè)計(jì)
超電大尺寸海面電磁散射計(jì)算的混合面元法研究
“像素”仙人掌
從濾波器理解卷積
一種精確計(jì)算破片對空中目標(biāo)命中點(diǎn)參數(shù)的算法*
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
基于改進(jìn)Gordon方程的RCS快速算法
高像素不是全部
邵阳市| 都昌县| 明星| 五原县| 通道| 自治县| 翁牛特旗| 杂多县| 苍山县| 嘉峪关市| 准格尔旗| 安阳县| 麻栗坡县| 盘山县| 肇州县| 大田县| 兴化市| 闸北区| 新余市| 黄梅县| 丹阳市| 长治县| 木里| 崇信县| 三门县| 裕民县| 兴业县| 罗田县| 霍山县| 昌图县| 大竹县| 巴林左旗| 天水市| 金寨县| 华宁县| 济源市| 迭部县| 河北省| 万荣县| 昌平区| 阿拉尔市|