趙 凡,李琳蕓,魏仁杰,張志偉
(1. 西安理工大學印刷包裝與數(shù)字媒體學院,西安 710054;2. 西安理工大學陜西省印刷包裝工程重點實驗室,西安 710054)
壩體是水電站的重要組成部分,大部分是混凝土或土石結構,使用一段時間后常會出現(xiàn)裂縫滲漏,因此需要對大壩的病害風險進行準確的預警預測。裂縫的提取主要包含裂縫定位、裂縫形狀描繪以及裂縫長度統(tǒng)計。大壩裂縫具有寬度小、可見性差、特征不明顯、有水漬等特點,因此實現(xiàn)快速、穩(wěn)定、準確的大壩裂縫提取仍然是一個極具挑戰(zhàn)性的難題。
裂縫檢測提取方法主要分為基于傳統(tǒng)圖像處理的方法[1-7]和基于深度學習的方法[8-13]。傳統(tǒng)的裂縫邊緣檢測算法,主要有Sobel 邊緣檢測算子[1]、Canny 邊緣檢測算子[2]、Laplacian 算子[3]等,這些算法只適用于寬度較大、背景簡單和明顯的裂縫檢測。魏永杰等[4]提出累積梯度算法用于計算裂縫邊界。Peng等[5]提出一種基于隨機結構森林的三閾值路面裂縫檢測方法。Baltazart 等[6]利用裂縫邊緣處檢測灰度與梯度的階躍性變化對圖像中的裂縫進行檢測。Hoang 等[7]提出基于改進最大類間方差法的圖像閾值裂縫檢測方法。傳統(tǒng)方法復雜度低,適合于裂縫明顯和背景簡單的圖像,當裂縫圖像背景復雜、噪聲大、裂縫和背景亮度相近時,傳統(tǒng)方法的檢測精度就會大幅度下降。
基于深度學習的裂縫檢測方法近年來受到了廣泛關注。?;莸龋?]使用改進的U-Net 網絡對鐵路隧道裂縫進行提取。Qin 等[9]提出一種端到端神經網絡對裂縫檢測。趙珊珊等[10]將預處理后的路面圖像輸入卷積神經網絡(CNN)模型實現(xiàn)路面圖像裂縫的檢測,網絡對簡單背景下的裂縫檢測效果較好,但是對于復雜路面情況,如路面雜物的遮擋時檢測效果較差。毛鶯池等[11]利用基于改進Faster R-CNN和K-MABtrA 遷移學習方法對小目標裂縫進行檢測。陳澤斌等[12]改進了U-Net 網絡模型進行路面裂縫識別,對路面裂縫識別效果較好,但需要大量和多樣性的訓練樣本才能改善識別效果,不適用于本文數(shù)據(jù)。Gang 等[13]提出的R2CE-Net 網絡,使用RRCNN 塊來代替編碼器結構的標準卷積,使用更多尺度卷積和池化獲得更多的裂縫特征。上述網絡對與背景對比度較強的裂縫檢測效果較好,但針對和背景相似度很大的裂縫檢測效果不佳,也均未給出裂縫形狀的描述,無法給出定量的病害預警結果。
路面和橋梁上的裂縫通常采用基于深度學習的通用目標檢測器或分割器得到檢測結果,但大壩的裂縫處存在滲漏,并且裂縫的混凝土和周圍環(huán)境很相似,若采用通用目標檢測器進行大壩裂縫的檢測就會產生很多誤檢。另外,由于壩體上方裂縫滲漏水的覆蓋原因會導致裂縫自身紋理模糊或不明顯,進一步造成檢測器的漏檢發(fā)生。針對大壩裂縫的特點,本文首先設計了一個二目標檢測器,把裂縫區(qū)域和水漬區(qū)域作為兩個獨立的目標在圖像上同時檢測出來;其次,建立和同一裂縫關聯(lián)的裂縫區(qū)域和水漬區(qū)域幾何關系;最后,利用二者的幾何位置關系對與裂縫框相關聯(lián)的水漬框上邊界進行點采樣和曲線擬合,得到定位的裂縫曲線。這樣做的好處可以改善裂縫檢測的精度,為病害風險進行更準確的預警預測。由于其優(yōu)越的性能,本文采用YOLOv4 網絡結構[14]進行通用檢測器的訓練。實驗結果表明此算法對壩體病害的檢測很有效。
采用大疆無人機經緯M300 RTK 對大壩圖像數(shù)據(jù)進行采集。大疆無人機集成了H20 系列云臺、1 個2 000 萬像素的主相機和1 個1 200 萬像素的廣角相機等組件[15]。大壩圖像的采集地點為山西板澗河大壩。無人機在距離大壩壩體3~5 m 處對大壩表面進行圖像采集,對獲取的全部圖像經過人工篩選后,保留250 張含有裂縫的圖像作為實驗數(shù)據(jù),其中裂縫長度在50~300 cm 之間,寬度在3~20 mm 之間。
壩體結構是混凝土,和裂縫相似的橫紋較多,如果把裂縫作為唯一的目標進行檢測就會出現(xiàn)很多誤檢;另外,位于壩體較高部位的裂縫滲漏的水漬會貫穿較低部位的裂縫,如果只對水漬部位檢測,往往只能確定較高部位的滲漏點而忽略較低部位的滲漏點。本研究把裂縫和水漬作為兩個獨立的目標在圖像中進行樣本標注,標注工具采用yolo_mark 標注軟件。標注結果如圖1 所示,其中黃色矩形框為標注的裂縫目標,記為1 號目標,藍色矩形框為標注的水漬目標,記為2 號目標。
圖1 兩類樣本的標注結果Fig.1 Annotation results of two types of samples
本文的算法流程如圖2 所示,首先,把采集的250 張大壩裂縫圖像完成上述標簽制作后進行數(shù)據(jù)集劃分,按4∶1 的比例將圖像分為訓練集和測試集,即200 張圖像作為訓練數(shù)據(jù),50 張圖像作為測試數(shù)據(jù);其次,把訓練圖像集和其對應的標簽集送入YOLOv4 網絡結構進行模型訓練,得到訓練好的二目標檢測器;把測試集送入訓練好的檢測器得到裂縫區(qū)域和水漬區(qū)域的檢測結果,表示為矩形框;最后,利用在圖像中的幾何位置關系,確定和各裂縫框關聯(lián)的水漬框上邊界,對包含在裂縫框中的水漬框上邊界進行點均勻采樣,對采樣點進行曲線擬合得到擬合后的裂縫曲線。
圖2 算法流程圖Fig.2 Algorithm flowchart
近年來,隨著計算機視覺技術和深度學習理論的迅速發(fā)展和廣泛應用,基于深度學習的目標檢測成為熱門研究領域,廣為流行的檢測器有SSD[16]、Faster R-CNN[17]、YOLOv3[18]和YOLOv4 算法[14],YOLOv4 算法是在原有YOLOv3 網絡結構的基礎上提出的,采用了近些年目標檢測領域中最先進的優(yōu)化策略,從數(shù)據(jù)處理、基干網絡、激活函數(shù)、損失函數(shù)等各個方面都進行了不同程度的優(yōu)化,使得在使用單個GPU 進行訓練時更加有效和適配。YOLOv4 是目前最優(yōu)秀的目標檢測算法之一,作為一階段檢測網絡,YOLOv4 網絡結構主要由Input、Backbone、Neck 和Head 四部分組成,如圖3 所示。首先將圖像作為輸入送入網絡,通過BackBone 主干網絡進行特征提取,主干網絡為CSPDarknet53,Neck 層采用SPP(Spatial pyramid pooling)和PAN(Path aggregation network)結構對不同尺寸的特征圖信息進行融合,Dense prediction 層使用3 個不同尺度的特征圖對目標進行預測。
圖3 YOLOv4 網絡結構圖Fig.3 Structure diagram of YOLOv4 network
鑒于其優(yōu)越的性能,本文采用YOLOv4 作為裂縫檢測網絡結構,網絡輸出的類別個數(shù)設定為3,其中0、1 和2 分別對應裂縫類、水漬類和背景類,網絡輸出對三類目標預測的置信度,最后經過非極大值抑制(Non-maximum suppression,NMS)后得到最終的檢測結果。訓練時的目標函數(shù)L定義為
式中:wgt、hgt代表真值框的寬和高;w、h代表預測框的寬和高。
由于采集的大壩裂縫圖像數(shù)量較少,故在實驗中把YOLOv4 網絡在Imagenet 數(shù)據(jù)集[19]上的訓練模型作為預訓練模型。把大壩裂縫訓練圖像分批次送入網絡進行模型的再訓練,訓練結束得到最終的網絡模型。輸入網絡的大壩裂縫圖像大小為416×416。YOLOv4 網絡訓練參數(shù)的設置如下:學習率為0.002 61;批處理圖片個數(shù)為64;最大迭代次數(shù),即權重更新次數(shù)為6 000。訓練過程中的損失函數(shù)隨迭代次數(shù)增加的曲線如圖4 所示,訓練結束時迭代次數(shù)為6 000,L值為0.525 6。
圖4 損失函數(shù)曲線Fig.4 Curve of loss function
裂縫曲線擬合主要由以下4 個步驟組成。
步驟2 統(tǒng)計和第j個裂縫框bj關聯(lián)的水漬框集合Cj,它的初始值為空。觀察YOLOv4 網絡對裂縫和水漬的檢測結果發(fā)現(xiàn),和同一裂縫關聯(lián)的裂縫框與水漬框之間存在以下幾何位置關系:裂縫框不完全包含水漬框,對應同一裂縫的水漬框上邊界包含在和它關聯(lián)的裂縫框內。算法1 是求取和裂縫框bj關聯(lián)的水漬框集合Cj流程。輸入為bj和C′,輸出為Cj。首先,初始化Cj為空集,即Cj=NULL;接著,從水漬框C′中依次提取元素c′i,求c′i和bj的交集,記為R;再提取c′i上邊界的左端點P1和右端點P2;最后,對R是否為空以及P1和P2是否都包含在bj中進行判斷,如果R不為空并且P1和P2都包含在bj中,就把c′i追加到Cj中,即Cj+=c′i。
利用超定方程求得K,即k0~k5后,即可得到多項式曲線。延長擬合曲線至裂縫框邊緣,即為大壩裂縫曲線提取結果。
圖5 不同階數(shù)多項式的裂縫曲線擬合結果Fig.5 Crack curve fitting results by polynomials with different orders
本文采用常用目標檢測算法中的準確率(Precision,P)、召回率(Recall,R)、P與R的加權調和平均(F1-Measure,F(xiàn)1)和各個類別的平均準確率(Average precision,AP),AP 的平均值mAP(Mean average precision)作為裂縫框、水漬框檢測和裂縫曲線提取的評價指標,計算方法如下:
(1)準確率P表示預測的所有目標中預測正確的樣本比例,其值越高越好。
(4)AP 為不同召回率上準確率的平均值,mAP 為各個類別的AP 平均值。
式中:TP(True position)表示把正樣本正確識別為正樣本的個數(shù),TN(True negative)表示把負樣本正確識別為負樣本的個數(shù),F(xiàn)P(False position)表示把負樣本錯誤識別為正樣本的個數(shù),F(xiàn)N(False negative)表示把正樣本錯誤識別為負樣本的個數(shù)。
3.2.1 主觀結果
圖6 為本文方法的檢測及裂縫擬合結果,其中圖6(a)為兩張無人機采集的大壩裂縫原圖像;圖6(b)為人工標注的原圖,其中的紅色實線為專業(yè)技術人員標注的裂縫曲線;圖6(c)為本文方法提取的大壩裂縫結果,其中紅色框表示檢測的裂縫框,綠色框表示檢測的水漬框,藍色曲線表示擬合出的裂縫曲線。從圖6(c)中的結果可見,本文方法對裂縫和水漬都能進行精確的檢測,曲線擬合得到的裂縫曲線和專業(yè)技術人員標注的裂縫也完全吻合,從而證明了本文方法對大壩裂縫檢測的有效性。
為了證明檢測器對裂縫提取效果的影響,把Faster R-CNN、YOLOv3 和YOLOv4 分別作為網絡結構進行模型訓練后進行了測試對比,圖7 為幾種通用檢測器的裂縫提取主觀效果圖,從圖7(b)可見,F(xiàn)aster R-CNN 檢測器漏檢了很多水漬區(qū)域,并把一個裂縫檢測成兩個獨立的目標,擬合的曲線和真值的差異最大;從圖7(c)可見,YOLOv3 檢測器的檢測框比真實裂縫大,對水漬有兩處漏檢,擬合的曲線平滑性較差;從圖7(d)可見,本文方法不僅能夠對裂縫和水漬所在區(qū)域進行準確的檢測,擬合的裂縫曲線也和人工標注的曲線完全吻合。
圖7 幾種通用檢測器的裂縫提取主觀效果對比圖Fig.7 Comparison of subjective effect of crack extraction by several general detectors
由圖6、7 的主觀效果可見,本文提出的裂縫提取方法可以為大壩的病害檢測提供有效的定性分析。
圖6 裂縫提取主觀結果Fig.6 Subjective results of crack extraction
為了對大壩的病害風險進行準確的預警預測,不僅需要在圖像中快速定位出裂縫區(qū)域,而且需要描繪出裂縫的形狀。為了驗證各檢測器對裂縫曲線提取效果的影響,圖8 給出了裂縫曲線對比結果。從圖8 可見,F(xiàn)aster R-CNN 檢測器和YOLOv3 檢測器都漏檢了一條裂縫,U-net 檢測器雖然沒有漏檢,但提取的裂縫有斷裂和不完整現(xiàn)象,而本文方法提取的曲線最接近裂縫曲線真值,從而可以驗證本文方法對曲線提取的有效性。
圖8 裂縫曲線對比結果Fig.8 Comparison results of crack curves
3.2.2 客觀結果
為了驗證本文方法對目標檢測的客觀有效性,對所有大壩裂縫測試圖片進行裂縫和水漬兩種目標的檢測性能分析。表1 為幾種方法的實驗比較結果,本文方法的F1 和mAP 值分別為0.90和0.89,比Faster R-CNN 分別高出0.14 和0.18;比YOLOv3 分別高出0.22 和0.19。表1 中的實驗結果表明本文方法對裂縫和水漬的檢測性能明顯高于Faster R-CNN 和YOLOv3 算法。另外,為了驗證本文方法對裂縫形狀提取的客觀有效性,表2 給出了幾種通用檢測器的裂縫提取性能和本文方法的對比結果,從表2 可見,本文方法的F1 值分別比Faster R-CNN、YOLOv3、U-net 提升了0.31、0.05、0.07,由此可見,本文方法提取的裂縫更準確。這里需要指出的是U-net 網絡只對裂縫進行了處理,即類別個數(shù)為2,一類是正樣本(裂縫),另一類是負樣本(背景),并且樣本標注是在像素級上進行的。像素級的樣本標注在一定程度上可以提升檢測的精度,但也為標注工作帶來了更大的負擔,并且不易于在已有的模型上進行再訓練和細調。盡管本文方法用矩形框對目標進行了更粗粒度的樣本標注,但在借用YOLOv4 預訓練模型的基礎上還是取得了比U-net 網絡更好的性能。從裂縫區(qū)域和裂縫形狀的測試結果可見,本文方法可以為大壩病害檢測提供有效的定量分析。
表1 檢測結果Table 1 Test results
表2 提取曲線的對比結果Table 2 Comparison results of extracted curves
為了提高模型的泛化能力,YOLOv4 主要采用了Cutmix[21]、Mosaic[14]和Cutmix & Mosaic 三種數(shù)據(jù)增強方式。Cutmix 是將訓練集中隨機一幅圖像裁剪一部分粘貼到待增強圖像的感興趣區(qū)域以生成新樣本,這樣做可以使模型在訓練過程中僅僅通過局部特征就可以對目標進行識別,強化模型對于目標局部特征的認知。Mosaic 是對Cutmix 的擴展,把4 張圖像按一定比例大小組合成一張新的訓練圖像,相當于增加或減少訓練過程中批處理數(shù)據(jù)的個數(shù)以降低對硬件的要求。為了測試YOLOv4各種數(shù)據(jù)增強方法對大壩裂縫和水漬區(qū)域檢測結果的影響,表3 列出了采用不同數(shù)據(jù)增強方式的目標檢測對比結果,從表3 可見,相對無增強方式,所有增強方式對目標檢測的性能都有所提升,Mosaic 增強方式對目標檢測的總體性能最好,不同的增強方式在性能上差異不大。由于采集數(shù)據(jù)的各目標之間基本不存在遮擋現(xiàn)象,并且裂縫目標和水漬目標在形狀上存在很大差異,所以各增強方式的實際效果區(qū)別不大。
表3 采用不同數(shù)據(jù)增強方式的目標檢測對比結果Table 3 Comparison results of target detection with different data enhancement methods
本文以大疆無人機采集的壩體裂縫圖像為數(shù)據(jù)集,根據(jù)大壩裂縫處具有水漬的特點,引入了裂縫和水漬框的二目標檢測機制,并利用裂縫和水漬的關聯(lián)關系以及幾何位置關系,進行了裂縫區(qū)域的曲線擬合。實驗結果表明本文方法不僅可以準確地檢測圖像中的裂縫和水漬,擬合的裂縫曲線和專業(yè)人士標注的真值也高度吻合。本文方法可以為毫米級的大壩病害檢測提供準確的定性和定量分析,可以應用在壩體安全的預警預測方面。