李少佳,胡美振,陳輝東,劉艷霞
(北京聯合大學 城市軌道交通與物流學院,北京 100101)
隨著我國高速鐵路越來越普及,運行速度越來越快,對鐵路基礎設施安全性的要求也越來越高。軌道扣件作為軌道最重要的部件之一,其健康狀態會直接影響運輸安全[1-2]。
傳統軌道扣件健康狀態的維護一直通過人工巡檢來完成,但是隨著我國軌道交通的發展,鋼軌數量日益擴增,人工巡檢任務繁重且成本較高,而且視覺的過度疲勞也容易出現漏檢,給軌道交通安全帶來一定的風險。LeNet-5作為卷積神經網絡的開山之作,吸引了包括工業界在內的眾多研究人員[3-4]。牛津大學研發了VGGNet網絡,通過多個3×3卷積核和2×2 MaxPooling層的疊加,構建了16層和19層的VGGNet網絡[5]。與2012年研發成功的AlexNet網絡相比,錯誤率大幅下降,同時也提高了網絡的泛化能力。然而對于軌道扣件的狀態檢測來說,VGGNet網絡的參數量大,推理速度慢[6],無法滿足軌道扣件的狀態識別任務對實時性的要求。2014年,在ImageNet舉辦的圖像分類大賽ILSVRC[7]中,由Google團隊提出的GoogLeNet[8]網絡斬獲了該年度ImageNet競賽中分類任務的冠軍,其在網絡中引入了Inception結構,避免了梯度爆炸,并融合了多尺度特征[9],在大多數分類任務中均取得良好效果。
目前,軌道扣件的檢測方法大多是基于改進形狀匹配的扣件缺陷檢測方法,該方法無須提前對扣件進行定位,采用多模板匹配方法,以提高模板的多樣性,單張圖片的匹配時間為180 ms[10]。還有基于多傳感器信息融合的軌道扣件缺陷檢測方法,通過結構光設備采集扣件信息,使用ResNet18網絡進行檢測[11]。再有基于改進YOLOv4的鐵路扣件檢測[12-13],使用CSPDarknet53作為特征提取網絡,提高了CNN的學習能力,從而提高了網絡的檢測精度[14]。另有基于語義融合的扣件檢測,通過信息熵來確定權值,判斷待檢測扣件的狀態[15]。雖然這些方法對于軌道扣件狀態檢測的精度均可達到90%以上,但是識別速度還無法滿足軌道扣件識別的實時性要求。
本文通過對GoogLeNet網絡中的Inception結構、網絡層數及卷積核個數等進行一系列輕量化改進,在保證檢測精度的同時,降低網絡復雜度。隨后通過與主流網絡模型VGG16、VGG19和GoogLeNet的對比實驗表明,輕量化GoogLeNet(Lightweight GoogLeNet)模型在軌道扣件數據集上取得識別精度和速度的最佳平衡,滿足軌道扣件狀態識別對實時性的要求。
由于軌道扣件沒有公開的數據集,我們自行采集并構建了軌道扣件數據集。其中,大部分樣本通過實地拍攝獲得,少數通過網絡收集,共得到335張不同缺陷狀態的軌道扣件圖片,包括正常、斷裂、移位和缺失4類,如圖1所示。

圖1 數據集樣本Fig.1 Sample of Dataset
計算機視覺研究在近幾年取得重大進展的原因之一是大規模數據集的出現,樣本數量的多少對網絡訓練起到了至關重要的作用。由于很難獲取現實中軌道扣件缺陷狀態的樣本,數據集樣本量較小,所以我們使用roboflow對數據集進行隨機采樣增強,主要增強方法包括水平翻轉、垂直翻轉、鏡像、灰度處理、曝光處理、隨機裁剪及色彩變化等[16],圖像增強后的效果如圖2所示。由此我們得到了789張圖片,然后將其按照9∶1的比例分成訓練集和驗證集。

圖2 圖像增強處理后的數據集樣本Fig.2 Sample of Dataset after Image Enhancement
因為軌道扣件數據集圖片的顏色趨于黑色,通過數據增強后也只有不到1 000張圖片,對于原始GoogLeNet網絡來說,使用9個Inception模塊容易造成過擬合現象,所以,需要通過減少網絡的深度和參數量來緩解過擬合現象。另外,由于軌道扣件圖片中沒有重疊和遮擋現象,且采集的扣件樣式相對固定,而軌道扣件檢測中對實時性要求較高,所以,采用輕量化網絡更容易同時滿足扣件識別任務對精度和速度的要求。輕量化GoogLeNet模型的總體架構如圖3所示。

圖3 輕量化GoogLeNet網絡模型Fig.3 Lightweight GoogLeNet Network Model
軌道扣件狀態識別的數據比較集中,松動移位和斷裂等缺陷樣本與正常樣本的區別不大,對紋理特征等細節信息的依賴相對較大。而在原始Inception結構中通過5×5大小的卷積操作后,特征圖會被壓縮得很小,容易丟失圖像的細節信息。我們將原Inception結構中的5×5 Conv及其前面的1×1 Conv構成的整個Inception分支去掉;同時將3×3 Conv及其前面的1×1 Conv的卷積核個數減少為原來的一半。另外,考慮到批歸一化(BN)操作可以提升模型訓練精度,而且不含訓練參數,對推理速度幾乎沒有影響,所以,我們在輕量化的Inception結構卷積層后分別添加了BN操作。輕量化前后的Inception結構如圖4所示。

