劉力,茍軍年
(蘭州交通大學自動化與電氣工程學院,甘肅 蘭州 730070)
鐵路運輸因其運量大、成本低的特點,已經(jīng)成為人民出行和貨物運輸首選的交通方式之一,隨著鐵路線路里程的增加和列車行駛速度的提高,鐵路行業(yè)對列車行駛安全問題的要求也逐漸提高。侵限異物作為列車安全行駛時的潛在威脅,對其檢測與識別一直是研究人員所研究的重點,目前主要有非接觸式檢測和接觸式檢測兩大方法[1]。電網(wǎng)檢測法作為非接觸式檢測方法的代表,是通過判斷電網(wǎng)中電流的有無來確定是否存在異物;光纖光柵異物檢測系統(tǒng)[2]則對由自然災害造成的侵限異物有不錯的檢測效果。雖然接觸式檢測方法技術成熟,但是由于前期工程量大,安裝麻煩,并不適合大量投入使用,還有當檢測到異物時如果沒有進行及時的人工處置,將會對列車的行駛效率造成影響?;诶走_和圖像的非接觸式檢測方法近年來發(fā)展較快,郭雙全等[3]提出了一種基于雷達數(shù)據(jù)的檢測方法,但是該方法無法確定被檢測物體的種類,有一定局限性;金炳瑞[4]則提出一種基于數(shù)字圖像處理的異物檢測方法,使用不同的方法檢測不同的異物,且只考慮了光照情況良好的場景,局限性較大;史紅梅等[5]通過機器視覺的方法將異物檢測與分類相結合,但檢測的實時性還有待提升。由于視頻圖像信息中包含大量的語義信息,并且通過對視頻圖像信息的處理,可以獲得異物的具體類別和形狀信息,基于視頻圖像的異物檢測將會是異物侵限檢測領域主要的發(fā)展方向。2012 年,AlexNet[6]網(wǎng)絡取得了ImageNet 大賽冠軍后,深度卷積神經(jīng)網(wǎng)絡憑借自動學習圖像特征的特點,在計算機視覺任務中取得了突破性的研究進展,并且在目標檢測領域取得了豐碩的應用成果,例如工件缺陷檢測[7?8]等任務。目標檢測主要研究內(nèi)容是找出圖像中特定的物體,能夠準確地進行分類并給出目標的邊界框。目標檢測作為計算機視覺的基本研究內(nèi)容之一[9],隨著深度學習理論的發(fā)展,檢測準確性和實時性都得到了顯著提升。目前主流的檢測網(wǎng)絡主要分為單階段和雙階段網(wǎng)絡2種,雙階段網(wǎng)絡因?qū)⒍ㄎ缓头诸惙珠_處理,所以具有較高的檢測精度;而單階段網(wǎng)絡則將兩者統(tǒng)一起來,在檢測速度上取得了巨大突破。精度的提升往往會帶來速度的損失,反之則亦然,平衡好這2個指標也是當下所面臨的現(xiàn)實問題[10],YOLO v4[11]作為目前主流網(wǎng)絡之一,在檢測精度和檢測速度上表現(xiàn)優(yōu)良。本文提出一種基于單階段檢測網(wǎng)絡YOLO v4的侵限異物檢測模型,通過對聚類中心選取算法的改進來獲得更具代表性的anchor 尺寸,引入注意力機制來進一步提高檢測精度。經(jīng)過測試,本文所提方法對侵限異物的檢測精度和檢測速度都取得了不錯的效果,具有一定的應用價值。
YOLO v4 算法作為典型的端到端網(wǎng)絡,其結構相較于Faster R-CNN[12]來說更加簡潔直觀。它使用預先定義的anchor 來取代Faster R-CNN 中的RPN 網(wǎng)絡生成anchor 的方法,網(wǎng)絡的檢測速度取得了顯著的提升。
YOLO v4 繼承了YOLO v3[13]的主干結構,在特征提取結構上,不同于YOLO v3 中DarkNet53里面的殘差塊的連續(xù)堆疊,融合了CSPNet 結構,提出了CSPDarkNet53,將堆疊的殘差塊拆成了2個部分,主干繼續(xù)進行原來的殘差塊的堆疊,另一部分則像一個殘差邊一樣,經(jīng)過少量處理后直接連接到最后,圖1(a)為其中一個使用了CSP結構的堆疊殘差塊,cat 表示在通道維度上進行堆疊的操作;在特征融合的結構中,使用SPP(Spatial Pyr‐amid Pooling)來增加感受野,如圖1(b)所示,分別用5個不同尺寸的最大池化進行處理,最大池化的池化核分別為13×13,9×9,5×5 和1×1,用PANet取代了YOLO v3 中的FPN 結構,能夠更好地對特征進行融合,先對有效特征由高到低進行融合,再由低到高融合一遍;輸出則和YOLO v3 一致,在輸入圖片尺寸為416×416 時,輸出尺度分別為13×13,26×26和52×52。
圖1 CSP和SPP結構Fig.1 Sructure of CSP and SPP
對于其中一個anchor,YOLO v4 的損失函數(shù)為:
該函數(shù)主要由3部分組成,分別是邊界框回歸損失Lreg,置信度損失Lconf和分類損失Lcls。對于邊界框回歸損失,YOLO v4 用CIOU 函數(shù)取代了傳統(tǒng)MSE 函數(shù),能夠使預測框(Bounding box)更快地向真實框(Ground truth)逼近;置信度損失函數(shù)為交叉熵(Cross entropy)函數(shù),不論該anchor 產(chǎn)生的預測框是否包含物體,都要計算置信度損失;分類損失函數(shù)同樣是交叉熵函數(shù),當該anchor 負責真實的物體預測時,才會對該anchor 產(chǎn)生的預測框計算分類損失。
本文主要是檢測和定位侵入列車行駛區(qū)域的障礙物,而YOLO v4 是根據(jù)公開的數(shù)據(jù)集來進行設計的,網(wǎng)絡的模型結構與anchor 的取值不一定適合本文所研究的對象。通過分析本文的檢測數(shù)據(jù),對訓練集的真實框進行聚類以獲得符合目標尺寸的anchor,并引入注意力機制來進一步提升侵限異物檢測的準確率。
Bounding box 的預測以anchor為基礎,其質(zhì)量的好壞直接影響最終的檢測結果。通用的anchor都是在大型數(shù)據(jù)集上經(jīng)過聚類得到的,對于特定的檢測任務,使用默認的anchor 尺寸,不僅會影響檢測的準確度,而且在訓練過程中容易出現(xiàn)模型難以收斂的情況。
同YOLO v3 一樣,YOLO v4 中默認的anchor也是用K-means算法產(chǎn)生的。對于給定的數(shù)據(jù)和劃分類別數(shù),K-means的主要思想就是使屬于同一類的數(shù)據(jù)到本類聚類中心的距離盡可能小,而不同類的數(shù)據(jù)到對方聚類中心的距離盡可能大,從而經(jīng)過迭代確定各類的中心。
最終聚類結果的好壞與初始中心點的選擇有很大關系,K-means采用完全隨機的方法在所有數(shù)據(jù)中心選擇出初始的聚類中心。由于隨機性太大,若產(chǎn)生的初始聚類中心不太理想,可能會使最后的聚類結果陷入局部最優(yōu)。為了改善隨機選取聚類中心所帶來的不利影響,本文提出了一種新的聚類中心選取方法,使得每個聚類中心盡可能分散。 對于包含m個樣本的數(shù)據(jù)集D={x1,x2,x3,…,xm},其中每個樣本xi是一個n維特征向量,需要聚類的類別數(shù)為k,則具體計算流程如下:
1)從數(shù)據(jù)集D中隨機選取一個樣本xi作為一個聚類中心;
2) 計算目前確定的所有聚類中心到整個樣本點之間的最短歐式距離Dist(?,?),則距離最大的確定為下一個聚類中心;
3) 循環(huán)第2 步操作,直到選擇出k個聚類中心。
經(jīng)過對聚類中心選取方法的改進,在4k2_far數(shù)據(jù)上對本文所提聚類中心選取方法和K-means算法中的中心選取方法進行了對比,結果如圖2 所示,圖中五角星為選出的初始聚類中心點??梢钥闯觯瑘D2(a)中本文方法所選取的中心都平均分布于每一類當中,而圖2(b)中K-means 選取的中心點會因為數(shù)據(jù)中某幾類數(shù)據(jù)量差距懸殊,隨機初始化的聚類中心很難出現(xiàn)在數(shù)據(jù)量少的類別中。
圖2 聚類中心選取方法比較Fig.2 Comparison of cluster center selection methods
通過使用優(yōu)化了初始聚類中心選擇的K-means算法對訓練集中標注的物體真實框(Ground truth)進行聚類,得到了符合本文要求的anchor 尺寸,分別為(13,31),(22,72),(34,40),(45,130),(62,46),(87,143),(132,291),(220,162)和(327,340),所用數(shù)據(jù)圖片尺寸大都在500~800像素之間。
當網(wǎng)絡達到一定的深度后,相應的語義信息也會更具體,但也會存在一定的冗余的特征[14],選擇出對最終預測結果貢獻大的特征很有必要。受人類注意力機制的影響而提出的注意力模型廣泛應用于計算機視覺任務中,并取得了不錯的效果。
SE模塊[15](Squeeze-Excitation Module)作為目前應用廣泛的注意力模型之一,具有結構簡單、易于部署等優(yōu)點,其結構如圖3 所示。SE 模塊的主要功能是通過學習對輸入的特征賦予不同的權值,最終是對最后預測結果貢獻大的特征具有較大的權重。其中的操作過程可以分為對輸入特征的擠壓和激勵。對于尺寸為C*W*H的輸入特征,首先在通道(C)維度上對特征圖進行全局平均池化(Global Average Pooling,GAP),把輸入特征壓縮為1*1*C的一維特征;然后以壓縮后的特征作為輸入,經(jīng)過一個含有一個隱含層的全連接網(wǎng)絡學習不同通道上的權值大?。蛔詈髮W習到的權值與輸入特征相乘,得到激活后的特征。具體計算過程如式(2)所示:
圖3 SE模塊Fig.3 SE module
其中,X為輸入特征;GAP(?)表示全局平均池化操作;F(?,?)表示全連接操作,將sigmoid 函數(shù)作為輸出層的激活函數(shù),使學習到的權值分布在0-1之間,代表各個通道的重要程度;⊙表示采用廣播機制的乘法,學習到的權值與X中對應通道的所有特征點逐個相乘,最終得到激活后的特征X1。
在侵限異物的檢測任務中,有時因為光照變化、降雨等環(huán)境因素的影響,會使有些待檢測異物與背景相似度變高,加大了檢測難度。為了提高對這類物體的檢測精度,對YOLO v4 的結構進行了改變,將SENet加入到網(wǎng)絡里面。
改進后的YOLO v4 檢測網(wǎng)絡如圖4 所示,輸入圖像尺寸為(416,416,3),在第3 個和第4 個CSPResblock 和Conv59 層后面分別插入一個SENet,對特征圖賦予不同的權值,選出對檢測結果貢獻大的特征圖,以實現(xiàn)更精確的檢測。
圖4 改進后的網(wǎng)絡結構Fig.4 Structure of improved network
表1為本文進行實驗的主要硬件環(huán)境,軟件環(huán)境主要有ubuntu16.04, pytorch1.2, cuda10.0,opencv-python3.4.2等。
表1 實驗硬件環(huán)境Table 1 Hardware experiment environment
在實驗數(shù)據(jù)上,由于目前并沒有公開的鐵路侵限異物數(shù)據(jù)集,并且考慮到侵限異物的局限性,行人、汽車、自行車和動物(狗)這些也是在異物侵限事件中出現(xiàn)頻率最高的,所以選擇以行人、汽車、自行車和狗作為本文研究的典型異物來進行實驗。訓練集主要分為2部分,一部分來自公開的數(shù)據(jù)集(Pascal voc2007/2012)中與本文研究對象特征相近的數(shù)據(jù),另一部分來自課題組所收集整理的數(shù)據(jù)。測試集數(shù)據(jù)則是截取了列車行車記錄儀和鐵道上的監(jiān)控視頻中記錄的有侵限異物的圖片。訓練集共有4 000 張圖片,測試集有100 張圖片。其中來自Pascal voc2007 與2012 數(shù)據(jù)集中的各有1 500張,1 000張為自制數(shù)據(jù),為了降低因類別不均衡所帶來的性能損失,人為的挑選數(shù)據(jù)圖片使得各類別物體樣本數(shù)量保持相對均衡。測試集中的各個類別也保持相對均衡,平均有60 個物體實例。
輸入網(wǎng)絡的圖像尺寸為(416,416,3),總共訓練200 個epoch,batch size 為5,使用Adam(Adaptive Moment Estimation)算法[16]來進行參數(shù)的優(yōu)化,權重衰減系數(shù)設置為0.000 5,學習率在前100 個epoch 設為0.001,后100 個epoch 設為0.000 1 來使模型更好的收斂。在訓練過程中從訓練集里劃分400 張圖片作為驗證集數(shù)據(jù),訓練集和驗證集的loss 曲線如圖5 所示,可以看出最終訓練集的loss收斂到了0.7,驗證集loss則在7左右,檢測模型已經(jīng)收斂。
圖5 訓練集和驗證集的loss曲線Fig.5 Loss curve of training set and verification set
圖6為使用訓練好的檢測模型對不同的侵限異物進行檢測的結果。可以看出,本文方法對大部分的侵限異物具有不錯的檢測效果,能以較高的置信度準確地檢測所要檢測的物體,但是在第4幅圖中出現(xiàn)了將2 只狗檢測為1 只的情況。經(jīng)過進一步分析,圖中2 只狗的所占像素尺寸分別為28×61和58×58,在整個圖片中的占比不過3%,屬于小目標物體,而且小目標的檢測一直是目標檢測領域研究的重點與難點,這也是本文所提算法模型進一步優(yōu)化的方向。
圖6 對不同侵限異物的檢測結果Fig.6 Detection results of foreign bodies with different invasion limits
為了進一步研究本文所提方法在軌道侵限異物檢測方面的有效性,對比了本文所提方法和其他檢測方法,包括現(xiàn)有的研究成果和YOLO v4 算法。徐巖等[17]提出了一種基于Faster R-CNN的侵限異物檢測方法,具有較好的檢測效果。模型的對比實驗均是在同一個數(shù)據(jù)集上訓練及測試。
圖7 為暗光環(huán)境下3 種方法的檢測結果對比,共有3個待檢測物體實例。暗光環(huán)境下成像質(zhì)量普遍較差,圖像中含有一定的噪聲,且背光面幾乎為黑色,語義信息較弱,從圖中可以看出,遠處路邊的汽車幾乎只能看到輪廓。從檢測結果來看,本文所提方法與文獻[17]的方法都正確地檢測出了3個物體,而YOLO v4算法則未能檢測出遠處的汽車;從預測框的質(zhì)量來看,本文方法和文獻[17]方法的預測框質(zhì)量對檢測目標的包裹性相似,且質(zhì)量明顯高于YOLO v4 算法的預測框,圖7(c)中近處車輛的檢測框向右的偏移比較大,沒有完全框住目標,而中間人的檢測框縱向延伸較為明顯。
圖7 暗光環(huán)境下的檢測結果對比Fig.7 Comparison of detection results in dark light environment
圖8 為3 種方法在遮擋情況下的結果對比,右邊中間的人被遮擋面積超過80%,只有頭和肩膀露在外面。圖8(a)和圖8(c)都沒有檢測出被遮擋的人,只有采用本文方法的圖8(b)正確地檢測出了被遮擋的人,并且檢測框的質(zhì)量也比較高。
圖8 遮擋情況的檢測結果對比Fig.8 Comparison of detection results of occlusion
以上實驗結果證明,對K-means算法初始聚類中心選取方法的改進,使得最終聚類獲得的anchor更具代表性,通過網(wǎng)絡計算的檢測框也更加符合要求;而注意力機制的加入,提高了對弱特征的關注,網(wǎng)絡的檢測性能得到了進一步提升。相較于基礎的YOLO v4 算法,本文所提方法具有一定的優(yōu)越性。
平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP)是定量分析一個檢測模型性能好壞的常用指標。平均精度用來分析檢測模型在每個類別上的檢測性能,是評價檢測模型的直觀評價標準,而平均精度均值則反映了模型在所有類別上的綜合性能。
表2列舉了本文方法與文獻[17]方法和YOLO v4方法進行對比的結果,對比指標主要包括單個類別的平均精度、平均精度均值和視頻檢測幀率。分析表中數(shù)據(jù)可知,由于雙階段檢測網(wǎng)絡Faster RCNN的先天優(yōu)勢,文獻[17]在檢測精度上處于領先地位,平均精度為92.4%;通過對比采用了以YO‐LO v4 作為基礎檢測網(wǎng)絡的本文方法和YOLO v4網(wǎng)絡,本文方法在各個類別上的檢測精度都有明顯提升,在平均檢測精度上提高了5.1%,僅比文獻[17]方法低2.2%。對于視頻檢測幀率這一指標,本文方法和YOLO v4 算法表現(xiàn)出了極大的優(yōu)勢,都在50 fps 以上,大大超過了文獻[17]的14 fps,本文方法在視頻檢測的實時性上表現(xiàn)出了極大的優(yōu)越性。
表2 不同檢測方法間的性能對比Table 2 Performance comparison of different detection methods
綜上所述,本文所提出的基于YOLO v4 的檢測模型,雖然在檢測精度上不如文獻[17]的方法,但是相差很小,而且本文方法在檢測的實時性上領先于文獻[17]的方法,故本文方法有一定的實用性。
1) 將YOLOv4 算法應用于鐵道侵限異物檢測任務之中,對常見的侵限異物類別取得了90.2%的平均檢測精度均值和53 fps的檢測速度,并且可以同時檢測出不同種類的侵限異物。
2) 本文方法通過對聚類中心選取算法的改進來獲得更具代表性的anchor 尺寸,加入的注意力模塊進一步提高了檢測精度。
3)相較于以Faster R-CNN 為基礎的檢測網(wǎng)絡,本文方法在檢測精度接近的情況下,檢測速度有了極大的提升,實現(xiàn)了實時檢測。