目錄python
克隆到本地服務器github
git clone https://github.com/nwojke/deep_sort.git服務器
下載MOT16數據集(MOT:Multi-Object Tracking, 16的意思是相比MOT15多了更多的細節信息)
MOT16數據集app
預訓練權重下載框架
該數據集分爲了test和train,每一個文件夾有7個子文件夾。ide
./MOT16/train
學習
以訓練集中的MOT16-02爲例,探究數據數據集格式:
MOT16-02下包含三個四個子文件:det、gt、img一、seqinfo.ini優化
det下只有一個文件,det.txt。每行一個標註,表明一個檢測物體google
格式爲:
,
, , , , , , , ,
這個目錄就是把視頻一幀幀抽取出來的圖片,總共600張。文件命名從000001.jpg到000600.jpg。
gt文件夾下只有一個文件,gt.txt
第1個值:視頻幀號
第2個值:目標運動軌跡的ID號
第3-6值:bbox座標(x, y, w, h)
第7個值:目標軌跡是否進入考慮範圍(0:忽略, 1:active)
第8個值:該軌跡對應的目標種類
第9個值:
box的visibility ratio,表示目標運動時被其餘目標box包含/覆蓋或者目標之間box邊緣裁剪狀況。
視頻的基本信息介紹
python deep_sort_app.py \ --sequence_dir=./MOT16/test/MOT16-06 \ --detection_file=./resources/detections/MOT16_POI_test/MOT16-06.npy \ --min_confidence=0.3 \ --nn_budget=100 \ --display=True #在本身生成的feature運行tracker python deep_sort_app.py \ --sequence_dir=./MOT16/test/MOT16-01 \ --detection_file=./resources/detections/wemo_test/MOT16-01.npy \ --min_confidence=0.3 \ --nn_budget=100 \ --display=True
可選參數解釋:
--sequence_dir:視頻切成圖片序列的文件夾,包含幀序列,每一幀的幀號、目標的bbox、
--detection_file:檢測的權重文件 .npy
--output_file:輸出相似於gt.txt的文件格式,軌跡再也不是默認-1,發生變化
--min_confidence:檢測結果閾值。低於這個閾值的檢測結果將會被忽略
--nms_max_overlap:非極大抑制的閾值
--max_cosine_distance:餘弦距離的控制閾值
--nn_budget:描述的區域的最大值
--display:顯示目標追蹤結果
generate features for persons re-identification.
python tools/generate_detections.py \ --model=resources/networks/mars-small128.pb \ --mot_dir=./MOT16/train \ --output_dir=./resources/detections/MOT16_train #自定義生成feature python tools/generate_detections.py \ --model=resources/networks/mars-small128.pb \ --mot_dir=./MOT16/test \ --output_dir=./resources/detections/wemo_test
--model:是模型框架的權重參數文件
輸入:
輸出:
效果:直觀來看還不錯,固然這是基於目標檢測的檢測的結果,若是檢測不到目標,tracking也沒法作。當人行走過程當中,被遮擋以後再次出現,目標ID仍是維持不變。(思考:這裏人通常是直線前行,若是目標在遮擋以後,掉頭再出現,可能ID就會變化)。
很大的問題:生成的視頻幀率很低,不到30FPS,肉眼能看出明顯卡頓。(網上說經過優化能夠達到高幀率,具體待查)
如何訓練?
餘弦度量學習方法