劉家輝 胡廣朋 王申宇 劉 暢 覃 源 程 科
(1.江蘇科技大學計算機學院 鎮江 212003)(2.中鐵隧道集團三處有限公司 深圳 518051)
高速鐵路的發展帶來了巨大的便利,鐵路事業高速發展的同時,鐵路安全問題也值得關注。國內現有的鐵路安全,主要是依靠視頻監控和人工巡檢相結合的方法。當有工作人員在鐵路軌道上作業時,首先由當地調度員提供安全作業時間;其次分配觀察員負責監控來往火車,進行預警;同時,在重要路口安裝監控攝像頭,由人工監控等多方面確保鐵路作業人員的安全。由于中國的鐵路軌道錯綜復雜,分布廣泛,列車具有較高的行駛速度,同時工作人員存在缺乏專業素養、操作不當,疏忽大意等現象,鐵路作業發生安全事故的情況仍然時有發生,常常有不知情的非工作人員缺乏安全意識,忽視警戒標識,誤闖誤入鐵路重地,極易發生重大事故。而我國的鐵路網規模較大,很難通過人工檢測的方法判斷所有線路是否有行人非法闖入和逗留。因此,為提高鐵路安全性、可靠性,同時節省人力成本,軌道視頻監控系統迫切需要全面的技術升級和大規模應用,及時判斷檢測警戒區域內是否有行人并判斷行人是否非工作人員,并及時采取相應措施。
目前視頻監控系統基本采用傳統的目標檢測算法[1],如Haar特征、HOG特征、SVM算法等。近年來,隨著深度學習的興起,卷積神經網絡因其模擬人腦視覺處理機制,具有自動學習樣本特征的特點,在目標檢測,圖像分類等方面取得較好應用。卷積神將網絡中CNN(Convolutional Neural Network)算法表現優異[2],近年來已開展大量相關研究。Girshick等提出了區域卷積神經網絡R-CNN[3],在VOC2012數據集上,將目標檢測的平均準確率MAP提升了30%,之后又提出了Fast-RCNN[4]性能進一步提高;而Joseph Redmon提出了YOLO[5]、YOLO9000[6]模型,能夠對目標進行實時性檢測。
然而,中國幅員遼闊,地勢多變,鐵路沿線錯綜復雜,往往包含山川、河流、森林、城市等多種場景。這些場景的底層特征如紋理、顏色等都存在較大差異,給任務帶來了巨大的挑戰。此外,業界尚不存在公開的數據集用于實驗,如果采集的數據不均衡,對訓練過程會帶來很大的影響[7],而如果數據采集的來源場景單一,缺乏多樣性,直接用原始圖片訓練會導致最終結果的泛化能力不足,影響算法的精確度。
針對上述任務以及難點,本文提出了一種新的細粒度行人檢測方法,該方法利用該領域大規模數據集,以YOLOV2高性能檢測算法為基礎,引入混合注意力機制,使得算法在特定的場景內有著優異的表現。

圖1 基于混合注意力機制深層卷積神經網絡結構
網絡結構如圖1所示,提出的網絡結構包括三個模塊:1)數據增強模塊,采用類別平衡采樣+數據增強的方法對不平衡的數據集進行擴充,獲得適合深度神經網絡的平衡數據集;2)注意力模塊,提出空間注意力模型。空間注意力解決卷積操作的全局共享造成的區域不敏感問題,高效的學習區域影響權重因子;3)目標檢測模塊,采用 keras[8~10]深度學習框架實現YOLOv2算法,對有人的圖像類別進行了行人檢測實驗。YOLO的訓練樣本無需單獨將每類樣本從圖像中裁剪出,而可以直接將整張圖像用于訓練[11]。同時,YOLO的樣本標簽不僅注釋樣本類別信息還注釋樣本在圖像中的位置信息。
YOLO屬于CNN,由卷積層、池化層和全連接層組成。與CNN不同的是,YOLO的輸出層不再是Softmax函數,而是張量(Tensor)。YOLO在處理檢測問題時,其實是轉化成了回歸問題解決。YOLO本身是基于一個單獨的end-to-end網絡,完成從原始圖像的輸入到物體位置和類別的輸出,能夠做到實時的物體檢測,大約能達到40幀每秒。其經典框架如圖2所示。

