祝慶發 陳永生 郭玉臣



摘要:針對現有的行人檢測算法在密集人群場景下,準確率不高的問題,并結合上海地鐵中特有的人群密集場景,本文利用YOLO目標檢測算法,提出了在密集人群場景下的改進的YOLO行人檢測算法。算法主要針對網絡結構和損失函數進行改進,并在人工標注的實際場景下的行人數據集上進行訓練與測試。實驗結果表明,改進后的算法較YOLO目標檢測算法在實際場景下的準確率有明顯提高。
關鍵詞:密集人群;YOLO;行人檢測;網絡結構;損失函數
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)22-0175-02
開放科學(資源服務)標識碼(OSID):
近幾年來,隨著深度學習的飛速發展[1]以及城市軌道交通的發展[2],為密集人群場景下的行人檢測[3]提供了技術和數據支持。在密集人群場景下,因為行人密度高以及行人與行人之間的相互遮擋較為嚴重,使得當前最優的目標檢測算法在密集人群場景下的檢測效果不佳。針對密集人群場景下行人檢測存在的問題并結合上海地鐵監控系統的實際情況,本文提出基于改進YOLO[4]算法的密集人群場景下的行人檢測算法。該算法主要針對特征提取網絡和損失函數兩方面進行改進,較原算法(YOLO)提高了在密集人群場景下檢測的準確率。
1 YOLO算法
1.1 網絡結構
YOLO目標檢測算法總體使用卷積神經網絡來實現,并在Pascal VOC檢測數據集[5]上進行評估。網絡的初始卷積層從圖像中提取特征,而全連接層預測輸出概率和坐標。網絡架構受到GoogLeNet圖像分類模型的啟發[6]。網絡有24個卷積層,后面是2個全連接層。網絡只使用1×1降維層,后面是3×3卷積層,該設計與文獻[7]中的結構類似,而不是像GoogLeNet一樣使用Inception模塊。完整的網絡如圖1所示。
1.2 損失函數
YOLO的損失函數中邊界框x和y坐標參數化為特定網格單元位置的偏移量,所以它們的值在0和1之間,這樣設置方便網絡的優化。同樣的,損失函數使用了平方和誤差,因為很容易進行優化,但是這并不完全符合最大化平均精度的目標。分類誤差與定位誤差的權重是一樣的,這并不理想。因為,在每張圖像中,許多網格單元不包含任何對象。如果不假思索地將這些單元格的“置信度”分數推向零,通常壓倒了包含目標的單元格的梯度。這可能導致模型不穩定,從而導致訓練早期發散。為了改善這一點,損失函數增加了邊界框坐標預測損失,并減少了不包含目標邊界框的置信度預測損失。YOLO使用兩個參數λcoord和λnoobj來完成這個工作。并根據經驗設置λcoord=5和λnoobj=.5。
YOLO每個網格單元預測多個邊界框。在訓練時,每個目標只需要一個邊界框預測器來負責。指定一個預測器“負責”根據哪個預測與真實值之間具有當前最高的IOU來預測目標。這導致邊界框預測器之間的專業化。每個預測器可以更好地預測特定大小,方向角,或目標的類別,從而改善整體召回率。
其中S 代表最終特征圖的網格尺寸; B 代表每個網格的預測框個數;( x ,y )代表代表框的中心坐標; c 代表框的置信度 (confidence); 代表目標是否出現在網格單元i中,代表網格單元i中的第j個邊界框預測器“負責”該預測。
2數據集
由于國內外沒有開源的密集人群場景下的行人檢測數據集,同時考慮到算法的實際應用場景較為特殊,本文采用的數據集,是在算法實際應用場景下采集的視頻圖像,進行手工標注而來。圖片大小歸一化到416X416,訓練數據1000張,測試數據300張。
考慮到密集場景下人群遮擋較為嚴重,標注框只包含行人的頭部和肩部,而不是包含整個行人。因為密集人群場景下只能看到行人的頭部和肩部,這樣有利于提高算法檢測的準確率。同時,為了簡化算法,提高算法的檢測速度,標注框根據實際情況,采用了三個固定大小的尺寸,分別為70X70,55X55和30X30。三個尺寸的標注框可以合適的標注變化不大的行人的頭部和肩部。
3改進的YOLO算法
3.1 網絡結構
改進的YOLO算法的網絡結構借鑒YOLOv3算法[8],其中特征提取網絡為62層的ResNet[9],結構如圖3所示。相比YOLO算法的24層,改進的YOLO算法網絡更加深,這樣有利于特征的提取與語義表達。同時引入了特征金字塔結構,這樣有利于提高檢測效果。網絡使用步長為2的卷積層代替池化層。算法在實驗中采用416X416尺寸的輸入圖片,特征提取網絡最后一層的尺寸為 13X13。
3.2 多尺度預測
改進的YOLO算法采用了anchor[10]的設計方式,并利用網絡第62,53和36層輸出的feature map進行多尺度預測。因為算法訓練采用的數據集的ground truth僅有三個尺寸,恰好可以設計三個不同預測層的bounding box的大小為70X70,55X55和30X30。
3.3 損失函數
改進的YOLO算法采用了專有的數據集進行訓練與測試,并且因為bounding box的大小與ground truth剛好相等,所以改進的YOLO算法不需要計算bounding box和ground truth之間的長寬誤差,所以損失函數的表達式為如圖4所示。
4實驗
4.1實驗參數
本文實驗代碼采用開源的輕量級深度學習框架Darknet[11]編寫,軟硬件相關配置參數如表1所示。
4.2 實驗結果分析
本文算法檢測目標為單一目標,算法的衡量指標以行人檢測的準確率為準,實驗結果對比的基線為原始的YOLO算法;參考對比實驗為,在本實驗數據集上進行訓練的修改相應參數的YOLO算法,并將其命名為:重新訓練的YOLO算法。對比結果如表2所示。
從表2可以看出使用實驗中的數據集對YOLO算法進行重新訓練可以小幅提高檢測的準確率,從中可以看出使用特定的數據集對特定的問題的檢測效果會比使用通用數據集的算法的檢測準確率要高。改進的YOLO算法的準確率較其他兩個實驗有大幅提升,從中可以看出越深層的神經網絡,檢測的效果也越好。 5結論
本文針對上海地鐵獨特的密集人群場景,對YOLO目標檢測算法進行改進,提高了算法的準確率。通過對YOLO算法進行網絡結構和損失函數的改進可以看出,增加網絡的深度可以提高現有檢測算法的準確率。但從算法最后的準確率可以看出僅僅增加網絡的深度對算法檢測的準確率的提高是有限的,人群嚴重遮擋的情況,仍然沒有很好的提高準確率的解決方法。后續仍然需要針對密集人群場景下的行人檢測做進一步的理論分析和實際測試。
參考文獻:
[1] 侯宇青陽,全吉成,王宏偉.深度學習發展綜述[J].艦船電子工程,2017,37(4):5-9+111.
[2] 劉小明出席中國國際鐵路與城市軌道交通大會指出:開放合作創新引領 推進城市軌道交通高質量發展[J].交通企業管理,2018(6):23.
[3] Sabzmeydani P,Mori G.Detecting pedestrians by learning shapeletfeatures [C] . Computer Vision and Pattern Recognition,2007.CVPR07.IEEE Conference on.IEEE2007:1-8.
[4] Redmon J, Divvala S, Girshick R, et al. You only look once: unified, real time object detection [C]// Computer Vision and Pattern Recognition. 2016: 779-788.
[5] M. Everingham, S. M. A. Eslami, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman. The pascal visual object classes challenge: A retrospective. International Journal of Computer Vision, 111(1):98–136, Jan. 2015. 2
[6] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. CoRR, abs/1409.4842, 2014. 2
[7] M. Lin, Q. Chen, and S. Yan. Network in network. CoRR, abs/1312.4400, 2013. 2
[8] Redmon J,Farhadi A. YOLOv3: An Incremental Improvement [C]//IEEE Conference on Computer Vision and Pattern Recognition. 2018.
[9] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learn- ing for image recognition. In Proceedings of the IEEE con- ference on computer vision and pattern recognition, pages 770–778, 2016.
[10] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.- Y. Fu, and A. C. Berg. Ssd: Single shot multibox detector. In European conference on computer vision, pages 21–37. Springer, 2016.
[11] Redmon J. Darknet: Open Source Neural Networks in C [DB/OL]. [2017-10-25]. http://pjreddie. com/darknet/.
【通聯編輯:唐一東】