圖4 Inception模塊以及輕量化inception模塊Fig.4 Inception Module and Lightweight Inception Module
在原始的GoogLeNet網絡模型中,包括9個Inception模塊,并且在第4個和第7個模塊中引入輔助分類器模型,防止梯度消失與過擬合現象。改進后的輕量化GoogLeNet模型用7個輕量化Inception模塊取代原始的9個Inception模塊。因為改進后的Inception模塊中使用了批歸一化(BN)操作,所以為了避免重復輕量化,GoogLeNet模型中取消了Inception模塊之前的兩個局部響應歸一化(Local Response Norm)層。除此之外,將原來第4個和第7個Inception模塊后連接的兩個輔助分類器減少為1個,且將其位置調整到第5個輕量化Inception模塊之后,并在輔助分類器中引入批歸一化(BN)操作,如圖5所示。輕量化GoogLeNet模型的網絡結構及參數如表1所示。

表1 輕量化GoogLeNet模型的網絡結構及參數設置Table 1 Network Structure and Parameter Settings of Lightweight GoogLeNet Model

圖5 基于BN的輔助分類器Fig.5 BN-based Auxiliary Classifier
在輕量化GoogLeNet模型中,我們使用了Tanh激活函數取代ReLU激活函數。Tanh激活函數和ReLU激活函數分別如式(1)和式(2)所示。ReLU激活函數也被稱為單側抑制函數,當輸出值小于0時就會導致一部分神經元得不到更新。Tanh激活函數可以解決這一問題,并應用于輕量化GoogLeNet模型中,與ReLU激活函數相比,網絡精度提高了1.2個百分點。
(1)

(2)
在訓練過程中,服務器使用Ubuntu 20.0.4系統,深度學習框架為Pytorch 1.10.0,CPU型號為Intel(R)Core(TM)i7-7700,GPU為NVIDIA GeForce GTX 1080,顯卡內存為8 G。Pytorch是基于Torch的開源機器學習庫,在處理圖像的過程中可以對GPU進行加速。
首先將包含4種扣件狀態類型的數據集打亂順序,然后以9∶1的比例將其劃分為訓練集和驗證集,并將輸入圖像統一縮放為224×224的RGB圖像。在訓練過程中,將網絡的學習率設置為0.000 3,Dropout設置為0.5,batch size設置為32,使用ADAM優化器對網絡中的參數進行優化更新,加快模型收斂。對輕量化模型的不同版本進行消融實驗,結果如表2所示。

表2 消融實驗Table 2 Ablation Experiments
由表2可知,采用Tanh激活函數比ReLU激活函數更有利于改進輕量化GoogLeNet模型的訓練精度。在推理時間相同的情況下,采用Tanh激活函數可使模型精度提高1.2個百分點。而且添加BN操作后,可進一步使模型精度提高9.8個百分點,達到92.7%,所以,改進輕量化模型采用BN加Tanh激活函數的版本。
為進一步驗證輕量化GoogLeNet模型的優勢,本文分別在VGG16、VGG19、GoogLeNet和輕量化GoogLeNet網絡模型上,對軌道扣件數據集進行訓練。這些網絡模型在訓練階段的驗證準確率曲線和損失曲線如圖6所示。
從圖6可以看出:由于軌道扣件各種缺陷狀態的樣本量較少,對于VGG16和VGG19這兩個規模較大的網絡模型來說,容易造成過擬合現象,并且VGG16和VGG19的驗證準確率曲線一直處于上下浮動狀態,模型魯棒性較差;從驗證損失曲線來看,這兩個網絡模型在損失下降的過程中都存在較大波動,網絡損失下降過程不穩定,最終的分類準確率分別只有71%和73.2%。對于GoogLeNet網絡模型來說,雖然原始網絡模型驗證準確率曲線的波動性略好于輕量化GoogLeNet網絡模型,但是輕量化GoogLeNet網絡模型的驗證準確率高于原始網絡模型,最終達到90%以上,在損失曲線下降率方面也要優于原始網絡模型。在訓練結束后,利用軌道扣件測試集對3種經典網絡模型和改進的輕量化GoogLeNet網絡模型進行測試,結果如表3所示。

圖6 各個網絡模型的驗證準確率和損失曲線圖Fig.6 Validation Accuracy and Loss Curves for Each Network Model
由表3可知,對于軌道扣件數據集,原始GoogLeNet的網絡參數量比VGG16和VGG19小1個數量級,為13.378 280 M,網絡精度達到了84.1%,FPS為145.4,識別精度和速度都優于VGG網絡。但對軌道扣件狀態識別任務來說,實時性仍然有待提高。本文對其改進后提出的輕量化GoogLeNet網絡模型,其參數量僅有4.089 048 M,推理時間為3.933 3 ms,FPS可達254.2,滿足扣件缺陷識別任務對實時性的要求,而且網絡測試精度達到92.7%,比原始GoogLeNet網絡提高了8.6個百分點。

表3 模型結果統計Table 3 Model Results Statistics
由于軌道扣件檢測任務對網絡實時性要求較高,本文針對自行構建的專用數據集特點,對GoogLeNet網絡模型進行輕量化改進,主要包括裁剪Inception結構、增加BN操作、 減少網絡層數和輔助分類器的個數,并用Tanh激活函數代替ReLU激活函數。改進后的輕量化GoogLeNet網絡模型在提升精度的同時,還大大提高了網絡實時性,更適用于軌道扣件狀態的識別任務。