孫明華,楊 媛,李淵博
(西安理工大學自動化與信息工程學院,陜西 西安 710048)
地鐵隧道內(nèi)需要檢測的對象主要包括軌道與隧道。相比于地面鐵路巡檢,地鐵隧道內(nèi)的環(huán)境固定、異物入侵概率較低,同時可見度較低,需要靠隧道壁兩側的LED燈提供照明。國內(nèi)外提出了很多自動鐵路異常檢測和隧道評估的方法:Rodriguez等人[1]提出了一種使用霍夫變換完成軌道內(nèi)異物檢測的系統(tǒng),該系統(tǒng)通過攝像機采集圖像能夠?qū)崟r地檢測障礙物,并且在發(fā)現(xiàn)異物時能夠發(fā)出警報;Gibert 等人[2]使用計算機視覺和模式識別方法完成對軌道的自動檢查,該方法通過在多任務學習框架內(nèi)組合多個檢測器,能夠更準確地檢測鐵路枕木和軌道扣件上的缺陷。但是,傳統(tǒng)圖像特征提取的方法容易受到場景和光線的影響,無法滿足智能分析的需要。而深度學習憑借著其針對特定問題自動構建最合適特征的優(yōu)勢,在圖像分析領域相對于傳統(tǒng)圖像處理方法有著巨大優(yōu)勢。
將深度學習技術應用于自動化異常檢測已經(jīng)成為一種趨勢。Xu等人[3]提出了一種基于深度學習的方法來識別鐵路路基探測數(shù)據(jù)的探地雷達剖面缺陷,通過識別各種缺陷類型的比較實驗證明了該方法的魯棒性。Santur等人[4]利用3D激光相機和深度學習的方法,提出了一種用于鐵路表面檢測的軟硬件架構,其中3D激光相機能夠快速檢測鐵路表面和橫向的缺陷,而深度學習具有極高的特征表達能力。Zhang等人[5]提出了一種基于卷積神經(jīng)網(wǎng)絡和多聲發(fā)射事件概率分析的鐵路軌道狀況監(jiān)測的方法,該方法消除了一次性分類引起的檢測誤差,提高了分類精度。Makantasis等人[6]提出了一種基于深度學習的全自動隧道評估方法。該方法使用單個單目相機采集原始輸入信息,利用卷積神經(jīng)網(wǎng)絡構建高級特征,結果顯示了深度學習架構對隧道缺陷檢測問題的適用性。Protopapadakis等人[7]提出了一種用于隧道評估的機器人自動檢查方法,使用卷積神經(jīng)網(wǎng)絡完成視覺檢查。整個系統(tǒng)已經(jīng)在鐵路和公路隧道中進行試用,顯示了檢查自動化領域研究的活躍性。
自2012年以來,深度學習技術飛速發(fā)展,卷積神經(jīng)網(wǎng)絡模型也不斷推陳出新。從最初的AlexNet[8]到VGG[9],從GoogleNET[10]到ResNet[11]。網(wǎng)絡模型的結構也從單分支演變?yōu)槎喾种?,層?shù)不斷加深,計算量不斷增加,特征提取能力不斷加強。
網(wǎng)絡層數(shù)的加深雖然使網(wǎng)絡的性能得到了提高,但是同時也帶來了效率問題:網(wǎng)絡模型的大小與單幅圖像的處理速度。對于效率問題,通常的提升方法是進行模型壓縮(Model Compression),即對已經(jīng)訓練好的網(wǎng)絡模型進行壓縮,使得網(wǎng)絡攜帶更少的參數(shù),從而改善模型大小以及處理速度,但是這種方法會對網(wǎng)絡模型的準確率造成影響。相比于對訓練后保存的模型進行處理,輕量化模型的設計另辟蹊徑。輕量化網(wǎng)絡模型也具有各種不同的架構設計,如使用fire module 的SqueezeNet[12]、使用深度可分離卷積的MobileNet_v1[13]與MobileNet_v2[14]、使用分組卷積和通道混洗的ShuffleNet[15]。這類網(wǎng)絡模型的主要思想在于使用更高效的計算方式(主要是改進卷積方式),從而在減少網(wǎng)絡參數(shù)的同時保持網(wǎng)絡的性能。
為了完成在地鐵隧道環(huán)境中的實時異常檢測,所構建的卷積神經(jīng)網(wǎng)絡需要在保證識別準確率的前提下縮減網(wǎng)絡的參數(shù)量,加快網(wǎng)絡的處理速度。即在控制卷積神經(jīng)網(wǎng)絡計算量的前提下,增強網(wǎng)絡的特征提取能力。GoogleNet網(wǎng)絡由多個inception結構堆疊而成,該網(wǎng)絡的特征提取能力強但是計算量較大;而MobileNet網(wǎng)絡的計算效率高但是網(wǎng)絡的拓撲結構采用VGG的思想,特征提取能力較弱。并且2種網(wǎng)絡中都使用了1×1卷積,因此將2種網(wǎng)絡的優(yōu)勢互補成為了一種可行的選擇,即使用深度可分離卷積對inception結構進行改進。
地鐵隧道巡檢視頻分析系統(tǒng)的工作流程如圖1所示,其由2部分構成: 左半部分是對網(wǎng)絡模型的訓練與優(yōu)化,其中還包括對數(shù)據(jù)集的劃分和圖像的預處理。本文通過設置不同的訓練輪數(shù)EPOCHS、初始學習率INIT_LR、批大小BS等超參數(shù)對SubwayNet網(wǎng)絡模型進行多次訓練,記錄實驗結果。SubwayNet網(wǎng)絡模型是使用改進后的inspection結構構成的輕量化網(wǎng)絡。通過實驗結果的對比不斷調(diào)整各種超參數(shù)以獲得更好的分類效果,從而完成網(wǎng)絡模型的優(yōu)化,保存實驗中效果最優(yōu)的網(wǎng)絡模型參數(shù)供分析系統(tǒng)調(diào)用。右半部分則是分析系統(tǒng)。運行分析系統(tǒng)軟件,自動讀取待檢測的視頻并對視頻中待分析的圖像進行預處理;然后調(diào)用已保存的網(wǎng)絡模型,將分析結果反饋到系統(tǒng)中;最后預測類別與置信度的分析結果會在系統(tǒng)界面中直觀顯示,并在發(fā)現(xiàn)異常時進行聲音報警。
Figure 1 Workflow of video analysis system for subway tunnel inspection圖1 地鐵隧道巡檢視頻分析系統(tǒng)工作流程
本文所采用的地鐵隧道視頻均采集于地鐵線路實景。制作數(shù)據(jù)集時首先使用Python中的OpenCV庫將采集到的1080×1920的視頻數(shù)據(jù)按照10幀的間隔頻率提取圖像。然后結合日常地鐵運營檢修中出現(xiàn)的異常情況將數(shù)據(jù)集分為正常、軌道內(nèi)存在異物、隧道壁滲漏水、鋼軌扣件螺絲緊固、鋼軌扣件螺絲松動5大類。之后將對視頻中提取到的圖像進行人工判斷分類,分別為Normal、Object、Water、Fasten、Loosen,作為Subway-5數(shù)據(jù)集,用于后續(xù)網(wǎng)絡模型的訓練和測試,訓練和測試圖像所占比例為8∶2。圖2所示為5種不同類別的圖像示例(方框為后期標注,真實數(shù)據(jù)無方框)。
Figure 2 Image samples of Subway-5 dataset圖2 Subway-5數(shù)據(jù)集圖像示例
在數(shù)據(jù)量有限的情況下,可能存在偏斜類的問題,即訓練網(wǎng)絡模型時不同樣本的數(shù)目相差很大,最終對網(wǎng)絡模型的泛化能力產(chǎn)生影響。在本數(shù)據(jù)集中表現(xiàn)為正常情況與鋼軌扣件螺絲緊固情況類別的樣本數(shù)遠多于其余異常情況的樣本數(shù),如果不進行處理,那么訓練后的網(wǎng)絡模型即使將所有圖像都判別為以上2類也能有較高的準確率,所以本文去除Normal、Fasten文件夾中差異不明顯的圖像。最終選定的每類圖像的數(shù)目都為100幅,Subway-5數(shù)據(jù)集共有5類總計500幅圖像。
數(shù)據(jù)集中的圖像在用于訓練和預測之前還需要對其進行預處理。本文主要采用以下3種預處理方法:
(1)圖像尺寸的調(diào)整:將數(shù)據(jù)集中待輸入網(wǎng)絡模型的圖像統(tǒng)一調(diào)整為320×320的尺寸,便于網(wǎng)絡模型的訓練和測試。
(2)數(shù)據(jù)的歸一化處理:圖像的像素為[0,255],采用對所有像素值除以255的方法將圖像的原始像素值縮放到[0,1],加快網(wǎng)絡模型使用梯度下降法求得最優(yōu)解的速度。
(3)數(shù)據(jù)增強(Data Augmentation)[16]處理:本文在原始Subway-5數(shù)據(jù)集的基礎上對圖像進行剪切、縮放、隨機旋轉(zhuǎn)、隨機偏移等處理。數(shù)據(jù)增強是一種常用的技術,有利于網(wǎng)絡模型在小數(shù)據(jù)集上的訓練,能夠加速擬合或者充當正規(guī)化項,從而減少過擬合并增強網(wǎng)絡模型的泛化能力。
預處理方法(1)和(2)在網(wǎng)絡模型的訓練和預測階段都需要實行,而預處理方法(3)只在訓練時使用,預測時不使用。
利用MobileNet_v1網(wǎng)絡模型中使用的深度可分離卷積對inception結構進行改進,改進后的結構稱為Subway_inception_v1結構,如圖3所示。在inception結構的基礎上使用卷積窗口大小為3×3的深度卷積 (Depthwise Conv)替換3×3標準卷積并在之后增加1×1標準卷積,而且inception結構中3×3卷積之前的1×1卷積操作具有降維和通道間特征融合的作用,在進行深度卷積操作之前就能夠融合不同層間的特征信息,更好地緩解了深度可分離卷積帶來的層間信息流通不暢的問題。
Figure 3 Subway_inception_v1 structure圖3 Subway_inception_v1結構圖
考慮到MobileNet_v2網(wǎng)絡模型在 MobileNet_v1網(wǎng)絡模型基礎上做出的改進:在基本構建塊中引入ResNet的skip connection跳躍連接結構,本文對Subway_inception_v1結構進行改進提出了Subway_inception_v2結構,如圖4所示。Subway_inception_v2結構在深度可分離卷積的中間2個通路分支中引入跳躍連接。這種改進只增加了2個跳躍連接少量的相加運算,對總體結構的計算量無顯著影響,卻能夠保留更多的之前層提取到的特征信息。
Figure 4 Subway_inception_v2 structure diagram圖4 Subway_inception_v2結構圖
Figure 5 SubwayNet model圖5 SubwayNet模型
本文使用提出的2種Subway_inception結構分別設計了2種對應的SubwayNet網(wǎng)絡。如果直接使用較深的網(wǎng)絡結構會出現(xiàn)梯度消失的問題,而層數(shù)太少則會導致分類準確率較低。SubwayNet_v1網(wǎng)絡模型的核心是Subway_inception_v1結構,因此需要通過對比實驗來確定其數(shù)量。對于卷積神經(jīng)網(wǎng)絡模型來說,通常層數(shù)越深,卷積核的數(shù)目越多,SubwayNet_v1網(wǎng)絡模型也是如此,增加的每個Subway_inception_v1結構都有比上一個結構更多的卷積核個數(shù)。具有不同Subway_inception_v1結構數(shù)量的網(wǎng)絡模型在Subway-5數(shù)據(jù)集上的分類準確率如表1所示。從表1中可以看出:當Subway_inception_v1結構數(shù)量為2,3時,準確率較低;當Subway_inception_v1結構數(shù)量為4時,準確率相比之前有顯著提升,達到了94%;當Subway_inception_v1結構數(shù)量為5時,準確率相比Subway_inception_v1結構數(shù)量為4時提升了1%,但是參數(shù)量是之前的2.5倍。在準確率相近時需要對比模型的計算速度,在本文的神經(jīng)網(wǎng)絡模型中,Subway_inception_v1結構數(shù)量越少就意味著參數(shù)量越少,計算速度就越快,模型的復雜度越低。因此,出于對模型準確率和計算速度的綜合考量,本文所構建的SubwayNet_v1網(wǎng)絡模型具有4個Subway_inception_v1結構,如圖5所示。
Table 1 Comparison of the number of different subway_inception_v1 structure表1 不同Subway_inception_v1結構數(shù)量的效果對比
由于Subway_inception_v2結構只是在Subway_inception_v1結構的基礎上進行了部分改進,SubwayNet_v2與 SubwayNet_v1網(wǎng)絡模型的結構完全相同,只是將所有Subway_inception_v1結構替換為Subway_inception_v2結構。
圖5為本文提出的SubwayNet網(wǎng)絡模型結構。輸入是尺寸為320×320×3的圖像,首先經(jīng)過卷積窗口尺寸為7×7、步長為2的標準卷積(conv)操作進行初步的特征提??;然后通過窗口尺寸為3×3、步長為2的最大池化(Max Pooling)操作來減少數(shù)據(jù)量,保留有效特征;之后將得到的特征圖按順序依次輸入到4個Subway_inception結構中進行多尺度的特征提取與多通道的特征融合;在全連接層(FC)之前添加了全局平均池化(Global Average Pooling)[17]操作AvgPooling,加入全局平均池化相比于直接使用全連接層,可在減少網(wǎng)絡參數(shù)的同時降低過擬合的幾率;最后經(jīng)由Softmax分類器得到相關類別概率的輸出。
為了使網(wǎng)絡模型檢測結果的顯示更加直觀,方便人機交互,本文使用Pycharm軟件中的Qt Designer工具制作了相應的圖形用戶界面。最終生成的圖形用戶界面包含:界面中間的視頻顯示區(qū)域,用于顯示預測結果和可信度的Detect_Result窗口。open_camera為打開視頻按鈕,點擊后系統(tǒng)開始加載保存的網(wǎng)絡模型和待分析的地鐵隧道巡檢視頻,加載完成后開始實時分析。close_camera為關閉視頻按鈕,點擊后系統(tǒng)停止視頻的播放與分析。
原始的網(wǎng)絡模型只能提供分類結果的顯示,而在檢測到異常狀況時聲音報警提示也十分重要。所以本文使用Python的第三方庫pygame為系統(tǒng)添加了發(fā)現(xiàn)異常狀況時聲音報警的功能。當檢測到視頻中的圖像類別為軌道內(nèi)存在異物、隧道壁滲漏水、鋼軌扣件螺絲松動時,分別播放3種不同的報警聲音,便于提醒和區(qū)分。
由于所有的代碼都使用Python語言編寫,在運行時就需要通過命令行進行操作,這樣會降低地鐵隧道巡檢視頻分析系統(tǒng)應用的便利性。所以,本文使用Python的第三方庫pyinstaller將所需文件打包生成Detector.exe可執(zhí)行程序,便于其在電腦端移植使用。使用鼠標雙擊打開程序就會出現(xiàn)圖形用戶界面,點擊open_camera按鈕即可對視頻進行分析,相比通過命令行進行操作,操作更為便捷和易用。
實驗是在Ubuntu16.04版本的 Amax Sever 環(huán)境中進行的,Amax Sever包括2塊Intel Xeon E5-2620V4 CPU、4塊NVIDIA TESLA-K80 GPU。本文使用Keras深度學習框架設計網(wǎng)絡模型。Keras使用Tensorflow和theano作為后端的高級封裝庫,相當于在二者基礎上構建的高級API,雖然靈活性有所降低但是易用性強,可以很方便地對網(wǎng)絡模型進行修改。本文使用其中的Tensorflow作為后端。網(wǎng)絡模型的訓練使用AdamOptimizer,它是一種自適應學習率的優(yōu)化算法,能夠自動調(diào)節(jié)學習率以加速網(wǎng)絡收斂。
為了將SubwayNet與其它輕量化網(wǎng)絡模型比較,本文根據(jù)原始論文復現(xiàn)了SqueezeNet、MobileNet_v1、MobileNet_v2、ShuffleNet 4種輕量化網(wǎng)絡模型,并使用Subway-5數(shù)據(jù)集作為輸入進行對比實驗,輸入圖像尺寸均為320×320×3。
網(wǎng)絡模型參數(shù)量與分類準確率如表2所示,從表2中可以看出:SubwayNet_v1在Subway-5數(shù)據(jù)集上的準確率能夠達到94%;SubwayNet_v2 在SubwayNet_v1的基礎上將準確率提升了2%,達到96%,而參數(shù)量保持不變;剩余4種輕量化網(wǎng)絡模型中MobileNet_v2的準確率較高但也只達到了90%,而參數(shù)量卻是SubwayNet_v2的8.4倍,SqueezeNet的參數(shù)量與SubwayNet_v2的參數(shù)量數(shù)量級相同,但是準確率只能達到80%。
Table 2 Different network models classification accuracy and parameter quantity表2 不同網(wǎng)絡模型分類準確率與參數(shù)量
網(wǎng)絡模型大小與處理單幅320×320大小的地鐵隧道圖像的速度的關系如表3所示,測試分別在單塊Intel Xeon E5-2620V4 CPU下和單塊NVIDIA TESLA-K80 GPU下進行,其中,model_size表示將模型保存為.h5文件所占用的內(nèi)存大小。處理時間為多幅圖像的處理時間求平均并保留小數(shù)點后4位,幀速率將計算結果向下取整。根據(jù)視覺暫留原理,視頻的圖像變化速度需要大于24 fps畫面才能流暢平滑。從表3中可以看出,在本文的實驗條件下:各種網(wǎng)絡模型中SubwayNet_v1網(wǎng)絡模型所占用的內(nèi)存最少,僅為3.6 MB,處理速度也最快,在CPU上能達到25 fps、在GPU上能達到52 fps;SubwayNet_v2由于添加了skip connection,計算量相比SubwayNet_v1略微增加,在CPU、GPU上的處理時間也略微增加,但網(wǎng)絡模型大小以及幀速率保持不變;剩余4種輕量化網(wǎng)絡模型中,MobileNet_v1網(wǎng)絡模型所占用的內(nèi)存最多,為37.3 MB,是SubwayNet_v1網(wǎng)絡模型的10倍,處理速度也最慢,在CPU上只能達到15 fps,不滿足視覺連續(xù)性的要求。
為了更好地評估2種SubwayNet對Subway-5數(shù)據(jù)集中5類圖像的分類效果,本文計算了2種網(wǎng)絡模型的準確率(Precision)、召回率(Recall)和F1值(F1_score)。
從表4中可以看出,SubwayNet_v1網(wǎng)絡模型能夠精準地檢測鋼軌扣件螺絲緊固、鋼軌扣件螺絲松動、隧道壁滲漏水的情況,但是存在軌道內(nèi)異物漏檢和正常狀態(tài)誤報為異常的情況。其中正常類的F1-score僅為0.88,異物類的F1-score僅為0.84。
Table 3 Network model size and processing speed表3 網(wǎng)絡模型大小與處理速度
Table 4 Classification effect of SubwayNet_v1表4 SubwayNet_v1的分類效果
從表5中可以看出,相比于SubwayNet_v1網(wǎng)絡模型,SubwayNet_v2網(wǎng)絡模型雖然在鋼軌扣件螺絲緊固、鋼軌扣件螺絲松動2種情況中的識別準確率有所降低,但是整體5類情況的F1-score很高(最低為0.95)。這說明SubwayNet_v2網(wǎng)絡模型在Subway-5數(shù)據(jù)集上的綜合性能優(yōu)于SubwayNet_v1網(wǎng)絡模型的,在實際應用中的可靠性更高。
Table 5 Classification effect of SubwayNet_v2表5 SubwayNet_v2的分類效果
為了進一步分析綜合性能較高的SubwayNet_v2網(wǎng)絡模型提取到的地鐵巡檢圖像的特征,本文將Subway-5數(shù)據(jù)集中5幅不同類別的測試圖像分別輸入到訓練后保存的網(wǎng)絡模型中,并對網(wǎng)絡模型中部分層得到的特征圖進行了可視化處理,如圖6所示。從圖6中可以看出:測試圖像在經(jīng)過第1次Conv_7×7卷積操作后過濾了大量無關信息并保留了圖像的紋理等主要特征,此時特征圖的尺寸變?yōu)?60×160;在經(jīng)過第1個Subway_inception_v2結構后特征圖的抽象程度進一步提升,此時特征圖的尺寸變?yōu)?0×80;在經(jīng)過第4個Subway_inception_v2結構后特征圖的抽象程度極高,已無法進行視覺上的直觀分析,此時特征圖的尺寸變?yōu)?0×20。而且從Object類中還能夠看出光線對于網(wǎng)絡模型的特征提取效果影響極大,網(wǎng)絡模型提取到了隧道壁上LED燈的特征以及地面上手電光線的特征,這會減弱軌道內(nèi)異物特征對于最終分類結果的影響。
Figure 6 Feature map visualization圖6 特征圖可視化
為了更好地分析SubwayNet_v2網(wǎng)絡模型的圖像分類依據(jù),本文還可視化了類激活圖CAM(Class Activation Map)并疊加在輸入圖像上生成類激活熱圖(Heat Map)。類激活圖是與特定輸出類別關聯(lián)分數(shù)的二維網(wǎng)格,其針對于輸入圖像中的每個像素位置進行計算,并指示每個像素位置對于所判定結果的類的重要程度,如圖7所示。從圖7中可以看出:SubwayNet_v2網(wǎng)絡模型對正常情況圖像的判別依據(jù)是軌道的中間部分以及側邊隧道壁的部分;對隧道壁滲漏水情況的判別依據(jù)是側邊隧道壁滲漏水的部分以及軌道的中間部分;對于鋼軌扣件螺絲緊固以及鋼軌扣件螺絲松動情況的判別依據(jù)是鋼軌扣件的部分。以上情況基本符合人工巡檢的檢查位置,但是對于軌道內(nèi)存在異物的情況,系統(tǒng)卻把隧道壁上的LED燈的部分當做判別依據(jù),說明網(wǎng)絡沒有正確地學習到相應的異物特征。這與Subway-5數(shù)據(jù)集中軌道內(nèi)存在異物類別的圖像數(shù)據(jù)采集的位置有關,這段隧道內(nèi)的亮度較低,燈光的亮度成為了主要影響因子。根據(jù)以往的深度學習研究經(jīng)驗,采集更多不同隧道環(huán)境下的軌道內(nèi)異物的圖像數(shù)據(jù),增加同類數(shù)據(jù)的差異性可能會使效果得到改善。
Figure 7 Class activation map and heat map visualization圖7 類激活圖和熱度圖可視化
由于最終地鐵隧道巡檢視頻分析系統(tǒng)的結果是以Python文件打包后得到的應用軟件中視頻的形式呈現(xiàn),因此本文截取了一段測試視頻中的5種不同情況進行說明,如圖8所示(箭頭為后期標注)。從5種情況的分析結果中能夠看出,分析系統(tǒng)具有較高的準確率,并且在情況2、情況3和情況5中有警報聲,與設置相符。
Figure 8 Analysis system operation results圖8 分析系統(tǒng)運行結果
本文利用MobileNet中的深度可分離卷積與ResNet中的跳躍連接來改進GoogleNet的inception結構,提出了2種Subway_inception結構,建立了2種SubwayNet卷積神經(jīng)網(wǎng)絡模型,并構建了完整的地鐵隧道巡檢視頻分析系統(tǒng)。通過不同輕量化網(wǎng)絡模型在Subway-5數(shù)據(jù)集上的效果對比檢驗了2種SubwayNet的性能,還通過可視化特征圖和類激活圖分析了SubwayNet_v2網(wǎng)絡模型對于圖像特征的提取效果。在文中的實驗條件下,SubwayNet_v2網(wǎng)絡模型的準確率能夠達到96%,圖像處理速度能夠達到52 fps,滿足視頻實時、準確處理分析的要求。本文為地鐵隧道日常巡檢,保障地鐵的安全運營提供了一種新方法。對算法進行改進,在分類的基礎上完成異常狀態(tài)位置的檢測是下一步的改進方向。