董小偉 韓 悅* 張 正 曲洪斌 高國飛 陳明鈿 李 博
①(北方工業大學信息學院 北京 100144)
②(中國石油管道局工程有限公司國際事業部 北京 065000)
③(北京城建設計發展集團股份有限公司城市軌道交通綠色與安全建造技術國家工程實驗室 北京 100037)
近年來,公共安全已成為熱點問題被社會各界高度關注,城市的各個角落均安裝了較為密集的監控裝置,確保市民的出行安全。地鐵交通受外界環境干擾小,行車速度穩定,是市民主要的出行方式之一,但地鐵多建設于地下,環境復雜具有特殊性。當發生突發事件時,人員疏散和救援困難,極易發生踩踏事故。因此需要更精準的行人檢測技術,對地鐵中的復雜環境進行實時監控,避免群體突發性事件,確保市民安全。隨著深度學習的發展,行人檢測任務已經取得了很大的進步,但地鐵中由于攝像頭架設角度高、人流量大且不斷運動,因此拍攝行人目標小、遮擋等問題極大地影響了檢測結果。
早期目標檢測方法大多基于手工特征,在底層特征中構建復雜模型提升精度,但人工提取的特征對于復雜場景而言魯棒性不足。隨著卷積神經網絡(Convolutional Neural Network, CNN)、區域建議神經網絡 (Region-CNN, R-CNN)[1]等深度學習模型的提出,以卷積網絡為代表的目標檢測方法迎來了前所未有的飛速發展,卷積神經網絡從原始像素中學習高級語義特征,對背景噪聲中具有復雜姿勢的行人目標具有更強的識別力。目前主流的目標檢測算法主要分為基于區域的兩階段算法,如Ren等人[2]提出結合目標候選框的檢測模型更快速區域卷積網絡(Faster Region-CNN, Faster-RCNN),設計了候選區域提取網絡 (Region Proposal Network,RPN),提高了候選框提取質量。另一種是基于回歸的單階段目標檢測算法如只需看一次網絡(You Only Look Once, YOLO)[3]、單鏡頭多核檢測器(Single Shot multibox Detector, SSD)[4],這類算法只經過一次前饋網絡,因此檢測速度更快,實時性更強。2016年Liu等人[4]提出了SSD方法,結合多尺度的概念在6個不同特征尺度上進行預測且設定了多種尺度的檢測框,設計了不同尺寸不同長寬比的默認框,其采用全卷積網絡進行連接,通過多個卷積層的信息來檢測不同尺寸的目標。SSD算法雖然檢測精度高、速度快,但是它僅將含有較少語義信息的底層特征圖用于小目標檢測,比如在以VGG16作為主干網絡的檢測模型中所選用的最低卷積層是Conv4,這樣一些具有更低級別的信息層就被忽略掉了,包含的特征信息少,因此對于小中目標的檢測效果不佳。針對這一問題,特征金字塔網絡 (Feature Pyramid Networks, FPN)[5]設計了一種自頂向下的連接結構,同時利用低層特征的高分辨率以及高層特征的語義信息,通過對特征層的融合得到最終的輸出結果。
本文結合FPN[5]的特征融合思想構建了適用于地鐵車站的行人頭肩檢測網絡,在原來的SSD網絡的基礎上增加多尺度加權特征融合模塊,充分利用低層網絡信息提高對于小目標的檢測性能。同時,針對地鐵行人數據中小目標樣本數量少、分布不均衡的特點,本文提出了一種針對小目標數據的過采樣增強算法,有效擴充了小目標樣本數量,增加了小目標的訓練權重。結合以上兩種策略,并通過大量試驗驗證,本文提出多尺度加權特征融合網絡(Multi-scale Weighted Feature fusion Single Shot multibox Detector, MWFSSD),在保證速度的前提下,有效提高了小目標的檢測精度,提升了整體模型的檢測性能。
SSD模型是采用VGG為特征提取網絡的端到端卷積網絡,采用多尺度方法進行目標檢測,在保證準確率的同時,可以更快速高效地完成實時檢測任務,圖1是SSD網絡流程圖。原始SSD模型在進行地鐵行人頭肩目標檢測時出現以下問題:大量小尺寸目標難以識別;一些背景區域如人像海報等被誤識成目標對象;目標的重復識別問題。針對以上問題,本文改進了SSD模型,將相互獨立的特征層進行特征融合,充分利用上下文信息[6]。

