• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于深度學習的橋梁裂縫檢測算法研究

      2019-10-14 06:45:42李良福馬衛(wèi)飛
      自動化學報 2019年9期
      關鍵詞:面元像素卷積

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

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

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

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

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

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

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

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

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

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

      2 基于CNN 深度學習的DBCC 分類模型及構建方法

      2.1 DBCC 模型提出的原因分析

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

      圖3 橋梁裂縫圖像特點示意圖Fig.3 Image characteristics of bridge cracks

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

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

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

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

      基于以上原因,提出一種專門用于橋梁裂縫這種具有拓撲結構的、線性目標的檢測識別模型十分必要.本文在對CIFAR10、AlexNet、GoogLeNet等模型研究的基礎之上,提出了一種針對16 像素×16 像素分辨率的橋梁裂縫面元和橋梁背景面元的分類識別模型DBCC 模型.

      2.2 DBCC 模型的構建

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

      2.2.1 DBCC 全模型

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

      2.2.2 使用更小的輸入圖像

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

      圖6 DBCC 模型的網(wǎng)絡結構示意圖Fig.6 Network structure of DBCC model

      2.2.3 使用更大的卷積核

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

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

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

      2.2.5 每層使用更多的卷積核

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

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

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

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

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

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

      2.2.7 使用Dropout 層

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

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

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

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

      3 改進的窗口滑動算法

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

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

      如果只根據(jù)Pb(x))≤Pc(x),就認為當前的橋梁面元圖像為橋梁裂縫面元圖像,那么在整幅橋梁裂縫圖片識別的時候,有可能將某些橋梁噪音面元誤識別為橋梁裂縫面元.因為很多橋梁噪音面元最終識別出來的概率也有可能大于橋梁背景面元的概率.針對這一問題,對窗口滑動算法進行了改進.具體做法是對式(3)進行了改進,改進后的公式如式(4)所示:

      圖8 改進的窗口滑動算法示意圖Fig.8 Improved window sliding algorithm

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

      4 算法的加速策略

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

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

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

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

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

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

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

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

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

      6 實驗結果與分析

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

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

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

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

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

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

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

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

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

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

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

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

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

      第5 組實驗用于測試本文提出的算法加速策略對于橋梁裂縫檢測算法處理速度的影響.具體的實驗分為2 個獨立的實驗.實驗1,不使用算法的加速策略,直接使用本文提出的橋梁裂縫檢測算法對橋梁圖像進行裂縫檢測;實驗2,結合算法的加速策略,對橋梁圖像進行裂縫檢測.這兩個實驗所使用圖像的分辨率均為1 024 像素×1 024 像素.兩種方法的耗時如表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 組實驗結果的對比可知,在本文中提出的算法加速策略可以極大地提高橋梁裂縫檢測算法的檢測速度.

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

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

      表6 橋梁裂縫定位的位置坐標Table 6 Position coordinates of bridge crack location

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

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

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

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

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

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

      表7 橋梁裂縫定位準確度的量化分析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

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

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

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

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

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

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

      7 結論

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

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

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

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

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

      猜你喜歡
      面元像素卷積
      趙運哲作品
      藝術家(2023年8期)2023-11-02 02:05:28
      隨機粗糙面散射中遮蔽效應算法的改進
      像素前線之“幻影”2000
      基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
      “像素”仙人掌
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      基于傅里葉域卷積表示的目標跟蹤算法
      基于改進Gordon方程的RCS快速算法
      高像素不是全部
      CHIP新電腦(2016年3期)2016-03-10 14:22:03
      面元細分觀測系統(tǒng)應用分析
      化工管理(2014年14期)2014-08-15 00:51:32
      伊吾县| 电白县| 游戏| 隆尧县| 桐柏县| 出国| 哈尔滨市| 奇台县| 沧州市| 老河口市| 静海县| 广宁县| 章丘市| 荔浦县| 青铜峡市| 平原县| 镇宁| 长宁县| 绵阳市| 南丰县| 浦东新区| 海原县| 深圳市| 阿克苏市| 庆元县| 晋中市| 门源| 马边| 上饶县| 乌苏市| 邻水| 右玉县| 镶黄旗| 璧山县| 麟游县| 凤山市| 蓝田县| 西昌市| 镇坪县| 东丰县| 习水县|