Deepsort + Yolo 實現行人檢測和軌跡追蹤
行人檢測是近年來計算機視覺領域的研究熱點,同時也是目標檢測領域中的難點。其目的是識別和定位圖像中存在的行人,在許多領域中都有廣泛的應用。交通安全方面,無人駕駛汽車通過提前檢測到行人及時避讓來避免交通事故的發生;安防保護方面,通過行人檢測來防止可疑人員進入;公共場所管理方面,通過行人檢測統計人流量數據,優化人力物力等資源的分配。對於目標檢測的方法,從2013年Ross Girshick提出R-CNN開始,人們在短短幾年內相繼提出Fast R-CNN、Faster R-CNN、Mask R-CNN、SSD、YOLO等算法,其中兩步檢測的目標檢測方法(R-CNN系列算法)需要先產生大量候選框之后再用卷積神經網絡對候選框進行分類和回歸處理;單步檢測的方法(SSD、YOLO系列算法)則直接在卷積神經網絡中使用回歸的方法一步就預測出目標的位置以及目標的類別。雖然兩步檢測的目標檢測方法在大多數的場景下精確率更高,但是它需要分兩個步驟進行,因此,這種方法將耗費大量的時間成本和昂貴的硬件成本,不適合對視頻文件進行實時的檢測。而YOLO系列的網絡速度更快,可以適應實時視頻的檢測,泛化能力更強。對於人員跟蹤,2016年Alex Bewley提出了簡單在線實時跟蹤算法,這種算法把傳統的卡爾曼濾波和匈牙利算法結合到一起, 能在視頻幀序列中很好地進行跨檢測結果的關聯, 而且它的速度比傳統的算法快20倍左右,可以快速地對目標檢測反饋的數據進行處理。故本項目通過采用深度學習方法實現YOLO算法行人檢測和deepsort算法對人員定位的和軌跡跟蹤。其最終實現效果如下圖可見:

基本介紹
1.1 環境要求
本次環境使用的是python3.6.5+windows平台。主要用的庫有:
opencv模塊。在計算機視覺項目的開發中,opencv作為較大眾的開源庫,擁有了豐富的常用圖像處理函數庫,采用C/C++語言編寫,可以運行在Linux/Windows/Mac等操作系統上,能夠快速的實現一些圖像處理和識別的任務。
pillow模塊。PIL是理想的圖像存檔和批處理應用程序。您可以使用庫創建縮略圖,在文件格式、打印圖像等之間進行轉換。它提供了廣泛的文件格式支持、高效的內部表示和相當強大的圖像處理功能。核心圖像庫是為快速訪問以幾種基本像素格式存儲的數據而設計的。為通用圖像處理工具提供了堅實的基礎。
Scipy庫。Scipy是一個用於數學、科學、工程領域的常用軟件包,可以處理插值、積分、優化、圖像處理、常微分方程數值解的求解、信號處理等問題。它用於有效計算Numpy矩陣,使Numpy和Scipy協同工作,高效解決問題。
keras模塊。Keras是一個由Python編寫的開源人工神經網絡庫,可以作為Tensorflow、Microsoft-CNTK和Theano的高階應用程序接口,進行深度學習模型的設計、調試、評估、應用和可視化 。
1.2 算法設計
使用卷積神經網絡對視頻中的行人進行檢測和跟蹤。視頻幀輸入之后首先進入YOLOv3目標檢測的網絡,經過Darknet-53提取特征;其次,進行上采樣和特征融合,再進行回歸分析;再次,把得出的預測框信息輸入SORT算法進行目標特征建模,匹配和跟蹤;最后,輸出結果。下圖為算法流程設計圖:

行人檢測
2.1 YOLO行人檢測
常見的兩階段檢測首先是使用候選區域生成器生成的候選區集合,並從每個候選區中提取特征,然后使用區域分類器預測候選區域的類別。而YOLO作為單階段檢測器,則不用生成候選區域,直接對特征圖的每個位置上的對象進行分類預測,效率更高。在這里使用labelme標注行人數據集,然后通過搭建好的YOLO算法產生模型並進行訓練即可。


2.2 Deepsort行人跟蹤
行人多目標跟蹤算法設計的步驟如下:
(1) 檢測階段:目標檢測算法會分析每一個輸入幀,並識別屬於特定類別的對象,給出分類和坐標。
(2) 特征提取/運動軌跡預測階段:采用一種或者多種特征提取算法用來提取表觀特征,運動或者交互特征。此外,還可以使用軌跡預測器預測該目標的下一個位置。
(3) 相似度計算階段:表觀特征和運動特征可以用來計算兩個目標之間的相似性。
(4) 關聯階段:使用計算得到的相似性作為依據,將屬於同一目標的檢測對象和軌跡關聯起來,並給檢測對象分配和軌跡相同的 ID。使用卡爾曼濾波類跟蹤的估計狀態系統和估計的方差或不確定性。用於預測。
這里dist_thresh為距離閾值。當超過閾值時,軌道將被刪除,並創建新的軌道;Max_frames_to_skip為允許跳過的最大幀數對於跟蹤對象未被檢測到;max_trace_length為跟蹤路徑歷史長度;trackIdCount為每個軌道對象的標識。


綜合結果顯示
將YOLO行人檢測和deepsort算法結合,並通過設置基本閾值參數控制軌跡預測的歐式距離。通過搭建本項目可應用於城市商業街道、人行道、校園道路場景,使用其得出的人員流動數據,幫助公共交通和安全管理。最終得到的使用效果如下:


