この小さなプロジェクトの目的は、Yolov2にオブジェクトトラッキングを追加し、リアルタイムの複数のオブジェクト追跡を実現することです。
現在のアーキテクチャは、1つのタイプのオブジェクトのみを追跡するように設定されていますが、すべてのオブジェクトを一般化するのは簡単でなければなりません。
現在、追跡の人々をサポートしています(Deep_Sortの提供されたウェイトが人々の追跡の訓練を受けていたため)
python
numpy
opencv 3
tensorflow 1.0
Cython.
sklean.
sortを使用するために:
scikit-learn
scikit-image
FilterPy
1-このリポジトリのクローン: git clone https://github.com/bendidi/Tracking-with-darkflow.git
2-すべてのサブモジュールを初期化: git submodule update --init --recursive
3- darkflowディレクトリに移動して、build: python3 setup.py build_ext --inplace
ウェイトをダウンロードしてください:
Yolo(Darknetで)の詳細を読んで、ウェイトファイルをダウンロードして、Weight Fileが見つからない場合に、Thtrieuがv1.0のyolo-fullとyolo-tiny v1.1のtiny-yolo-v1.1とv2のtiny-yolo-vocを含む彼のいくつyoloをここにアップロードしました。
このプロジェクトで使用/テストしたArtChitectureは、Weights bin/yolo.weightsを備えたcfg/yolo.cfgです。
次に、nwojkeが提供するDeep_Sort Weights(ネットワークフォルダー)をダウンロードする必要があります
Nwojkeが提供するDeep_Sortの重みはキャンセルされました。代わりにここから入手できます( @louxy126に感謝します)
フォルダーを抽出し、 deep_sort/resourcesにコピーします
run.pyでフラグを編集します。
demo :使用するビデオファイルへのパス、カメラを使用する場合は「カメラ」に設定します
model :Yoloに使用するモデル構成は、ここでより多くの情報と.cfgファイルを取得できます(darkflow/ cfg/ folderに入れます)
load :選択したモデルで使用する対応するウェイト(darkflow/bin/in bin/)詳細についてはこちら
threshold :ヨーロ検出の関心のしきい値
gpu :使用するGPUの量、0はCPUを使用することを意味します
track :追跡をアクティブにするかどうか
trackObj :リストとして追跡するオブジェクト(deep_sortのエンコーダーは人のみでトレーニングされているため、独自のエンコーダーをトレーニングする必要があります。詳細情報はこちらで必要です)
saveVideo :ビデオを保存するかどうか
BK_MOG :OPENCVのMOGバックグラウンド減算モジュールを追加します。これを使用して、動くオブジェクトの周りのボックスを検出するためにYoloがビデオの人々を検出できない場合にのみ役立ちます
tracker :使用するトラッカー:「deep_sort」または「sort」
**NOTE** : "deep_sort" only supports people tracking as it was only trained to track people(the code for training is not yet published)
**TODO** : add support for GOTURN tracker(tensorflow implementation)
**TODO** : add support for opencv trackers (MIL,KCF,TLD,MEDIANFLOW)
skip :フレームをスキップしてFPSを増やし、精度を低下させる可能性があります!
csv :形式で検出のCSVファイルを保存(frame_id、object_id、x、y、w、h)
display :処理中にビデオを表示します
次に、 python run.pyを実行して楽しんでください!
「Yolo.cfgを使用したスピード:
YOLO with track Flag set to False : 30fps
YOLO with track Flag set to True (deep_sort) : 14 fps
YOLO with track and background subtraction Flags set to True : 10.5 fps
(1024、1280、3)NVIDIA GTX 1080での解像度ビデオで行われたテスト
最大3つのフレームをスキップすると、追跡の正確性を維持しながら、より多くのスピードを上げることができます
このプロジェクトは、以下からフォークされたコードを使用しています。
thtrieu/darkflow:リアルタイムオブジェクトの検出と分類用。
nwojke/deep_sort:ディープアソシエーションメトリックを使用したシンプルなオンラインリアルタイムトラッキングの場合。
リンクに従って、各プロジェクトのすべての機能を理解してください。
@article{redmon2016yolo9000,
title={YOLO9000: Better, Faster, Stronger},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1612.08242},
year={2016}
}
@article{Wojke2017simple,
title={Simple Online and Realtime Tracking with a Deep Association Metric},
author={Wojke, Nicolai and Bewley, Alex and Paulus, Dietrich},
journal={arXiv preprint arXiv:1703.07402},
year={2017}
}
@inproceedings{Bewley2016_sort,
author={Bewley, Alex and Ge, Zongyuan and Ott, Lionel and Ramos, Fabio and Upcroft, Ben},
booktitle={2016 IEEE International Conference on Image Processing (ICIP)},
title={Simple online and realtime tracking},
year={2016},
pages={3464-3468},
keywords={Benchmark testing;Complexity theory;Detectors;Kalman filters;Target tracking;Visualization;Computer Vision;Data Association;Detection;Multiple Object Tracking},
doi={10.1109/ICIP.2016.7533003}
}