李 佳,邱新華,季育文
(株洲時代電子技術有限公司,湖南 株洲 412007)
隨著鐵路總里程的不斷增長,鐵路隧道數(shù)量越來越多,而初期建成的隧道已經(jīng)進入養(yǎng)護修理階段[1]。其中,裂縫和滲水是常見的隧道病害,若不及時發(fā)現(xiàn)并進行維修,會導致隧道結構損壞,對行車安全構成嚴重威脅[1]。對于隧道襯砌裂縫病害,傳統(tǒng)的檢測方法以人工目測為主,主觀性強且效率低下,無法滿足軌道交通高速發(fā)展的檢測需求[1]。基于機器視覺的無損檢測技術具有高效、準確和全面等優(yōu)點,逐漸成為隧道表面病害檢測的主流方法[1]。針對隧道表面病害檢測,業(yè)內(nèi)開展了不同方向的研究。文獻[1]采用二維最大類間方差法對隧道圖像進行閾值分割,該方法對灰度分布不均勻情況有一定的適應性,可檢測出細小裂縫,但對圖像背景與前景的對比度要求較高,而實際隧道環(huán)境中采集的隧道表面圖像直方圖極大,可能存在多個波峰、波谷,因此此類方法的泛化能力較弱。文獻[2]首先采用高斯-快速中值濾波算法濾除大量噪聲,再采用基于邊緣信息的二次改進最大類間方差法(Otsu)分割出二值圖像,突出了裂縫信息,最后通過投影和閾值結合的方法判定裂縫。該方法解決了部分光照不均勻、對比度低、噪聲污染嚴重等問題,但其閾值計算方式與圖像背景強相關,易受施工縫、線纜等背景因素影響,準確率偏低、誤檢率高。
傳統(tǒng)的人工特征提取方法對原始圖像質量和圖像預處理效果的依賴程度高,對特定場景下的數(shù)據(jù)集,其能獲得較好的識別效果;但對分布存在差異的場景,其魯棒性差,因此傳統(tǒng)的模式識別方法無法適應復雜的隧道環(huán)境[1]。而卷積神經(jīng)網(wǎng)絡可通過深度網(wǎng)絡抽象提取圖像中的目標特征,對分布差異較大的環(huán)境,其適應性優(yōu)于傳統(tǒng)方法的。文獻[3]提出一種基于深度學習的隧道裂縫識別算法,其采用兩個卷積神經(jīng)網(wǎng)絡分別進行裂縫圖像篩選和裂縫區(qū)域定位,然后在定位區(qū)域內(nèi)進行裂縫分割,一定程度上降低了線纜施工縫等干擾;但其裂縫區(qū)域定位需要采用滑動窗口的方式遍歷整幅圖像,而單張圖像檢測耗時約680 ms,因此檢測效率較低。文獻[4]采用一種基于DenseNet模型的隧道檢測方法,其將原始圖像切分成N個區(qū)域后過濾非裂縫區(qū)域。相比于AlexNet模型,采用該方法的檢測精度得到了很大提升;但原始圖像的切分易造成裂縫檢測不連續(xù),且其通過DenseNet提取特征后再通過支持向量機(support vector machine, SVM)進行裂縫及非裂縫判斷的方式?jīng)]有形成閉環(huán)反饋,而是過分依賴SVM過濾效果,因此,易導致漏檢。文獻[5]提出一種采用Faster R-CNN模型進行隧道圖像裂縫檢測的方法。該方法弱化了隧道圖像背景質量問題,準確率和檢測速度取得了一定的提升,但二階目標檢測方式仍制約了檢測效率。
為實現(xiàn)對隧道圖像裂縫的高效、準確檢測,本文提出一種基于YOlOv4[6]的單階隧道表面缺陷檢測方法,該方法能更好地適應隧道復雜的環(huán)境;同時通過 CIoU(complete intersection over union)[7]損失函數(shù)計算改進目標框回歸損失,以有效提高檢測精度,在 NVIDIA GeForce 2080Ti顯卡上實現(xiàn)了55幀 /s的檢測速度,滿足了實時性要求。
隧道背景環(huán)境復雜多變、對比度低且噪聲較多,相機拍攝隧道表面的工作距離的變化會引起光照不均,導致不同部位出現(xiàn)圖像灰度差異,且隧道表面存在字跡、線纜和施工縫等,對檢測存在很大的干擾,因此用于隧道表面病害檢測的智能識別算法必須具備很強的場景適應性。圖1示出典型隧道表面圖像。
圖1 典型隧道表面圖像Fig.1 Typical tunnel surface images
本文提出的隧道表面缺陷檢測方法基于YOLOv4。YOLOv4是一種端到端的單階目標檢測算法,其沒有刻意追求理論上的低計算量(BFLOP),而是在YOLOv3[8]的基礎上進行改進,設計了一種能應用于實際工作且能被并行優(yōu)化的快速目標檢測系統(tǒng),且采用了最新的 BoF(bag of freebies)和 BoS(bag of specials)方法優(yōu)化訓練過程。該方法在幾乎不降低檢測速度的同時提高了檢測精度。
本文算法在YOLOv4基礎上進行了修改,網(wǎng)絡結構如圖2所示,主要包括主干網(wǎng)絡(Backbone:CSPDarkNet53)、特征融合網(wǎng)絡(Neck:SPP+PANET)和檢測層網(wǎng)絡頭(Head:YOLOv3)3部分。結合本文數(shù)據(jù)集的特點,針對YOLO Head結構進行了設計,數(shù)據(jù)集中圍繞當前主要存在的隧道裂縫、滲水和剝落掉塊3類缺陷,輸出維數(shù)為B×(4+1+classes)。其中B為單個網(wǎng)格對應的不同寬高比的預測框個數(shù)(默認為3),classes為類別數(shù),每個預測框包含目標矩形框、置信度及其對應于每個類別的概率,故將每個網(wǎng)格的輸出張量設置為24維,最后3個YOLO Head輸出張量分別設置為76×76×24,38×38×24,19×19×24。
圖2 網(wǎng)絡模型示意Fig.2 Schematic diagram of network model
模型采用自正則的非單調Mish[9]激活函數(shù)進行訓練,其計算如式(1)所示,可保證訓練損失的有效回傳,在確保收斂速度的同時能獲得更好的泛化能力且更準確。
式中:x——激活層輸入;f(x)——激活層輸出。
為了更精確地檢測目標,訓練損失由邊界框回歸損失、置信度損失和分類損失的加權和組成,如式(2)所示,并以此計算回傳梯度。邊界框回歸損失的計算如式(3)所示。
式中:L——訓練損失;Lbox——邊界框回歸損失;Lobj——目標置信度損失;LC——類別分類損失;λiou——邊界框回歸損失權重系數(shù);S——網(wǎng)格個數(shù);lij,obj——表示有目標,lij,obj=1;Lciou——采用 CIoU進行度量的邊界損失。
由式(3)可知,通過λiou改變邊界框回歸損失在整個訓練損失中的影響,可提高檢測精度。置信度損失的計算如下:
由式(4)可知,通過改變λcls可以調整置信度損失在整個訓練損失中的影響權重;通過改變λC,可以設置不同類別樣本在訓練損失中的影響權重,以此來兼容訓練樣本數(shù)較少的類別,以解決樣本少的問題。式(5)示出分類損失的計算公式。
通過對四川省境內(nèi)鐵路隧道數(shù)據(jù)進行采集,本文建立了8 064張圖像的訓練數(shù)據(jù)集,其中存在1 500個滲水病害區(qū)域,3 560個裂縫病害區(qū)域,3 816個剝落掉塊病害區(qū)域;建立了1 500張圖像的驗證集,包含467個滲水病害、556個裂縫病害和524個剝落掉塊病害。
為豐富圖像樣本,本文采用圖像亮度拉伸、模糊處理、PCA色彩增強、隨機尺寸裁剪、圖像翻轉及混類增強(Mixup)等方式進行訓練數(shù)據(jù)的擴增,將訓練集由原來的8 064張擴增為80 640張,以降低過擬合風險,提高訓練模型的泛化能力。圖3示出擴增示例,其中圖3(a)為原始圖像;圖3(b)為采用高斯濾波進行圖像平滑后的圖像,可使模型在一定程度上適應列車抖動影響;圖3(c)為通過直方圖均衡化實現(xiàn)圖像亮度拉伸后的樣本,強化了模型對光照不均的適應性;圖3(d)為經(jīng)過PCA色彩增強后的樣本,灰度圖像樣本經(jīng)處理后形成了彩色圖像樣本,增強了模型對關鍵特征提取的能力;圖3(e)為經(jīng)過隨機比例裁剪后的樣本圖像,加強了模型對特征空間位置的泛化能力;圖3(f)為Mixup后的樣本圖像,將之前不同類的圖像進行混合,有效增強了模型泛化能力。
圖3 數(shù)據(jù)擴增示例Fig.3 Examples of data augmentation
為了加快模型訓練收斂速度、提高隧道裂縫檢測精度,經(jīng)多次試驗分析改進,得出以下參數(shù)選擇策略:
(1)通過統(tǒng)計隧道病害在圖像中的區(qū)域分布,歸一化圖像尺寸為608×608,使用K均值聚類分析,得到 YOLO 層的 9 個錨點框為 ( 131, 226 ), ( 213,40 ), ( 272, 206 ), ( 331, 94 ), ( 554, 161 ), ( 556, 31 ),(563, 69 ), ( 576, 48 )和 (579, 101)。
(2)設置初始學習率lr=0.000 5,采用批次(batch)遞減策略進行學習率更新,將steps設置為2 000 和 5 000,更新系數(shù) scales設置為 0.1 和 0.2;當訓練 batch=2 000 時,lr=lr×0.1,即lr=0.000 05;當訓練 batch=5 000 時,lr=lr×0.2,lr=0.000 1。
(3)采用MS COCO數(shù)據(jù)集預訓練模型yolov4.weights初始化骨架網(wǎng)絡,固定共享卷積層后進行Neck和Head微調。
訓練誤差曲線如圖4所示??梢钥闯?,經(jīng)過3 000個batch迭代后,損失及訓練誤差平均精度均值(mean average precision, mAP)均已穩(wěn)定且達到了收斂狀態(tài),測試集最佳mAP值為65.1%。
圖4 訓練誤差曲線Fig.4 Training error curve
本文從現(xiàn)場采集的鐵路隧道內(nèi)部表面圖像中挑選了1 500張圖像作為測試樣本,利用NVIDIA GeForce 2080Ti顯卡進行加速計算,以驗證算法性能。
針對隧道表面病害圖像樣本數(shù)量有限,且車載采集系統(tǒng)在運動過程中存在振動、傾斜及光照等影響因素,為提高數(shù)據(jù)分布的多樣性、增強模型魯棒性,本文采用圖像亮度拉伸、模糊處理、PCA色彩增強、隨機尺寸裁剪、圖像翻轉及MixUp等數(shù)據(jù)擴增方法,以提升缺陷檢測精度。表1示出優(yōu)化方法組合對檢測精度的影響分析??梢钥闯觯琈ish激活函數(shù)和CIoU對缺陷檢測框的定位mAP各有3%以上的提升。
表1 訓練優(yōu)化方法組合對檢測精度影響分析Tab. 1 In fluence of training optimization method on detection accuracy
另外,應用同樣的數(shù)據(jù)集將本文所提算法模型與YOLOv3和Faster R-CNN模型進行比對試驗,主要從檢出率、誤檢率、mAP值及檢測速度方面進行評估。其中,mAP、檢出率和檢測速度越高,誤檢率則越低,表明算法性能越高。檢出率和誤檢率計算如式(6)和式(7)所示。
式中:T——檢出率;TP——真正例;FN——假負例;F——誤檢率;FP——假正例;TN——真負例。
表2示出隧道表面缺陷檢測結果對比。可以看出,采用Faster R-CNN模型,雖然mAP達到61.3%,但檢測速度只有6幀/s,因此不具備實時性;采用YOLOv3模型,檢測速度雖然達到57幀/s,但檢測精度和檢出率分別只有53.2%和85.2%,誤檢率偏高,影響用戶體驗;采用本文所提模型,mAP最高,為65.1%,且在2080Ti上檢測速度達到55幀/s,能滿足車載隧道檢測系統(tǒng)實時性要求。
表2 各算法模型的隧道表面缺陷檢測結果對比Tab. 2 Comparison among tunnel surface defect detection results of different algorithm models
圖5示出采用本文算法檢出的隧道表面缺陷效果。圖中,黃色框為存在剝落掉塊病害區(qū)域,紫色框為滲水區(qū)域,紅色框為隧道裂縫病害區(qū)域??梢钥闯?,采用本文算法能有效檢出缺陷所在位置及類別,為后續(xù)計算裂縫寬度、長度和面積等量化指標奠定了基礎。
圖5 隧道表面缺陷檢出效果Fig.5 Detection effects on tunnel surface
為提高隧道表面病害的檢出能力,本文結合YOLOv4提出一種高速鐵路隧道表面缺陷檢測方法。其在復雜的隧道背景環(huán)境中,能快速準確地定位隧道表面的缺陷并進行分類;通過引入Mish激活函數(shù)和CIoU損失函數(shù)計算改進目標框回歸損失,有效提高檢測精度和泛化性,同時保持了較高的檢測速度,滿足隧道檢測系統(tǒng)的需求。目前,本文所提算法依舊存在個別缺陷漏檢、虛報等情況,下一步將通過增加樣本的多樣性及優(yōu)化損失函數(shù)來進一步提高模型檢測能力。