蘇常旺,胡少偉,張海豐,潘福渠,單常喜
(1. 重慶大學土木工程學院,重慶 400045; 2. 鄭州大學水利與土木工程學院,河南 鄭州 450001;3. 山東龍泉管道工程股份有限公司,江蘇 常州 277599; 4. 山東東信塑膠科技有限公司,山東 聊城 252000)
給水地下管道作為城市基礎設施建設的重要內(nèi)容之一,其安全運行直接影響著百姓民生。然而,近年來,給水管道因為自然災害或人為因素導致的如漏損、堵塞乃至地面塌陷等各類事故層出不窮,后續(xù)需要大量管道修復或替換工作,造成國家嚴重經(jīng)濟損失,同時還存在潛在的環(huán)境影響[1]。因此,對給水管道進行實時高效的內(nèi)部病害檢測是十分必要的。
針對給排水管道內(nèi)檢測技術(shù),國內(nèi)外采用較多也最先進的是CCTV技術(shù),即內(nèi)窺式管道機器人檢測技術(shù)[2]。在此基礎上,國內(nèi)對傳統(tǒng)的管道機器人進行了不斷的更新改造工作,研發(fā)了更多適用于有水環(huán)境下的新型管道機器人。然而,不論是傳統(tǒng)的CCTV技術(shù),還是各類新型管道機器人,通常均采用人工對管道內(nèi)部圖像進行判讀的方式,費時費力,且容易產(chǎn)生主觀誤判?;诖?國內(nèi)外學者針對給排水管道內(nèi)缺陷對自動化檢測展開了深入研究,且主要集中于排水管道,對于給水管道缺陷識別研究很少。早期一般采用圖像用技分割及特征提取處理技術(shù)[3],如今,隨著計算機視覺領域的快速發(fā)展,其中最火熱的卷積神經(jīng)網(wǎng)絡(CNN)[4]成為學者進行管道缺陷智能分類的常用技術(shù)。而對于管道內(nèi)缺陷檢測定位,通常采用R-CNN或Fast R-CNN等技術(shù)[5-8]。但這些算法雖然識別精度較高,但操作復雜,識別速度不夠快[9],難以滿足實時檢測的需求。因此,本文基于新型管道機器人在給水管道工程中的檢測視頻,采用識別速度更快、精度較高的YOLOX[10]算法模型展開研究,提出一種更加高效精準的分類與定位方法,為給水管道內(nèi)部缺陷識別定位提供技術(shù)支撐。
在計算機視覺領域,早期的研究通常集中在圖像分類上,卷積神經(jīng)網(wǎng)絡(CNN)就是其中的佼佼者。自2012年,圖像目標檢測成為學者們的研究重點[11],如圖1所示。而YOLO算法[12]作為用于目標檢測的神經(jīng)網(wǎng)絡算法之一,其特點在于處理速度快。以前的方法,如R-CNN及其變種,屬于Two-Stage類算法,即需要分步完成圖像識別與定位,雖然精度很高但必須設計多個神經(jīng)網(wǎng)絡來執(zhí)行任務,通常運行緩慢,也很難優(yōu)化,因為每個單獨的組件都必須單獨訓練。而YOLO算法只需要設計一個神經(jīng)網(wǎng)絡,訓練簡單。
圖1 目標檢測算法發(fā)展歷程
YOLOX算法作為YOLO算法的新變種,其擺脫了先驗框約束(即anchor free,傳統(tǒng)YOLO算法會采用K-means聚類等方法確定幾種固定尺寸的先驗框,利用這些先驗框作預測,其缺點在于泛化能力差,計算量較大);同時創(chuàng)新性地以解耦預測頭(decoupled head)代替?zhèn)鹘y(tǒng)的預測頭(coupled head),其原因在于目標檢測時往往會包含分類(classification)與回歸(regression)兩類損失(loss)的計算,兩者如果放在一起進行運算,可能會產(chǎn)生沖突從而影響預測精度,因此在YOLOX中又將兩者分開,解耦頭示意如圖2所示。YOLOX主體網(wǎng)絡結(jié)構(gòu)可分為4個部分:①輸入端;②網(wǎng)絡骨架(Backbone),此部分與傳統(tǒng)的YOLOV3[13]算法結(jié)構(gòu)基本相同;③頸端(Neck)部分,主要用于圖像特征融合,采用FPN[14](特征金字塔)策略,形成3種不同尺寸的特征圖像,其目的在于可同時滿足預測大中小目標的要求;④預測端(Prediction),主要包含解耦頭結(jié)構(gòu)及最后的預測部分?;诠艿廊毕葑R別建立的YOLOX主體結(jié)構(gòu)如圖3所示。
圖2 YOLOX解耦頭
圖3 基于增加注意力機制的管道缺陷識別的YOLOX網(wǎng)絡框架
1.2.1 注意力機制的基本原理
注意力機制[15](attention mechanism)源自自然語言處理(NLP)中的Transformer模型。其原理類似于人類眼睛關(guān)注事物的機理,當人們集中注意力時,往往可以抓住事物整體中最重要的部分。延伸至深度學習領域,可以理解為一種通過掃描全局、調(diào)整關(guān)鍵參數(shù),獲取重點領域信息的方法。通過引入注意力機制,可有效解決深度學習模型因參數(shù)量過多、信息量大而無法重點關(guān)注模型訓練關(guān)鍵點的問題。隨著研究的深入,其應用已不僅僅局限于NLP領域,在其他深度學習領域也開始逐漸得到應用,并取得了不錯的效果。注意力函數(shù)的基本計算公式具體如下
(1)
1.2.2 在YOLOX算法中引入注意力機制
注意力機制為一個即插即用的網(wǎng)絡模塊,理論上可以放在網(wǎng)絡結(jié)構(gòu)的任意部分,本文為了避免改變網(wǎng)絡主干部分(Backbone)而導致結(jié)果變化過大的問題,選擇提高特征加強提取部分的效率,因而考慮在頸端(Neck)部分加入通道混合注意力機制(CABM),即在上下采樣操作環(huán)節(jié)加入該網(wǎng)絡模塊,具體網(wǎng)絡結(jié)構(gòu)如圖3所示。
本文采用的深度學習框架為Pytorch 1.8.0,CPU為AMD R7 4800 h,GPU配置為NVIDIA GeForce GTX 3060,數(shù)據(jù)集源自適用于水下環(huán)境的管道機器人采集的實際工程視頻,對視頻中的圖像進行抽幀,提取圖像并利用幾何變換、顏色變換、Mosaic、Mixup技術(shù)擴增使數(shù)據(jù)集數(shù)量達到7940張。其中,Mosaic增強技術(shù)原理在于選取4張圖片進行隨機裁剪與拼接,從而獲得一張新的圖像;而Mixup增強技術(shù)原理是將兩種不同類圖像進行混合雜糅所形成的一張整體圖像。兩種技術(shù)的展示效果如圖4所示。
圖4 兩種數(shù)據(jù)增強技術(shù)在本數(shù)據(jù)集中的應用
根據(jù)工程專家鑒定情況,將缺陷劃分為6類:泄漏點、泥沙堆積、石塊堆積、氣囊、其他雜物、正常管道,如圖5所示。訓練集、驗證集與測試集比例均為8∶1∶1,具體數(shù)據(jù)集劃分見表1。為了進一步提高訓練質(zhì)量,本文還采用了遷移學習策略,即利用類似數(shù)據(jù)集對網(wǎng)絡結(jié)構(gòu)進行預訓練后再用新的數(shù)據(jù)集進行正式訓練。
表1 數(shù)據(jù)集劃分
圖5 管道缺陷樣本展示
在完成平臺搭建、整理并得到給水管道內(nèi)缺陷數(shù)據(jù)集,以及完成預訓練工作后,正式開始模型訓練,訓練次數(shù)根據(jù)計算平臺實際情況確定為300次,共包含15 000次迭代。模型具體訓練流程如下:
(1)輸入端輸入標注好的訓練集,經(jīng)過骨架層,對圖像進行一系列卷積、歸一化、激活、合并(concat)操作,得到不同大小尺寸的圖像。
(2)選取3種尺寸的圖像(分別為80×80、40×40、20×20),進入頸端,主要對3種圖片進行特征融合,采取策略為FPN(特征金字塔),主要包括卷積、歸一化、激活、合并、上采樣、下采樣操作,從而進一步得到用于3種滿足大、中、小目標檢測的特征圖像。
(3)對3種特征圖像利用解耦頭進行解耦,以便于進行分類與回歸的損失(loss)函數(shù)計算。其中,YOLOX模型的損失函數(shù)主要由3部分組成,公式為
(2)
式中,Lcls為分類損失;Lreg為定位損失;Lobj為置信度損失;λ為定位損失的平衡系數(shù),默認設置為5.0;Npos為被分為正樣的錨點數(shù)。
對于Lcls和Lobj,采用的都是二值交叉熵損失函數(shù)(BCELoss),具體計算公式為
(x,y)=L={l1,l2,…,lN}·
(3)
ln=-wn[yn·logxn+(1-yn)·log(1-xn)]
(4)
式中,ln為預測該樣本第n個類別的損失;wn為該樣本對應第n個類別的權(quán)重參數(shù);yn為對應第n個真實類別的值,一般為0或1;xn為對應第n個類別的預測值。
對于Lreg采用的是IoULoss,即預測框與真實框的重合面積與總和面積的比值,公式為
(5)
式中,A為預測框的面積;B為真實框的面積。在完成損失訓練后,得到最小損失下的網(wǎng)絡權(quán)重,將初始權(quán)重修改為最小損失下的權(quán)重,即可進行預測。
完成訓練后,對訓練結(jié)果進行處理并展開預測。在整個訓練過程中,損失函數(shù)隨訓練次數(shù)增加而穩(wěn)定下降。當驗證損失值不再下降時,即可判斷為收斂,其訓練與驗證損失值分別由最開始的9.13、7.71最終下降到2.67、2.83,具體如圖6所示。
圖6 訓練及驗證損失下降
部分測試集預測結(jié)果如圖7所示,圖片中標注部分主要由缺陷類別和預測置信度組成。結(jié)果表明,該模型預測整體效果良好,整體平均識別精度為94%,其中,預測準確度最高的為石塊堆積缺陷,達到了98%,最低的泄漏點缺陷預測準確度也達到了89%,具體如圖8所示。產(chǎn)生精度差異的原因主要由兩部分組成: ①石塊堆積缺陷圖像整體更加清晰,噪點少; ②石塊堆積圖像數(shù)據(jù)集數(shù)量更多,對于模型訓練而言,往往數(shù)據(jù)集越多,訓練后達到的效果也越好。
圖7 數(shù)據(jù)集預測結(jié)果效果
圖8 管道內(nèi)缺陷預測精度矩陣
為進一步驗證改進的YOLOX算法的優(yōu)越性,將此數(shù)據(jù)集分別利用傳統(tǒng)卷積神經(jīng)網(wǎng)絡(Fast R-CNN)算法及YOLOv3算法進行訓練預測并作對比,其對比評價指標主要包括平均精度(AP)與識別速度。其中,AP為召回率與準確率曲線所包含的下方面積,而均值平均精度(mAP)為所有類別的AP和除以類別數(shù)C,具體見表2。可知, YOLOX無論是mAP還是平均識別速度均超過YOLOV3,而Fast R-CNN雖然mAP略高于YOLOX模型,但平均識別速度遠不如YOLOX,因此,綜合來看,YOLOX在3種算法識別模型中表現(xiàn)最好。
表2 3種算法模型的mAP值與識別速度對比
本文基于實際工程中的給水管道內(nèi)檢測視頻,通過增加注意力機制,建立了基于改進YOLOX算法的給水管道內(nèi)缺陷智能識別與定位模型,達到快速識別定位管道缺陷的效果。結(jié)果表明,改進YOLOX算法模型相較于傳統(tǒng)的目標檢測模型,具有較高的精度和更快的識別速度,其mAP達到了0.84,平均識別速度相較于前代YOLOv3模型及Fast R-CNN模型分別提升了31%和138%,綜合性能超過了其他兩種對比的目標檢測模型。同時,該算法模型適用于視頻實時檢測,可以進一步應用到實際工程中,從而達到替代人工檢測,高效、精確地識別定位管道內(nèi)缺陷的目的。
盡管如此,本文建立的算法模型還有進一步發(fā)展空間: ①數(shù)據(jù)集的質(zhì)量與數(shù)量有待提升,以進一步提升模型的訓練效果和泛化能力; ②進一步優(yōu)化相關(guān)訓練參數(shù),如學習率、權(quán)重值等,以提高訓練效率。