圖2 典型YOLOv2框架
使用YOLO來檢測物體,其流程是非常簡單明了的:
1)將圖像resize到448*448作為神經網絡的輸入;
2)運行神經網絡,得到一些Bounding box坐標、box中包含物體的置信度和class probabilities;
3)進行非極大值抑制[12],篩選Boxes。
采用卷積網絡的pooling或者是stride將圖片劃分為S×S的網格。YOLO在預測目標時,只關注預測框的中心點,因此,不用計算所有預測框的損失函數。每一個網格中預測B個Bounding box和confidence score。得到一個物體的中心信息需要保證卷積核把物體的周邊覆蓋住,為此整個網絡使用ResNet、MobileNet或其他網絡結構去學習得到固定大小的卷積核。通過pooling或者步長大于1的卷積層就相當于對圖片進行了一次切割,用小塊去代替大塊的信息。例如,當我們得到了一幅長寬為7,每個格子學出了一個1024維特征的圖像,就記為7×7×1024,將它通過卷積窗口大小為1×1的卷積核進行全鏈接變換輸出變換矩陣為[S,S,4+1+k],其中前兩個維度代表了格子的索引號,最后一個維度中4為Bounding box坐標,1為置信度,最后k位代表物體類別的概率分布。
如果每一個網格中有物體存在,那么confidence score 為 Pr(object)*IOUPr(object)*IOU-predtruth,如果不存在物體,則為0。物體的位置用(x,y,w,h)(x,y,w,h)表示,(x,y)(x,y)表示物體的中心位置。每個網格還會預測C類的可能性Pr(Classi|Object)Pr(Classi|Object)為

通過上式可以得到每類的confidence score。在圖2中,VOC2007模型中,S=7,B=2,總共有20個標簽。所以最終產生7*7*307*7*30的tensor。
在測試過程中,計算檢測邊界框和參考標準框的IOU值,以此判斷結果中的真正例、假正例和假反例。當 IOU[12]≥ 0.5[13],為真正例;當 IOU<0.5時,為假正例。當IOU=0,則為假反例。通過式(2)和式(3),可以得出實驗結果的查準率和查全:

式中,TP、FP和FN分別為真正例、假正例和假反例的數量。
由于YOLO需要將圖片分割成許多小網格,對于每個網格來說,當它們包含有多個目標時時算法就很難將全部的對象檢測出來;此外,由于鐵路視野廣闊,常常需要檢測較遠處目標較小的行人,這種情況下YOLO算法的表現也不盡如人意;原始圖片在預處理過程中需要轉化成低分辨率圖片,在經過YOLO的層層卷積之后往往也會損失小目標特征。
考慮到傳統YOLO算法的不足,在本文的模型中加入了空間注意力機制對圖片進行一次分類處理,使用圖像分類主網絡、空間注意力模型聯合建模,進行端到端的鐵路行人場景分類。
對于人類而言,圖3所示的圖像中僅有部分區域所對應的視覺內容對最終的分類結果起主導作用。若將圖像均勻分割為16個網格,則區域3、6、7、11的特征在最終的場景分類計算時應具有較大權重。但是,卷積神經網絡的特征會全局共享,神經網絡中的任意一個濾波核對圖片的所有部分具有相同的權重參數,因此,若可以自適應的根據輸入圖片的視覺內容的不同區域賦予不同的權重,將會進一步提高場景分類的準確率。

圖3 圖像不同空間區域對場景分類影響示意圖
本文提出了空間注意力模型高效的學習區域影響權重因子解決了不同部分占有不同權重的問題。模型框架如圖4所示。網絡的特征輸出為Y,w'*h'*c'分別為矩陣所表示的特征圖的寬、高和通道數,則空間注意力網絡輸出H的維度就可以用w'*h'表示,最終具有空間注意力的輸出語義特征Y''的計算公式為

⊙表示按元素相乘,Y()i表示第i個通道的特征圖。式(4)的意義是網絡特征圖的每一個位置都與空間注意力模型輸出的對應影響因子相乘。
采用空間注意力的模型可以有效地對遠距離小體積的目標判斷,這種方式有效的原因在于輸出特征圖的每一個元素都對應原始圖片的一塊區域,這塊區域也被稱為感受域,因此對于網絡高層特征圖的每一個位置施加不同的權重即等價于對原始圖片的不同區域施加不同的影響因子。