圖1 SSD網絡檢測流程
SSD目標檢測算法經過多個下采樣層來提取特征,而每經過一次下采樣,網絡的分辨率就會被壓縮,從而損失不同分辨率的特征圖信息,這樣使得網絡在最后很難提取到針對小目標的特征,另外,每個特征圖對小目標的貢獻程度不同,網絡淺層提取目標邊緣和紋理等細節特征,網絡深層提取物體輪廓的特征。根據FPN,淺層特征圖對小目標檢測更有利,因此要想提高小目標檢測精度就要增加底層特征信息,針對這一情況,本文改進了特征提取網絡,選取VGG16的4個不同尺度的特征層分配權重進行加權融合處理,使每個特征圖都能融合不同特征尺度的信息[7,8]。特征融合的結果由式(1)得到

其中,xi是用于融合的原始特征層,wi為每一層特征圖的權重,σi為激活函數,i代表4個不同的特征層。
本文在VGG16網絡中選擇conv3_3, conv4_3,fc_7和conv7_2作為特征提取層;在融合之前每一個原始特征層都需要經過一個類似于激活函數的變換函數σi,對特征圖的尺寸進行統一,使用1×1的卷積核來降低輸入通道,FC7和Conv7_2使用線性插值的方法,將所有特征圖轉換成相同尺寸(38×38×256)[9]。最終為每一層特征圖分配權重wi后經過Θf融合函數進行Concat操作[10],為保證特征數據尺度一致性,對不同尺度特征進行歸一化處理,添加了批標準化層 (Batch Normalization,BN),其作用是在網絡訓練時,使得每一層的輸入保持相同分布,防止過擬合,簡化調參過程,以提高收斂速度。最后,將處理后的特征圖送入SSD網絡中,更好地提取出小目標的位置及類別信息[11–16]。多尺度加權特征融合網絡原理圖如圖2所示。

圖2 MWFSSD檢測流程圖
本實驗的硬件配置采用Intel E5-2603 v4處理器,NVIDIA Titan XP顯卡,軟件環境是Ubuntu16.04,Python3.7和TensorFlow深度學習框架。
本文實驗所用的地鐵行人數據集采集自北京地鐵主要換乘站,共43954個頭肩樣本以及3933個難分樣本,包含了地鐵中的很多場景如車站、出入口、上下扶梯等,并且涵蓋了地鐵運營各個時間段的客流情況。圖3為訓練集及測試集中部分樣本圖像。

圖3 地鐵行人樣本庫示例
地鐵行人樣本庫中,行人目標在鏡頭的近處和遠處尺寸差別很大,這就給準確檢測帶來了困難。COCO[17]數據集是2014年微軟提出的專門用于計算機視覺領域較權威的數據集,其對于面積小于32×32的目標,就認為是小目標;對于中目標的定義是32×32<面積<96×96。圖4展示了COCO數據集和地鐵行人數據集目標尺寸的分布情況,其中橫縱坐標分別代表目標框高和寬的尺寸,可以看出COCO數據集圖4(a)中不同尺寸目標分布均勻,大中小目標都有,而我們的地鐵行人數據集圖4(b)目標尺寸集中在96×96以內的小、中尺寸目標,幾乎不存在較大的目標,這就需要我們的模型對于小尺寸目標具有更強的檢測性能。

圖4 COCO數據集和地鐵行人數據集目標尺寸分布
小目標在地鐵行人數據集中非常常見,而它們在不同圖像中的分布是不可預測的。在整個數據集中,包含小目標的圖片數量極少,然而卻存在個別圖像中幾乎所有的目標都是小目標。這種數據分布的不平衡嚴重妨礙了訓練進程。小目標數量少且尺寸相對較小,因此在訓練中對于網絡的優化作用較小,這種不平衡的網絡參數優化導致檢測性能不佳。根據這一發現,本文提出了一種數據增強的方法,使用過采樣方法構造并擴充小目標樣本,將小目標占比低的圖像尺寸縮小到原來的1/4,并將4張縮小后的圖像拼接成與原圖像尺寸相同的圖片送入網絡,從而增加小目標數據的權重。
圖5是小目標過采樣增強算法的原理圖。首先統計出地鐵行人數據集中每幅圖片中的小目標(尺寸小于64×64)占總目標的比例Rs,若比例小于閾值τ,則說明小目標占比小,應該增加小目標的數量。因此,本文設計了小目標增強預處理模塊,將這些圖片做拼接處理,并添加新的目標框節點坐標到新的數據文件中最終與原圖片一起送入設計好的檢測網絡進行訓練,指導網絡更新[18]。假設原始圖片高和寬分別為h和w,則拼接后的圖片高和寬變成2h,2w。設原始圖片中目標位置為(Xmin,Ymin,Xmax,Ymax)則該目標擴充后的4個新目標坐標分別為

