王志學,彭朝勇,羅 林,宋文偉
(西南交通大學 物理科學與技術學院,四川 成都 610031)
目前國內(nèi)外針對列車車身安全檢測的方法主要分為三類,分別是人工檢測法、基于機器視覺的關鍵部件檢測法和基于機器視覺的整體比對法[1]。人工檢測方法效率低下,而且受檢測人員狀態(tài)影響較大。關鍵部件檢測法則是針對機車運行起關鍵作用的部件進行檢測,如吊桿、軸報箱、緊固螺栓和芯盤等。文獻[2]利用小波變換技術檢測緊固螺栓的安全狀態(tài);文獻[3]研究出一套實時的螺栓檢測系統(tǒng),用于代替人工檢測。同樣,在文獻[4-5]中,分別對緊固螺栓和制動蹄片這兩種關鍵部件進行安全檢測。這種檢測方法只對關鍵部件進行檢測,無法覆蓋整個車體。整體比對法是以整個車體圖像作為檢測對象,利用結構相似性[6],將當前過車車體圖像與歷史過車車體圖像(無異常的標準圖)進行比對,從而檢測出兩次過車車體上的差異,然后將差異作為安全隱患向檢測人員報警,檢測人員再進行最后的異常判斷。
雖然整體比對法可以對整輛列車進行監(jiān)測,但是無法克服由水漬、油漬、標記等非危險差異引起的大量誤報警,這嚴重降低了整體比對法的檢測效率。在鐵路運輸高速發(fā)展的今天,為保障列車運行安全,適應繁重的檢測任務,急需一種高效且精準的自動化檢測方式,以替代傳統(tǒng)的人工檢測,能對差異進行自動識別。
近年來,深度學習[7]的方法得益于其強大的非線性表達能力,在圖像處理領域得到了廣泛的應用。相比于傳統(tǒng)特征提取方法在復雜背景下難以提取有效特征的缺點,如SIFT[8-9]、SURF[10]和HOG[11]等,應用卷積神經(jīng)網(wǎng)絡的深度學習方法強大的特征提取能力使它在圖像分類、識別領域取得了矚目的成就。因此本文將深度學習的方法引入列車圖像異常識別系統(tǒng)中。
調(diào)研文獻發(fā)現(xiàn),現(xiàn)在已經(jīng)有部分研究將深度學習方法運用在鐵路相關領域。文獻[12]利用Faster R-CNN目標識別網(wǎng)絡對高速鐵路接觸網(wǎng)承力索座進行了目標定位,然后檢測承力索座上的裂紋信息,實現(xiàn)了對承力索座裂紋故障的可靠診斷。文獻[13]提出一種級聯(lián)Faster R-CNN網(wǎng)絡用于檢測高速鐵路接觸網(wǎng)支撐與懸掛裝置中等電位線的散股故障。文獻[14]建立了一個基于卷積神經(jīng)網(wǎng)絡的多故障判別模型,主要用于檢測邊框架螺栓和軸螺栓區(qū)域的一些故障。但是,以上研究都是針對列車車體關鍵部件的檢測,無法覆蓋整個車體。
基于以上原因,本文建立一個基于并聯(lián)卷積神經(jīng)網(wǎng)絡[15]的列車車體異常檢測模型,見圖1。此模型包含兩個CNNs結構,是一種并聯(lián)模型。與傳統(tǒng)分類任務不同的是,差異分類網(wǎng)絡的輸入為兩幅圖像,即歷史圖和當前圖。神經(jīng)網(wǎng)絡首先需要檢測出兩幅圖像的差異信息,然后進一步識別此差異信息是否存在安全隱患。根據(jù)調(diào)研所知,目前還沒有將卷積神經(jīng)網(wǎng)絡運用在差異分類上,但是有些相似工作。在遙感信息處理領域,并聯(lián)卷積神經(jīng)網(wǎng)絡被廣泛地運用在了變化檢測[16-18]上,通過輸入兩幅不同時期同一地點嚴格配準的遙感圖,輸出變化情況,其為一種圖像分割任務,這和差異分類任務相比有較大的不同。另外,雖然差異分類只采用一個神經(jīng)網(wǎng)絡單階段完成,但是網(wǎng)絡內(nèi)部卻分為兩步:差異信息檢測和差異分類。同時,為了提升網(wǎng)絡的性能,本文提出一種多形狀訓練方法,并且設計了一種加入距離度量限制項的損失函數(shù)。最后,在以上優(yōu)化的基礎上建立一個復合并聯(lián)模型,進一步提升網(wǎng)絡性能。
圖1 并聯(lián)模型
針對列車車體差異分類任務,考慮樣本是當前圖和歷史圖構成的圖片對,首先建立一個并聯(lián)網(wǎng)絡模型,見圖1。模型主要由兩個結構相同的CNNs模型并聯(lián)組成,兩個CNNs分支分別接收當前圖和歷史圖作為輸入,經(jīng)過一系列卷積池化操作后,輸出兩幅圖的特征向量Fw,b(Curri)和Fw,b(Histi)。為了獲得更好的分類結果,在兩個CNNs分支的輸出端,將兩幅圖的特征向量相減得到差分特征圖fend,再送進全連接層和softmax層進行分類。值得注意的是,為了讓兩個CNNs分支能更好地提取圖片對的差異信息,兩個CNNs分支之間進行權值共享。這種權值共享的方式也保證了兩個CNNs分支提取到的圖像特征在特征空間中的分布不會有較大的差異。
為使此分類模型具有良好的性能,本文創(chuàng)新性地提出兩種改進方式:①在訓練中加入多形狀訓練方法;②改進損失函數(shù),加入圖片對的距離度量限制項。
在圖1建立的并聯(lián)卷積神經(jīng)網(wǎng)絡模型基礎上,本文還創(chuàng)新性地建立了一種復合并聯(lián)模型,見圖2,此復合并聯(lián)模型較圖1所示的并聯(lián)模型,增加了一個串聯(lián)分支一,并聯(lián)分支二與圖1模型結構相同。串聯(lián)分支一與并聯(lián)分支二屬于并聯(lián)結構,而并聯(lián)分支二內(nèi)部也是一個并聯(lián)結構,分支一與分支二共同構成了復合并聯(lián)模型。為了組合兩個分支的特征,在兩個分支的輸出端進行了特征拼接,即將分支一的融合特征和分支二的差分特征在通道維度上進行拼接,將拼接之后的特征輸入全連接層和softmax層進行最后的分類。
圖2 復合并聯(lián)模型
首先,圖片對在輸入分支一之前被合成一幅二通道的圖片,雖然二通道的圖片在自然圖像中不存在,但這里人為地將它們拼接起來。較分支二中兩個并聯(lián)CNNs獨立提取兩張圖片的特征,分支一通過對組合成的二通道圖片進行卷積池化操作,能夠提取到兩張圖片的融合特征。即分支一提取到的特征是模型通過結合兩張圖片對應位置的信息而得到的。一方面,對于模型來說,可用于判斷的特征更加豐富;另一方面,分支一提取的特征是建立在網(wǎng)絡綜合考量兩張圖片差異信息的基礎之上的,而分支二提取到的特征是網(wǎng)絡在兩張圖片上獨立提取出來的,兩種特征是互補的??紤]并聯(lián)分支二兩個CNNs之間權值共享,在提取特征的時候也會綜合考量兩個圖片之間的信息,但更多地是為了避免兩個CNNs提取到的特征在特征空間中的分布相差太大。因此,串聯(lián)分支一提取的圖片對之間的融合特征還是較并聯(lián)分支二提取的更加豐富和全面。試驗證明,這種模型進一步提升了網(wǎng)絡的性能。
由于本文所采用的數(shù)據(jù)集中的圖片形狀是無規(guī)則的,即長寬比是任意的,所以差異分類網(wǎng)絡也應該適應不同的形狀。為了解決不同形狀的問題,本研究提出了多形狀訓練方法。主要采用了5種不同的形狀:90×180、180×90、128×128、90×90、180×180。對于90×180、180×90、128×128三種尺寸,它們有近似的像素點,所以計算量也大致相同。對于90×90、180×180兩種尺度的加入,是因為考慮神經(jīng)網(wǎng)絡的感受野,即卷積神經(jīng)網(wǎng)絡每一層輸出的特征圖上的像素點在輸入圖片上映射的區(qū)域大小。在CNNs模型結構固定的情況下,其感受野也固定。因此,加入兩種尺度的圖片訓練,希望模型在大尺度(180×180)下能夠提取到圖片對的小差異,在小尺度(90×90)下能夠提取到圖片對大的差異信息,即不同的尺度大小下,網(wǎng)絡“注意”到的圖片差異信息是不一樣的。同時,為了使5種尺寸的輸出向量可以轉化為相同的長度以進行最后的分類,本模型在進行全連接前采用了全局平均池化。
在訓練時,5種尺寸的形狀交替進行訓練。測試時,圖像采用3種形狀(90×180、180×90、128×128)最接近的一個形狀變形,然后推理出差異的類別。通過這種方式,數(shù)據(jù)集在一定程度上得到了擴充,主要有兩方面的優(yōu)點:①由于樣本數(shù)量的增加,網(wǎng)絡性能得到了提升;②采用變形的策略有利于網(wǎng)絡專注于變化信息,而不是背景類的類別信息。雖然在之前的一些工作中,如在RCNN[15]網(wǎng)絡中,為防止網(wǎng)絡失真,變形都是應該盡量避免的。但是差異分類任務不是去識別圖像是什么,而是兩幅圖片之間的差異是什么類別。采用多形狀訓練策略,會使原始圖像變形為多種形狀,這樣圖片的背景信息會因為變形而失真,但是差異信息幾乎沒有變化。尤其是像污漬、亮度和異物這些沒有固定特征的差異,即使圖像更改了形狀,背景失真了,但是上述差異依舊十分真實,見圖3。這種策略會促使網(wǎng)絡更好的學習差異信息。
圖3 形狀變化
為使模型針對差異分類任務有更好的分類效果,需要設計一個合適的損失函數(shù)。通過最小化損失函數(shù),訓練出一個能夠準確提取圖片對差異特征的CNNs參數(shù)模型Fw,b,其中下角w和b分別代表模型的權重和偏置參數(shù)。此參數(shù)模型提取到圖片對的特征后,在特征空間中,正樣本(有異常)對應的特征點之間的距離更加靠近,負樣本(無異常)對應的特征點之間的距離更加遠離,從而分離開了正負樣本。
令Curri和Histi分別表示輸入模型的第i對列車當前圖和歷史圖,F(xiàn)w,b(Curri)、Fw,b(Histi)表示模型輸出的當前圖和歷史圖的特征向量。
1.4.1 分類損失函數(shù)
采用交叉熵作為樣本類別標簽的預測,因此分類損失函數(shù)可以表示為
fend=abs[Fw,b(Curri)-Fw,b(Histi)]
( 1 )
( 2 )
因此,模型的分類損失表示為
( 3 )
1.4.2 距離損失函數(shù)
在距離損失函數(shù)中,模型需要學習優(yōu)化的距離度量可以表示為Dw,b(Curri,Histi),它表示圖像對特征向量之間的距離。本文主要采用余弦距離Dcos作為距離的衡量,Dcos∈[1,0]。
基于余弦距離的圖片對特征向量之間的距離可以表示為
( 4 )
令
Dw,b(Curri,Histi)=Dcos(Curri,Histi)
( 5 )
則距離損失函數(shù)設置為
(1-yi)[1-Dw,b(Curri,Histi)]}
( 6 )
對式( 6 )的直觀理解是:實際中,不論是有異常的正樣本還是無異常的負樣本,圖片對之間的相似性都是介于(0,1)之間,只有完全相同的兩幅圖片,其相似性才為1。在此差異分類模型中,認為有異常的正樣本是完全不相似的,其相似性為0;而無異常的負樣本是完全一樣的,相似性為1。這樣,優(yōu)化的目標就是令正樣本的特征距離趨近于0,負樣本的特征距離趨近于1,即
( 7 )
這樣設置的好處是,使模型能夠減少或者避免受光照、污漬、標記等偽報警差異的影響,更加專注于提取圖片對中真正引起正報警的危險差異。同時,在優(yōu)化損失函數(shù)后,正樣本(有異常)對應的特征點之間的距離更近,負樣本(無異常)對應的特征點之間的距離更遠,正負樣本在特征空間中被更好地分隔開來。
因此,模型訓練的損失函數(shù)設置為
Loss=(1-λ)Lossclass(fend,y)+
λLossdis(Dw,b,y)
( 8 )
式中:λ為一個超參數(shù),λ∈(0,1),用于權衡分類的損失和距離的損失,以讓模型性能達到最優(yōu)。
本文試驗的數(shù)據(jù)集總共包括16 625對圖片,其中正樣本(正確報警異常)8 355對,負樣本(偽報警異常)8 270對。隨機挑選15 625對樣本用于訓練,1 000對樣本用于測試。正樣本主要包括因異物、丟失、松動造成的差異。這類差異會影響列車的運行安全,比如異物出現(xiàn)在動力裝置上,會影響機車的正常運行。而負樣本主要是由污漬、標記、亮度等引起的差異,這類差異是非異常的,因為它們不會對列車運行安全造成影響。樣本集的部分實例見圖4,樣本集分配詳情如表1所示。
圖4 正負樣本實例
表1 差異分類樣本分配情況
在網(wǎng)絡訓練時,采用的是Adam優(yōu)化器進行梯度下降。由于采用了反向傳播算法,初始學習率被設置為0.01,衰減率被設置為0.99。除了第一卷積層外,在進行卷積操作前都會首先依次執(zhí)行Batch Normalization(BN)算法和ReLU非線性激活。卷積神經(jīng)網(wǎng)絡的批大小為48,迭代次數(shù)為100 000次。為了避免過擬合,網(wǎng)絡還采用了L2正則化。網(wǎng)絡權值的初始化采用的是Xavier初始化器。所有試驗都是基于TensorFlow深度學習框架編寫,試驗平臺的GPU和CPU配置分別為Nvidia RTX2070 GPU和Intel i7-8700 CPU,試驗結果都是6次重復性試驗得出的平均值。損失函數(shù)權重λ在0到1之間以0.1為步長試驗,如表2所示,最后確定在λ取值為0.1的時候模型性能最優(yōu),因此本文中所有試驗都將損失函數(shù)權重λ設為0.1。所有圖片在訓練前都會進行歸一化和隨機的翻轉。試驗結果如表3所示。
表2 損失函數(shù)權重對模型的影響
表3 試驗結果
如表3所示,試驗逐一驗證了優(yōu)化策略的性能提升,本文中網(wǎng)絡性能的提升由準確率、精確率、召回率和F1指標來評價,其中提升項使用F1綜合評價指標衡量。從試驗1、2可知,網(wǎng)絡加入距離度量之后,雖然精確率有所下降,但準確率和召回率都有提升,因此綜合評價指數(shù)F1由84.22%提升到87.51%,提升了3.29%。由試驗1、3可知,加入3種尺寸(180×90、90×180、128×128)訓練后,網(wǎng)絡F1較未優(yōu)化的試驗1模型提升至90.42%,提升6.20%,其他3項指標也都有提升。由試驗1、4可知,加入3種尺寸2種尺度,即5種尺寸訓練之后,網(wǎng)絡性能提升至91.35%,提升了7.13%,其他三項也都有提升;而且,由試驗3、4可知,在3種尺寸的基礎上加入2種尺度的訓練,網(wǎng)絡性能也有提升,本試驗中網(wǎng)絡F1指標從90.42%提升至91.35%,提升了0.93%,其他3項性能也都有所提升;這也驗證了前面的猜想,即加入多尺度訓練能夠提升網(wǎng)絡性能。最后,為了獲得最優(yōu)模型,將3種優(yōu)化策略全都應用于網(wǎng)絡,訓練獲得了F1指標為92.42%的性能,較未優(yōu)化網(wǎng)絡提升了8.20%。同時,準確率與召回率由85.10%、80.60%提升到至92.60%、90.20%。在復合并聯(lián)模型試驗中,模型提升規(guī)律同并聯(lián)模型,最后復合并聯(lián)模型的F1性能達到95.03%。而且,由試驗1、6和5、10可以看到,復合并聯(lián)模型的性能總體優(yōu)于并聯(lián)模型。
為進一步證明模型能夠準確提取到差異信息,挑選了6對代表性的樣本圖片,將復合并聯(lián)模型兩個分支提取到的圖片特征進行可視化,并與傳統(tǒng)的LBP算法提取的特征進行比較,見圖5。
圖5 模型特征可視化
圖5(a)、5(b)、5(c)是正樣本圖片對,圖5(d)、5(e)、5(f)是負樣本圖片對。每組圖片對中,第一行分別表示當前圖和歷史圖的原始圖片;第二、三行是復合模型中并聯(lián)分支提取到的當前圖和歷史圖的特征;最后一行前兩張是復合模型中串聯(lián)分支提取到的特征,后兩張是利用LBP算法提取到的特征。由于深層網(wǎng)絡提取的特征太抽象難以理解,這里展示的只是第一層卷積后的特征圖中有代表性的10幅。
由圖5可以看出,復合并聯(lián)模型不僅能夠提取基本的邊緣信息,還可以檢測到兩幅圖像之間的差異。首先,對于并聯(lián)分支,它能夠分別提取兩幅圖片的差異信息,圖5(a)中第a2、a3行分別提取到了異物和背景的特征;圖5(b)、圖5(c)中,部件的轉動被檢測了出來;圖5(d)中有污漬部分和無污漬部分的特征都能準確地提取。對于串聯(lián)分支,由于輸入是二通道圖像,它可以很好地兼顧兩幅圖像之間的差異信息。如在a4、d4,差異信息異物和污漬被分割開來,e4中第2張對光照部分有較強的響應。同時,在與LBP算法提取到的特征進行對比時我們發(fā)現(xiàn),雖然LBP算法也能夠提取基本的邊緣輪廓信息,但是對于污漬、光照,不能有效地提取到差異特征。如d4中第3、4張,污漬特征并沒有被提取到,同樣e4中第3、4張也沒有提取到光照差異??梢钥吹?,本復合模型中,并聯(lián)部分能夠獨立提取兩幅圖像的差異信息,而串聯(lián)部分綜合考量兩幅圖像的差異信息,兩部分提取的特征進行融合,從而提升了模型的性能。
針對列車車體的差異分類任務,本文建立了兩種網(wǎng)絡模型,分別是并聯(lián)模型以及改進的復合并聯(lián)模型。通過可視化卷積特征,發(fā)現(xiàn)并聯(lián)部分能夠獨立提取到圖片對的差異信息,而串聯(lián)部分可以兼顧兩張圖片信息提取到差異信息,通過兩部分特征的融合,提升了網(wǎng)絡的性能。同時,為了提升差異分類網(wǎng)絡的性能,本文提出了多形狀訓練方法以及加入距離度量的損失函數(shù)。試驗結果表明,這兩種優(yōu)化方法都能夠提升網(wǎng)絡的分類性能。而且,本文建立的網(wǎng)絡模型不僅具有較高的檢測準確率,對光照、水漬和油漬等偽報警也具有良好的魯棒性。
因此,本模型的提出,能夠有效彌補人工判斷差異效率低下、成本較高的不足,有一定的實際應用價值。