圖4 空間注意力模型
目前尚不存在公開的大規模數據集,本文通過多個鐵路監控攝像頭獲取圖片3154張,然后進行人工標注。為進一步增加訓練數據的多樣性,采用數據增強,首先將短邊縮放為224,長邊同比例縮放;隨后從縮放之后的圖片中隨機的裁剪224*244大小的區域;然后對裁剪之后的圖像進行隨機水平翻轉、隨機顏色變化、隨機仿射變換操作增加訓練集圖片的多樣性。
本文總數據集為圖片3154張,標記數據為圖片410張,訓練數據為圖片250張,測試數據為圖片160張,使用了keras深度學習框架,訓練時優化算法采用Adam[14]自適應優化算法。并且默認驗證集中的損失函數值趨于最小值時結束訓練。首先通過分割將圖像變為224*224*3的彩色圖像作為注意力模塊的網絡輸入。近來提出的輕量級網絡雖然占用了更少的內存空間增加了運行速率,但是像MobileNet[15],ShuffleNet[16]這些網絡均采用了分離卷積的操作。這導致模型在CPU上的運行速度提升不如GPU效果明顯,因此,我們引入了遷移學習訓練模型,增加網絡的收斂速度。將最后一層神經元的個數設置為1000,整個網絡在ImageNet數據集上進行訓練。訓練完成后的模型作為模塊所有曾的初始化參數在本文構建的鐵路行人數據集上進行二分類訓練。得到輸出為代表有人和無人概率的兩個神經元。
本文檢測模塊網絡以YOLOv2網絡為原型,訓練和檢測均是在一個單獨網絡中進行。其采用RPN(Regions Proposal Network)的思想,去掉全連接層,采用卷積層來預測目標框的偏移和置信度。使用DurkNET-19進行訓練網絡,DurkNET-19具有與YOLVO2網絡相同的前19層(直到Conv18_1024),之后加上了 1024個 1×1卷積,使用DurkNET-19網絡訓練可以節省訓練時間并且提高精確度。得到的訓練參數進行初始化網絡,應用到自建的數據集中,訓練60個epochs,batch_size設為16,learning_rate為1e-4,Momentum設為0.9,Decay為0.0005。在訓練過程中,采用小批量梯度下降法,當損失函數趨于極小值時認為訓練完成,損失函數如圖5所示。采用非極大值抑制算法消除多余的檢測框,篩選最佳的Boxes。值得注意的是,anchor box的個數及各個anchor box的參數都是固定值,不一定符合自建數據集的目標規格,因此,我們在人工標注的數據集中采用了k-means算法對檢測框聚類,重新獲得了5類全新的anchor box。

圖5 損失函數圖像

表1 實驗結果對比

圖6 空間注意力模型可視化結果
從試驗中可以看出,傳統的FasterRCNN算法雖然有著相當高的平均檢測精度,但是每秒檢測幀數的表現相比于其他算法有著較大的劣勢;相比于傳統的YOLOv2算法,加入attention之后每秒檢測幀數下降了30,但是平均檢測精度由原來的75.8%上升到79.9%,提高了4.1%個百分點,attention的仿真圖如圖6所示。本文的主網絡模型僅有60M左右,而在具體場景中,“無人”類別占據絕大多數,因此加入attention之后,雖然運行速率有所下降,但是卻可以快速過濾掉大量無人場景的數據,從而在一定程度上彌補了多網絡訓練消耗時間的劣勢;而加入數據增強技術以后,每秒檢測幀數又有了略微的提高,而平均檢測精度在原有的基礎上又提高了2.9個百分點,高達82.8%,超過了FasterRCNN的平均檢測精度。
我們為了實現鐵路軌道行人檢測任務,構建了一定規模的數據集,并采用了數據增強技術以提升算法表現;采用YOLOv2算法模型,并且采用了k-means算法重新聚類了anchor box,采用了非極大值抑制(NMS)篩選候選框;由于項目工程實際情況,圖片檢測中“無人”占有相當大的比重,因此又引入了空間注意力機制,先對數據集進行一次分類操作,雖然算法速率上有所下降,但是增加了算法精度以及可靠性,而速率的衰減也在可以接受的范圍之內。最后采用傳統的SVM分類器對檢測到的行人進行歸類,判斷是否為工作人員。這樣,就將場景分類,目標檢測,檢測結果分類統一到一個整體的深度學習框架中,實現了對鐵路軌道行人的細粒度檢測。未來,我將探索如何進一步在保證檢測精度的基礎上提升網絡訓練速度、檢測精度,并且網絡在識別遠距離、非常規形態特殊姿勢的行人目標時表現仍然有所欠缺,這也是未來的研究方向和重點難點。