圖5 小目標過采樣增強算法

本文采用準確率(P)、召回率(R)、平均精度均值(mean Average Precision, mAP)、每秒幀率(frame per second, fps)對算法進行性能評價。其中,平均精度均值mAP定義為所有類別檢測的平均準確度,通常用mAP作為評估算法精度的最終指標。目標被成功檢測出認定為正樣本,未被成功檢測出則認為是負樣本。IoU閾值設為0.5,大于0.5則認為是檢測正確,記為T;否則記為F。實驗結果中,IoU小于等于0.5的記為FP, IoU大于0.5的記為TP。
準確率計算公式為

召回率計算公式為

除了檢測準確度,目標檢測算法的另外一個重要性能指標是速度,只有速度快,才能實現實時檢測,這在地鐵行人檢測應用中極其重要。評估速度的常用指標是每秒幀率,即每秒內可以處理的圖片數量。在實際應用中,每秒幀數不能低于20 fps,否則會影響錄像視頻的流暢度[19]。
模型的時間復雜度可以用浮點運算次數(floating-point operations)即FLOPS衡量。單個卷積層的時間復雜度計算公式如式(11)所示

最終,經過計算,MWFSSD相對于SSD網絡而言,時間復雜度增加了31.31GFLOPs,沒有大幅增加網絡的時間開銷。
本文實驗均基于地鐵行人頭肩數據集,選用VGG16網絡的Conv3_3(Conv3), Conv4_3(Conv4), FC7(Conv7), Conv7_2(Conv8), 4層特征層進行不同方式融合,與原始SSD網絡進行對比,得到不同特征層融合后的模型及其模型精度mAP的對比實驗結果。部分實驗結果如表1所示。
由表1可知,當由Conv3, Conv4, Conv7,Conv8 4層特征圖一起融合后的模型精度可以達到86.48,比原始SSD高出2.58,說明融合底層特征的信息對模型精度的提升有很大影響。

表1 特征層融合精度結果比較
本文在Conv3+Conv4+Conv7+Conv8的融合模型基礎上,分別為4個特征層分配不同權重w1,w2, w3, w4再進行融合,并且w1+w2+w3+w4=1,融合公式如式(1)。
本文做了大量實驗,驗證了不同權重分配方式的檢測精度。表2記錄了本文選擇的分配權重與無權重進行比較的檢測結果。結果證明,淺層特征更有利于中、小目標檢測,加入權重進行融合比不加權重融合的模型mAP提高了1.44,有效提高了模型精度。

表2 不同權重分配的檢測結果
最終,結合小目標過采樣增強算法與多尺度特征加權融合網絡進行實驗驗證,表3記錄了本文模型與主流目標檢測模型SSD, Faster-RCNN, YoloV3在精度和速度上的對比結果。本文所提模型在檢測精度上較原SSD模型提升了5.82,相較于其他模型也有不同程度的提高,速度上SSD每秒檢測43幀圖像,本文模型MWFSSD每秒檢測32幀圖像,速度有輕微下降是因為模型深度有所增加,但與精度較高的Faster-RCNN相比,速度上有明顯優勢,并且仍能滿足實時性的要求。圖6是部分SSD與MWFSSD檢測結果對比圖,可以看出本文方法有效改善了地鐵行人檢測中漏檢、錯檢的問題。實驗證明,我們的方法在提高精度的同時,可以滿足實時性需求[20,21]。

表3 MWFSSD與主流檢測方法檢測結果對比

圖6 SSD與MWFSSD檢測效果對比圖
本文針對地鐵行人檢測中小尺寸目標數量不足、分布不均衡的特點提出了針對小目標數據的過采樣增強算法,根據尺度比例增加小目標的利用率。同時,針對地鐵行人目標小的問題,提出了多尺度加權融合算法,并進行大量實驗確定最優參數,提高對小目標的檢測精度。結果顯示,本文所提地鐵行人多尺度加權特征融合算法在保證實時性檢測的同時,檢測精度mAP達到89.72%,相比原始SSD算法提升了5.82%,能夠更準確地實時監測地鐵中的客流量。