鄭丹陽 李立明 孫睿 柴曉冬 鄭樹彬 羅文成
(1.上海工程技術(shù)大學城市軌道交通學院,上海 201620;2.常州路航軌道交通科技有限公司,江蘇常州 213100)
線路上的扣件狀態(tài)檢測主要通過人工巡檢來完成。人工巡檢的方式具有簡單、低成本等優(yōu)勢,但存在檢測效率低、漏檢率高等缺陷。近年來,隨著自動化巡檢需求的不斷提升,國內(nèi)外許多學者對利用機器視覺技術(shù)實現(xiàn)軌道扣件狀態(tài)檢測的方法進行了研究。目前主要的扣件狀態(tài)檢測方法都是利用傳統(tǒng)的圖像處理方法對扣件螺栓或彈條的特征進行識別檢測。李永波等[1]通過設(shè)置扣件圖像的感興趣區(qū)域(Region of Interest,ROI),提取ROI 區(qū)域的方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征進行狀態(tài)檢測。WANG等[2]通過使用二維主成分分析法提取扣件螺栓的特征進行分類。陳小艷等[3]提出利用改進的局部二值模式(Local Binary Pattern,LBP)編碼算法突出扣件圖像的邊緣特征,再使用隱含狄利克雷分配(Latent Dirichlet Allocation,LDA)詞包來描述扣件的主題進行狀態(tài)檢測。代先星等[4]提出通過可以減少自然光影響的激光測量法采集扣件圖像的三維數(shù)據(jù),再利用扣件圖像的深度梯度特征(Height Gradient Orientation Histograms,HGOH)對扣件狀態(tài)進行檢測分類。也有學者對基于深度學習的扣件狀態(tài)檢測方法進行了研究,龍炎等[5]使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)提取扣件的淺層和深層特征,再根據(jù)扣件特征使用Faster-RCNN(Region Convolutional Neural Network)網(wǎng)絡(luò)進行狀態(tài)分類。Xavier 等[6]利用定制化的全卷積網(wǎng)絡(luò)對扣件的高度抽象特征進行提取和扣件類型識別,針對不同類型扣件使用定制化的支持向量機進行狀態(tài)分類。與傳統(tǒng)的方法相比,采用深度學習技術(shù)的算法檢測準確率較高,但通常需要使用定制化的扣件數(shù)據(jù)集對網(wǎng)絡(luò)進行訓練,對于不同類型的扣件網(wǎng)絡(luò)通用性較差。
作為新一代軌道扣件產(chǎn)品,快速彈條扣件已經(jīng)在國內(nèi)外被廣泛應用。與傳統(tǒng)的軌道扣件不同,快速彈條扣件是一種開關(guān)型扣件,它的狀態(tài)可以根據(jù)彈條形狀和彈條所處的位置檢測,而傳統(tǒng)的軌道扣件檢測方法對這一類扣件的狀態(tài)檢測效果并不理想。針對這一問題,本文提出了一種融合扣件圖像深度邊緣特征和HOG特征的狀態(tài)檢測方法,具體流程如圖1所示。
圖1 基于深度邊緣特征的軌道扣件狀態(tài)檢測方法流程
目前,軌道扣件的邊緣特征主要利用Sobel,Canny等方法進行檢測[7-8]。傳統(tǒng)的檢測方法使用簡單、在某些場景下檢測效果良好,但這類方法只考慮了圖像梯度、紋理等低層特征,存在噪聲敏感、閾值參數(shù)設(shè)置要求高等問題。近幾年,采用卷積神經(jīng)網(wǎng)絡(luò)的邊緣檢測方法開始出現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)可以提取圖像中高層的語義特征,在檢測精度、抗噪能力等方面要明顯好于傳統(tǒng)的檢測方法。因此,本文采用卷積神經(jīng)網(wǎng)絡(luò)模型來提取軌道扣件的邊緣特征。
整體嵌套邊緣檢測(Holistically-Nested Edge Detection,HED)網(wǎng)絡(luò)[9]是一種檢測物體邊緣特征的方法,由16 層的視覺幾何組(Visual Geometry Group,VGG)網(wǎng)絡(luò)改進而來,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 HED網(wǎng)絡(luò)結(jié)構(gòu)
相較于VGG16 網(wǎng)絡(luò),HED 網(wǎng)絡(luò)做了以下改進[10-12]:①去除了VGG16 網(wǎng)絡(luò)conv5 的最后一個池化層以及之后的三個全連接層和Softmax 層。去除了這些結(jié)構(gòu)可以使HED 網(wǎng)絡(luò)輸入圖像的大小不必像VGG網(wǎng)絡(luò)一樣限制在224×224,而是實現(xiàn)了對任何大小圖像的輸入。②對conv1—conv5 的最后一個卷積層分別連接一個側(cè)邊輸出層,這些輸出層的感受野大小見表1??芍?,HED 網(wǎng)絡(luò)的輸出是多尺度和多層級的,隨著感受野尺寸的不斷變大,側(cè)邊輸出的圖像尺寸不斷減小,同時側(cè)面輸出圖像的邊緣特征信息不斷豐富。然后將側(cè)邊輸出圖像進行反卷積,使各側(cè)面輸出層輸出的圖像尺寸一致,最后利用特征融合層將多尺度的邊緣特征信息圖像進行融合來預測圖像的邊緣。
表1 側(cè)邊輸出層的感受野大小
HED 網(wǎng)絡(luò)通過對各個側(cè)面輸出層同時訓練將輸出結(jié)果進行融合的方式,對網(wǎng)絡(luò)訓練的過程進行了簡化,提升了訓練速度。對于軌道扣件圖像,只有10%的像素屬于邊緣區(qū)域,邊緣區(qū)域和非邊緣區(qū)域的像素占比差異巨大,會造成HED 網(wǎng)絡(luò)使用常規(guī)的損失函數(shù)進行訓練時出現(xiàn)模型不穩(wěn)定的現(xiàn)象。為解決這個問題HED 網(wǎng)絡(luò)對損失函數(shù)進行了修改。HED 網(wǎng)絡(luò)共有5 個側(cè)面輸出層,每個側(cè)面輸出層均與一個分類器相連接,其中分類器的響應權(quán)重為w={w(1),...,w(5)}。網(wǎng)絡(luò)最終的目標函數(shù)Lside(W,w)為
式中:W為所有網(wǎng)絡(luò)參數(shù)的集合;lside為各個側(cè)面輸出層的損失函數(shù);ak為各個側(cè)面輸出層的損失函數(shù)在全部損失函數(shù)中的占比。
網(wǎng)絡(luò)引入平衡因子β來解決上文提到圖像邊緣區(qū)域和非邊緣區(qū)域的像素數(shù)量差異巨大的問題,得到各側(cè)面輸出層的損失函數(shù)l(k)side(W,w(k)),即
式中:β為標簽標注的非邊緣像素|Z-|和總像素|Z|的比值,β= |Z-|/|Z|;1-β為邊緣像素|Z+|和總像素|Z|的比值,1-β= |Z+|/|Z|;Pr(yj= 1|X;W,w(k))通過側(cè)邊輸出的激活函數(shù)計算得到;X為原始輸入圖像的所有像素;yj為像素點j處對應的真值邊緣映射,yj∈{0,1}。
為了使用側(cè)面輸出層對邊緣進行預測,網(wǎng)絡(luò)添加了一個特征融合層將各個側(cè)面輸出層的輸出結(jié)果進行融合訓練,特征融合層的損失函數(shù)Lfuse(W,w,h)為
式中:h為融合權(quán)重,h={h1,...,h5};D(Z,Z^fuse)為融合后標簽的標注結(jié)果和預測結(jié)果之間的距離,Z^fuse=是側(cè)面輸出層的輸出。
將側(cè)面輸出層的損失函數(shù)與權(quán)重融合層的損失函數(shù)利用梯度下降方法進行優(yōu)化得到總體的損失函數(shù)L(W,w,h),即
為了檢驗網(wǎng)絡(luò)邊緣特征提取的性能,本文采用與傳統(tǒng)的Canny 算子進行比較,邊緣特征提取結(jié)果見圖3。圖3(a)為4 種不同場景不同類型的軌道扣件圖像,圖3(b)為經(jīng)過HED網(wǎng)絡(luò)處理得到的深度邊緣特征圖像,圖3(c)為經(jīng)過圖像平滑處理,再使用Canny算子提取到的邊緣特征圖像。
圖3 不同場景不同類型的軌道扣件邊緣特征提取結(jié)果
由圖3 可知:①Canny 算子利用高斯濾波器進行圖像平滑處理,再利用雙閾值算法來檢測圖像邊緣,對于對比度強的扣件圖像可以完整地檢測出扣件邊緣。但是對于對比度低的現(xiàn)場扣件圖像,Canny 算子難以實現(xiàn)完整檢測,同時Canny 算子存在容易將噪聲點誤判為圖像邊緣信息的缺點,造成圖像中出現(xiàn)許多虛假邊緣。②HED 網(wǎng)絡(luò)采用多尺度、多層級的方式進行學習,去噪聲能力明顯強于Canny算子,不但可以完整地檢測出強邊緣,而且可以完整地檢測出許多弱邊緣,對不同場景不同類型扣件圖像的邊緣信息均可以比較完整地檢測出來,同時在低對比度的現(xiàn)場扣件圖像中能較好地抑制背景噪聲。
本文提出的基于深度邊緣特征的扣件狀態(tài)檢測方法,首先將同步控制線陣相機采集到的軌道扣件圖像利用HED 網(wǎng)絡(luò)得到深度邊緣特征圖,然后對得到的深度邊緣特征圖進行HOG特征提取,最后把兩者的融合特征作為特征描述算子輸入到分類器中,對不同狀態(tài)的扣件進行識別分類。
HOG 特征是一種描述圖像中目標對象特征的方法[12-13]。它將圖像劃分成若干個細胞單元,通過計算每個細胞單元內(nèi)的梯度方向信息并統(tǒng)計成直方圖來構(gòu)成特征。由于HOG 特征是將圖像劃分成更小的細胞單元進行操作,因此可以有效減少光源位置和拍攝角度的影響,從而提高扣件識別的準確率。
提取圖像HOG特征的具體步驟為:
1)圖像預處理。首先將扣件深度邊緣特征圖轉(zhuǎn)化為灰度圖,再利用Gamma校正法對灰度圖進行標準化處理。這種預處理方式可以有效減少圖像局部陰影和光照的影響。
2)計算圖像梯度。在像素點(x,y)處利用(-1,0,1),(1,0,- 1)T算子計算出該點處x軸方向的梯度和y軸方向的梯度,進而計算出該點處梯度幅值G(x,y)和梯度方向α(x,y),分別為
式中:Gx(x,y),Gy(x,y)分別為輸入圖像中像素點(x,y)處的水平方向梯度和垂直方向梯度。
3)構(gòu)建細胞單元的梯度直方圖。先將圖像均勻劃分成若干個互不相交、大小為16×16個像素的細胞單元,然后根據(jù)步驟2)計算每個細胞單元的梯度幅值和梯度方向。再將細胞單元的梯度方向均勻劃分成12 個區(qū)間,每個區(qū)間占30°。然后將細胞單元內(nèi)的每個像素加權(quán)投影到所屬的區(qū)間中,權(quán)重大小用梯度幅值來表示。最后用直方圖來統(tǒng)計每個細胞單元內(nèi)各個區(qū)間的梯度信息。
4)形成HOG特征。將細胞單元組成塊,每個塊內(nèi)包含8×8個細胞單元。由于不同細胞單元之間梯度差異可能較大,所以在塊內(nèi)采用L1范數(shù)對方向梯度直方圖進行歸一化。最后利用窗口將所有塊的HOG 特征進行整合作為該扣件圖像的HOG特征。
將扣件深度邊緣特征和HOG特征進行融合,不同狀態(tài)扣件融合特征見圖4。
圖4 不同狀態(tài)扣件及融合特征
采用的扣件狀態(tài)檢測算法是把扣件圖像經(jīng)過深度邊緣特征提取和HOG 特征提取后的結(jié)果輸入給支持向量機(Support Vector Machine,SVM)訓練,將得到的模型作為分類器實現(xiàn)對軌道扣件狀態(tài)的檢測。
采用SFC 快速彈條扣件作為試驗樣本。與傳統(tǒng)的螺栓型扣件不同,快速彈條扣件的狀態(tài)可以根據(jù)彈條所處的位置進行判斷。圖5給出了SFC 快速彈條的常見狀態(tài),本文只針對扣件扣緊和扣件彈出這兩種狀態(tài)進行研究。根據(jù)現(xiàn)場人工巡檢的經(jīng)驗值,將扣件區(qū)域劃分成圖6所示的兩部分作為狀態(tài)判斷標準。當彈條完全處于區(qū)域A 時,認為扣件處于扣緊狀態(tài);當彈條出現(xiàn)在區(qū)域B時,認為扣件處于彈出狀態(tài)。
圖5 SFC快速彈條扣件常見狀態(tài)
圖6 扣件狀態(tài)判定區(qū)域劃分
SVM 是一類按監(jiān)督學習方式對數(shù)據(jù)進行二元分類的線性分類器,在解決分類和識別等問題中有著廣泛的應用。由于HOG 特征的維度較高,而SVM 可以避開高維空間的復雜性,利用核函數(shù)簡化高維特征,同時在解決小樣本問題上有較強的泛化能力,因此本文選用SVM作為分類器。
在構(gòu)建SVM 模型對特征進行分類時,須要選擇核函數(shù)和懲罰因子C。多數(shù)情況下,訓練樣本不是線性可分的,使用線性分類會造成大量樣本分類錯誤,因此,須要利用核函數(shù)將原始的特征映射到更高維的特征空間中,使得樣本可以被超平面分類。懲罰因子C為分類器對誤差的容忍度,C值越大,對減少誤差要求越高。C值的過大或過小都會降低分類的準確率,根據(jù)經(jīng)驗判斷和大量試驗對比,本文選用線性核作為核函數(shù),懲罰因子C設(shè)置為1.2。
選用2500 張在石太(石家莊—太原)客運專線用線陣相機采集的軌道扣件圖片作為數(shù)據(jù)集,包括2004張扣件扣緊圖片和496張扣件彈出圖片。將數(shù)據(jù)集劃分成訓練集和測試集。其中1000 張扣件圖片作為訓練集,其余1500張扣件圖片作為測試集。
本文試驗在Win 10 環(huán)境下運行,硬件環(huán)境包括:NIVIDIA RTX 2080Ti 11GB 顯 卡,Intel Xeon Silver 42142.2GHz 雙CPU,64G 內(nèi)存?;谏疃葘W習的深度邊緣特征提取網(wǎng)絡(luò)在pytorch框架下完成。
試驗選用準確率(Accuracy)、精確率(Precision)和召回率(Recall)作為扣件狀態(tài)檢測算法的評價指標[14]。準確率A為被正確識別扣件占所有扣件的比例,精確率P為識別為扣緊狀態(tài)的扣件中正確的個數(shù)占所有識別為扣緊狀態(tài)扣件的比例,召回率R為識別為扣緊狀態(tài)的扣件中正確的個數(shù)占所有扣緊狀態(tài)扣件的比例。具體計算公式為
式中:TP為人工標注為扣緊狀態(tài)的扣件被分類器正確識別的個數(shù);TN為人工標注為彈出狀態(tài)的扣件被分類器正確識別的個數(shù);FP為人工標注為彈出狀態(tài)的扣件被分類器錯誤識別的個數(shù);FN為人工標注為扣緊狀態(tài)的扣件被分類器錯誤識別的個數(shù)。
在相同的試驗環(huán)境下,將本文方法與HOG+SVM、采用Canny 算子提取扣件邊緣特征+HOG+SVM 的算法進行對比,結(jié)果見表2。
表2 不同算法試驗結(jié)果
由表2 可知:使用Canny+HOG+SVM 的識別方法與傳統(tǒng)HOG+SVM 識別方法相比在精確率、召回率和準確率上提高并不明顯,而本文方法在這三項指標上均取得明顯提高。這是因為使用HED 網(wǎng)絡(luò)提取扣件的深度邊緣特征可以有效減少背景噪聲和無用特征對檢測結(jié)果的影響。因此,本文方法有更高的識別準確性和更強的魯棒性。
本文提出了一種基于深度邊緣特征的軌道扣件狀態(tài)檢測方法:利用深度學習網(wǎng)絡(luò)提取扣件圖像的深度邊緣特征,再利用方向梯度直方圖來描述深度邊緣特征,將形成的融合特征輸入給SVM 進行訓練,最后利用訓練好的SVM作為分類器對扣件狀態(tài)進行檢測。
本文方法的準確率、召回率、精確率分別達到95.1%,97.3%,96.6%,均高于其他檢測方法,同時本文方法具有較強的魯棒性,滿足軌道扣件狀態(tài)檢測的要求。