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