童千倩,李立明,鄭丹陽,楊 意,汪晨曦,鄭樹彬
(上海工程技術(shù)大學(xué) 城市軌道交通學(xué)院,上海 201620)
截止2020 年底,中國(guó)鐵路總保有量達(dá)到146.3×103km,營(yíng)業(yè)里程總數(shù)達(dá)到128×103km,鐵路每萬平方公里的路網(wǎng)密度達(dá)到152.3 km,大規(guī)模的鐵路建設(shè)對(duì)鐵路基礎(chǔ)建設(shè)和維護(hù)保障提出了較高的需求[1]。維持軌道的幾何形位是鐵路建設(shè)工程與維護(hù)保障中重要的部分,軌道線路中,軌枕充當(dāng)著承載列車負(fù)荷、分散鋼軌壓力至道床的中間角色,在列車運(yùn)行中起到重要的作用。由于軌枕上截面的荷載彎矩大于軌枕的抗裂強(qiáng)度,易導(dǎo)致混凝土軌枕表面產(chǎn)生裂紋,若不及時(shí)檢修,會(huì)引起混凝土壓潰,導(dǎo)致軌枕失效,嚴(yán)重地影響軌枕的使用壽命,威脅軌道交通的行車安全[2]。目前,軌枕裂紋的檢測(cè)方法主要依靠人工進(jìn)行,而人工巡檢的主觀性較強(qiáng),檢測(cè)效率低[3]。近年來,部分學(xué)者將無損檢測(cè),如物理檢測(cè)手段與計(jì)算機(jī)檢測(cè)等手段運(yùn)用到裂紋檢測(cè)中。
物理檢測(cè)通常從聲、光、熱、磁等角度提出檢測(cè)方法,對(duì)混凝土結(jié)構(gòu)表面的微小異常進(jìn)行判斷,典型的物理無損檢測(cè)方法,如:聲發(fā)射技術(shù),散斑干涉技術(shù),紅外檢測(cè)技術(shù)等。但是物理檢測(cè)方法對(duì)環(huán)境要求較高,檢測(cè)成本高,具有一定的局限性,例如:聲發(fā)射技術(shù)需要一定的聲耦合,需要處于應(yīng)力狀態(tài),紅外檢測(cè)通常需要設(shè)備體積較大的儀器,檢測(cè)環(huán)境也有嚴(yán)格的限制[4]。計(jì)算機(jī)檢測(cè)通常經(jīng)過圖像預(yù)處理,圖像特征提取,圖像特征處理,最終得到裂紋檢測(cè)結(jié)果,具有低成本,高效率的特點(diǎn)。隨著機(jī)器視覺技術(shù)與深度學(xué)習(xí)技術(shù)的發(fā)展,目標(biāo)檢測(cè)技術(shù)在軌道裂紋檢測(cè)中應(yīng)用廣泛,例如Faster R-CNN,SSD,YOLO等,已經(jīng)在裂紋圖像檢測(cè)方面取得了一定的檢測(cè)成果。目前,Cha 等提出了一種基于Faster R-CNN 的混凝土裂紋檢測(cè)方法,該種優(yōu)化后的Faster R-CNN網(wǎng)絡(luò)能夠在多分類的條件下快速地提取裂紋特征,達(dá)到較為精確的檢測(cè)結(jié)果[5];Mandal 等基于DCNN對(duì)道路混凝土裂紋提出了一種自動(dòng)化的檢測(cè)方法,但檢測(cè)精度較低[6];上述方法均針對(duì)路面裂紋提出,在有砟軌道的實(shí)際運(yùn)用中取得的效果較差,Li等基于改進(jìn)的YOLO 網(wǎng)絡(luò),疊加了原始YOLO 中淺層卷積結(jié)構(gòu)的低層特征,提取了深層卷積網(wǎng)絡(luò)中的抽象語義特征,提高了軌道板裂紋的檢測(cè)精度,增強(qiáng)了小目標(biāo)和重疊目標(biāo)的檢測(cè)能力,但是由于軌道板數(shù)據(jù)集的背景信息單一,該方法的通用性較差[7];曹建斌通過結(jié)合CF-Net 以及FastCrack模型的兩階段定位法,能滿足自動(dòng)檢測(cè)軌枕裂紋的需求,但是其召回率與檢測(cè)速度還需進(jìn)一步的提升[8]。
針對(duì)小目標(biāo)裂紋檢測(cè)的方法存在通用性差,精度低,召回率低,檢測(cè)速度慢的問題,本文設(shè)計(jì)了一種基于YOLOv3 改進(jìn)算法的軌枕裂紋檢測(cè)模型,如圖1 所示。本模型首先使用灰度投影法結(jié)合經(jīng)驗(yàn)值定位軌枕坐標(biāo)并分割軌枕,然后將注意力機(jī)制與空間金字塔池化引入本文所述改進(jìn)的YOLOv3模型中,并改善了裂紋檢測(cè)損失函數(shù),最終在保持速度的情況下,提高了檢測(cè)的精度。
圖1 基于YOLOv3 改進(jìn)算法的軌枕裂紋檢測(cè)模型示意圖Fig.1 Schematic diagram of sleeper location segmentation and crack detection method
由于道砟與軌枕的灰度存在差異,軌枕邊緣特征明顯,且軌枕水平放置于道床,垂直于鋼軌,同時(shí)軌枕尺寸也有著嚴(yán)格的規(guī)定,可以利用灰度投影法結(jié)合經(jīng)驗(yàn)值定位軌枕位置,具體流程圖如圖2 所示。
灰度投影法針對(duì)復(fù)雜背景的物體邊緣檢測(cè)有著不錯(cuò)的效果,主要依賴波峰和波谷確定物體邊緣位置的坐標(biāo)[9]。針對(duì)原圖中存在道砟背景的干擾,利用灰度投影法定位得到軌枕與光帶邊緣坐標(biāo),假設(shè)圖像表示為f(x,y),在y方向的灰度投影函數(shù)為fy(x),在x方向的灰度投影函數(shù)為fx(x),圖像中的像素點(diǎn)坐標(biāo)為(x,y),則水平與垂直方向的灰度投影函數(shù)值為式(1)和式(2):
利用灰度投影法,計(jì)算出軌枕與光帶邊緣的位置,具體實(shí)驗(yàn)結(jié)果如圖2 所示。圖2(a)表示有砟道床中鋼軌與軌枕原圖;圖2(b)表示水平投影的波谷表示軌枕與道砟的接觸邊緣;圖2(c)表示垂直投影得到的波峰表示鋼軌表面光帶所在位置,根據(jù)灰度投影的實(shí)驗(yàn)結(jié)果能夠得到光帶與軌枕相交點(diǎn)的坐標(biāo)。
圖2 灰度投影實(shí)驗(yàn)結(jié)果圖Fig.2 Grayscale projection experimental results
由于在采集的道床圖片中,軌枕邊緣的像素寬度相對(duì)固定,首先通過灰度投影法得到邊緣坐標(biāo),然后疊加軌枕像素寬度的經(jīng)驗(yàn)值,即可得到軌枕頂點(diǎn)坐標(biāo),最終定位得到軌枕的位置并完成對(duì)軌枕的分割,如圖3 所示。
圖3 灰度投影分割效果圖Fig.3 Grayscale projection segmentation effect
YOLOv3 主要改善了主干網(wǎng)絡(luò)結(jié)構(gòu),融合多尺度特征,使用獨(dú)立的邏輯分類器,YOLOv3 網(wǎng)絡(luò)主要特征為:
(1)Darknet-53模塊的預(yù)測(cè)效率良好?;贒arknet-53 構(gòu)建的主干網(wǎng)絡(luò)由于設(shè)計(jì)了類殘差快捷連接(shortcut connections),實(shí)現(xiàn)高速的浮點(diǎn)運(yùn)算,使得預(yù)測(cè)效率更高[10];
(2)利用邏輯回歸輸出的多尺度預(yù)測(cè)。每個(gè)網(wǎng)格單元在3 個(gè)尺度上預(yù)測(cè)得到3 個(gè)物體框(bounding box),每個(gè)物體框包含(x,y,w,h,confidence)5 個(gè)基本參數(shù),通過獨(dú)立的邏輯分類器得出標(biāo)簽為裂紋的概率,根據(jù)上采樣倍數(shù)的不同,輸出不同尺度的張量尺寸,張量尺寸計(jì)算公式為N ×N ×[3×(5+1)]。
由于YOLOv3 網(wǎng)絡(luò)在復(fù)雜背景下對(duì)軌枕裂紋類小目標(biāo)檢測(cè)精度低,本文設(shè)計(jì)了基于YOLOv3 改進(jìn)算法,使得YOLOv3在保證快速的前提下,進(jìn)一步提升在混凝土軌枕裂紋檢測(cè)方面的檢測(cè)精度。在算法中引入注意力機(jī)制中的擠壓與激勵(lì)模塊(Squeeze and Excitation,SE)和空間金字塔池化模塊(Spatial Pyramid Pooling,SPP),改進(jìn)后的YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。
圖4 改進(jìn)的YOLOv3 結(jié)構(gòu)圖Fig.4 Improved YOLOv3 structure diagram
由于軌枕裂紋特征存在微小細(xì)長(zhǎng)、形態(tài)多樣、與混凝土軌枕背景相似度高等的特點(diǎn),傳統(tǒng)算法存在提取軌枕裂紋特征精確度低等缺點(diǎn),本算法在YOLOv3 主干網(wǎng)絡(luò)末端,引入注意力機(jī)制中的擠壓與激活模塊,改善對(duì)裂紋特征提取的精度,SE模塊的結(jié)構(gòu)如圖5 所示。
圖5 擠壓與激勵(lì)模塊原理Fig.5 Principle of extrusion and excitation module
注意力機(jī)制的特點(diǎn)在于其經(jīng)過特殊設(shè)計(jì)參數(shù)配置,有助于減少無效信息冗余,迅速提取關(guān)鍵特征,所以能夠大幅度提高準(zhǔn)確率[11]。引入的注意力機(jī)制中的擠壓與激勵(lì)模塊,能夠快速、準(zhǔn)確地提取到關(guān)鍵的軌枕裂紋特征。擠壓與激勵(lì)模塊首先經(jīng)過擠壓操作(Squeeze),計(jì)算公式(3)如下:
其中,uc表示輸出軌枕圖像中通道的特征;Vc表示軌枕圖像中第c個(gè)學(xué)習(xí)的濾波器的參數(shù);X表示輸入通道特征;*表示卷積運(yùn)算。
擠壓與激勵(lì)模塊經(jīng)過1 個(gè)全局平均池化層,將軌枕裂紋圖像轉(zhuǎn)化為一個(gè)1×1×1 024 的向量,該向量代表了軌枕圖片中全局的特征通道分布情況,然后放入2 個(gè)以全連接層和激活函數(shù)為單位的小型模塊,針對(duì)軌枕裂紋的特征圖進(jìn)行激活(Excitation),最后統(tǒng)一對(duì)通道進(jìn)行加權(quán)操作,輸出軌枕裂紋特征圖。此外,設(shè)有殘差模塊確保有效訓(xùn)練,使得全局特征聚焦于軌枕裂紋的信息特征,有效抑制軌枕圖像中其他冗余的特征干擾[12]。
由于混凝土軌枕在采集的圖像中的大小不盡相同,原有的池化層(Pooling)會(huì)丟失圖片信息,導(dǎo)致裂紋檢測(cè)效果不理想。如圖6 所示,在建立主干網(wǎng)絡(luò)結(jié)構(gòu)后,通過引入空間金字塔池化操作,能夠最終輸出固定的圖片尺寸,不丟失主要特征,不受輸入軌枕圖片的尺寸影響,不破壞原始圖像比例[13]。首先,將輸入的軌枕圖像經(jīng)過一次卷積運(yùn)算;其次,特征圖經(jīng)過5×5,9×9,13×13 這3 個(gè)尺度的池化窗口(pooling window);最后,輸出一個(gè)同樣長(zhǎng)度的池化特征(scale-invariance)。
圖6 空間金字塔池化模塊Fig.6 Pooling module of spatial pyramid
軌枕裂紋預(yù)測(cè)損失函數(shù)由回歸預(yù)測(cè)誤差Lregression,置信度誤差Lconfidence以及分類誤差Lclassification3 部分組成[14]。其中,置信度誤差由邊框內(nèi)存在軌枕裂紋和不存在軌枕裂紋兩種情況疊加計(jì)算得到;軌枕裂紋分類誤差是基于網(wǎng)格內(nèi)存在裂紋的前提計(jì)算的,若邊框內(nèi)存在軌枕裂紋則分類誤差值為1,總體公式(4)如下:
在軌枕裂紋回歸預(yù)測(cè)的損失函數(shù)部分,Yolov3使用二分交叉熵?fù)p失函數(shù)(binary cross-entropy loss),但該函數(shù)在誤差較大的情況下,會(huì)因?yàn)樾》鹊卣{(diào)整參數(shù),使得訓(xùn)練速度更緩慢。此外,二分交叉熵?fù)p失函數(shù)較為復(fù)雜,運(yùn)算量較大。
出于對(duì)模型收斂速度和精度的考慮,將CIoU損失函數(shù)(Complete Intersection over Union Loss,CIoU Loss)作為新的軌枕裂紋回歸預(yù)測(cè)的損失函數(shù),該函數(shù)的示意圖如圖7 所示。
圖7 CIoU 損失函數(shù)示意圖Fig.7 Schematic diagram of CIoU loss function
CIoU部分的損失函數(shù)公式(5)為:
其中,IoU表示預(yù)測(cè)框和實(shí)際框的重疊度;ρ2(·)為預(yù)測(cè)框與實(shí)際框的歐式距離;b和bgt分別表示預(yù)測(cè)框與實(shí)際框的中心點(diǎn)位置;c為預(yù)測(cè)框與實(shí)際框組合部分最小外矩形框的對(duì)角線;αv是一個(gè)帶有平衡參數(shù)α且用于衡量寬高比相似性v的影響因子。
本文的數(shù)據(jù)集的構(gòu)建是基于有砟軌道上拍攝和采集的軌枕圖片,軌枕狀態(tài)分為有裂紋和無裂紋兩種,本實(shí)驗(yàn)獲取了共計(jì)1 000張裂紋數(shù)據(jù)集,根據(jù)軌枕狀態(tài)與裂紋條數(shù)將其分類,其中含有軌枕裂紋的圖像共210 張,不含軌枕裂紋的圖像790 張,以7∶3 的訓(xùn)練集與測(cè)試集的比例開展實(shí)驗(yàn)。本實(shí)驗(yàn)是在Win10 操作系統(tǒng),雙CPU Intel Xeon Silver 4214 2.2 GHz,PyTorch 框架以及PyCharm 的集成開發(fā)環(huán)境下進(jìn)行。
針對(duì)灰度投影法分割后的軌枕圖像,本實(shí)驗(yàn)對(duì)訓(xùn)練參數(shù)初始值的設(shè)置值見表1。
表1 初始參數(shù)值的設(shè)定Tab.1 Setting of initial parameter values
通過灰度定位法針對(duì)道床定位并分割軌枕,用注意力機(jī)制中的擠壓與激活模塊提取重要特征,引入空間金字塔池化,改進(jìn)損失函數(shù),最終利用改進(jìn)的YOLOv3 網(wǎng)絡(luò)完成對(duì)軌枕裂紋的檢測(cè)。評(píng)價(jià)指標(biāo)主要從精確度與速度兩個(gè)角度分析,用到的指標(biāo)有精確度(Precision,P),召回率(Recall,R),平均準(zhǔn)確率(Mean Average Precision,MAP),每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)。實(shí)驗(yàn)結(jié)果的精確度,召回率和平均準(zhǔn)確率的公式(6)~(8)如下:
在精確度與召回率的公式中,Tp(True Positive)表示人工標(biāo)定為軌枕裂紋,實(shí)際被判定存在軌枕裂紋的樣本數(shù)量;TN(False Positive)表示人工標(biāo)定背景區(qū)域,實(shí)際被判定存在軌枕裂紋的樣本數(shù)量;FN(False Negative)為人工標(biāo)定背景區(qū)域,實(shí)際被判定不存在軌枕裂紋的樣本數(shù)量。在平均準(zhǔn)確率的公式中,N表示裂紋分類數(shù)量,p(r)表示精確度與召回率的關(guān)系函數(shù)。
基于本算法實(shí)現(xiàn)的軌枕裂紋檢測(cè)效果如圖8 所示。針對(duì)輸入的整體道床圖像與灰度投影法分割后的軌枕圖像,分別采用YOLOv3與本算法進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果見表2。經(jīng)過軌枕區(qū)域提取后裂紋檢測(cè)在YOLOv3 網(wǎng)絡(luò)上精確度提升了35.0%,召回率提升11.4%,MAP 提升22.4%,證明了軌枕區(qū)域提取對(duì)軌枕裂紋檢測(cè)的必要性;將灰度投影法提取的軌枕圖像,輸入改進(jìn)的YOLOv3 裂紋檢測(cè)網(wǎng)絡(luò)中,裂紋精確度較YOLOv3 網(wǎng)絡(luò)提升了16.9%,召回率提升了3.5%,MAP 提升了5.9%,證明了本算法在軌枕裂紋檢測(cè)精度具有顯著的優(yōu)越性。
圖8 軌枕裂紋檢測(cè)效果圖Fig.8 Effects of sleeper crack detection
表2 實(shí)驗(yàn)量化結(jié)果對(duì)比Tab.2 Comparison of experimental results
(1)本文提出了一種基于YOLOv3 改進(jìn)算法的軌枕裂紋檢測(cè)方法。首先,通過灰度投影法對(duì)道床定位并針對(duì)軌枕進(jìn)行了分割;其次,通過改進(jìn)的YOLOv3 算法對(duì)分割得到的軌枕圖像進(jìn)行軌枕裂紋的精確檢測(cè)。
(2)針對(duì)軌枕裂紋檢測(cè)任務(wù),改進(jìn)了YOLOv3算法。通過加入注意力機(jī)制中的擠壓與激活模塊,提取軌枕裂紋的重要特征,使得特征提取層部分能夠?qū)壵砹鸭y進(jìn)行精確的定位;引入空間金字塔池化,實(shí)現(xiàn)輸出相同尺寸的特征圖,改進(jìn)損失函數(shù),最終實(shí)現(xiàn)對(duì)YOLOv3 的改進(jìn)。
(3)經(jīng)實(shí)驗(yàn)驗(yàn)證,結(jié)果表明對(duì)軌枕裂紋的檢測(cè)精確度達(dá)到96.3%,召回率達(dá)到91.2%,MAP 達(dá)到91.5%,F(xiàn)PS 達(dá)到76.6 張/s,檢測(cè)精確度、召回率和MAP在有砟軌道的軌枕裂紋數(shù)據(jù)集的表現(xiàn)提升顯著。