天天看點

基于Yolo3_deep_sort的目标追蹤(測試環境搭建及複現說明) --- 已解決

基于Yolo3_Deep_sort的多目标追蹤算法測試環境搭建及複現說明

寫在前面的話:樓主前一段時間參與了一個小項目,是關于人的目标追蹤,在此記錄一下,本片博文主要是對測試環境搭建及複現過程進行說明,如果有哪位同學對該方法的原理和認識感興趣,可以檢視我的另一篇部落格,傳送門。

  将Yolo3與Deep_sort相結合,相當于目标檢測中的Two stages的結構,采用detection(Yolo3)+ track(Deep_sort)的方式實作目标追蹤。

劃重點啦:

測試代碼和模型檔案已上傳到百度網盤,位址如下:

連結:https://pan.baidu.com/s/1stuX_JWT8hpSEiyMPDVEag

提取碼:9stt

主要包含測試代碼、模型檔案、工具檔案等,感興趣童鞋可以下載下傳下來複現一下。

1、環境說明

疫情期間在家做的,電腦配比較低。

本人所使用的python版本為3.7,使用cpu計算(8G),編譯器為pycharm。

将上傳到百度網盤中的“Object-Detection-and-Tracking-master.zip”下載下傳解壓後,将其中的Object-Detection-and-Tracking-master\OneStage\yolo檔案夾下的deep_sort_yolov3檔案夾标記為Sources root。

2、主要的工具包

Keras==>2.2.4,

opencv-python==>4.2.0.32,

numpy==>1.16.2,

tensorflow==>1.14.0,

sklearn==> 0.20.3,

scipy==> 1.2.1

3、複現過程

(1) 模型下載下傳轉化

  本方法使用的是GitHub中Qidian213的預訓練權重檔案,已上傳到百度網盤中。下載下傳網盤中的檔案,而後使用conver.py将OneStage\yolo\deep_sort_yolov3\yolov3.weights權重檔案轉換成為yolo.h5模型放置在檔案夾OneStage\yolo\deep_sort_yolov3\model_data下(不同tensorflow版本轉化的.h5檔案不能通用,複現時需要根據自己的版本進行轉換)。轉換指令:cmd切換到檔案目錄,運作以下指令完成轉換。

python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5 
           
(2) 表觀特征檔案生成

  生成表觀特征檔案mars-small128.pb,用于跟蹤時的特征比對,檔案已上傳到百度網盤中。下載下傳後,cmd切換到檔案目錄,運作:python tools/freeze_model.py,将新生成的mars-small128.pb檔案複制到model_data檔案夾下。(不同tensorflow版本轉化的.pb檔案不能通用,複現時需要根據自己的版本進行轉換)

(3) 視訊幀轉換為視訊

  本方法将視訊幀圖檔轉化為視訊進行目标追蹤,由于輸入模型中的視訊的前2幀圖檔會進行檢測,沒有id等資訊生成,會忽略前2幀圖檔中被檢測物體的相關資訊,是以将每個Track檔案夾下的視訊幀圖檔的第一張圖檔複制2次,并分别命名為“-1.png”和“0.png”(即每個Track檔案夾下多出2張第一幀圖檔),而後使用文檔中的picture_to_vedio.py進行轉化,需更改Track檔案的路徑,将轉換完成的視訊檔案複制到Object-Detection-and-Tracking-master\videos_檔案夾下。

(4) 輸出跟蹤位址

  将Object-Detection-and-Tracking-master\OneStage\yolo\deep_sort_yolov3\main.py中的視訊路徑和輸出txt檔案位址按照需要進行更改,直接運作檔案,即可輸出Trackx.txt檔案,檔案中第1列至第8列分别為:< frame >,< id >,< bb_left >,< bb_top >,< bb_width >,< bb_height >,< conf >,< type >,(這個可以根據自己的需求進行自定義輸出)。

(5) 參數調整

  關于參數調整,在OneStage\yolo\deep_sort_yolov3\yolo.py檔案中可調整置信度和IOU的關聯門檻值,在OneStage\yolo\deep_sort_yolov3\main.py檔案中可調整餘弦距離的控制門檻值和非極大抑制的門檻值等,可根據自己需要進行調整,網上也有很多關于這方面的調參經驗可以借鑒。

記錄完畢,希望可以幫到你。

繼續閱讀