Home

Awesome

[Japanese/English]

MOT-Tracking-by-Detection-Pipeline

Tracking-by-Detection形式のMOT(Multi Object Tracking)について、<br>DetectionとTrackingの処理を分離して寄せ集めたフレームワークです。<br>


<img src="https://user-images.githubusercontent.com/37477845/154173587-51b7773e-4e7b-46c0-b8a7-da2bf774edb4.png" loading="lazy" width="100%">

https://user-images.githubusercontent.com/37477845/154089051-708b70c7-661a-4754-a5d8-556f9291e4c9.mp4


Requirement

opencv-python 4.5.5.62 or later
onnxruntime 1.10.0     or later
mediapipe 0.8.9.1      or later ※MediaPipeを実行する場合
filterpy 1.4.5         or later ※motpyを実行する場合
lap 0.4.0              or later ※ByteTrackを実行する場合
Cython 0.29.27         or later ※ByteTrackを実行する場合
cython_bbox 0.1.3      or later ※ByteTrackを実行する場合
rich 11.2.0            or later ※Norfairを実行する場合
gdown 4.4.0            or later ※YoutuReIDを実行する場合
tensorflow 2.8.0       or later ※Light Person Detectorをtfliteで実行する場合

※Windowsでcython_bbox のインストールが失敗する場合は、GitHubからのインストールをお試しください(2022/02/16時点)<br>

pip install -e git+https://github.com/samson-wang/cython_bbox.git#egg=cython-bbox

Usage

デモの実行方法は以下です。

python main.py

Direcotry

│  main.py
│  test.mp4
├─Detector
│  │  detector.py
│  └─xxxxxxxx
│      │  xxxxxxxx.py
│      │  config.json
│      │  LICENSE
│      └─model
│          xxxxxxxx.onnx
└─Tracker
    │  tracker.py
    └─yyyyyyyy
        │  yyyyyyyy.py
        │  config.json
        │  LICENSE
        └─tracker

各モデル、トラッキングアルゴリズムを格納しているディレクトリには、<br> ライセンス条項とコンフィグを同梱しています。

Detector

モデル名取得元リポジトリライセンス備考
YOLOXMegvii-BaseDetection/YOLOXApache-2.0YOLOX-ONNX-TFLite-Sampleにて<br>ONNX化したモデルを使用
EfficientDettensorflow/modelsApache-2.0Object-Detection-API-TensorFlow2ONNXにて<br>ONNX化したモデルを使用
SSD MobileNet v2 FPNLitetensorflow/modelsApache-2.0Object-Detection-API-TensorFlow2ONNXにて<br>ONNX化したモデルを使用
CenterNettensorflow/modelsApache-2.0Object-Detection-API-TensorFlow2ONNXにて<br>ONNX化したモデルを使用
NanoDetRangiLyu/nanodetApache-2.0NanoDet-ONNX-Sampleにて<br>ONNX化したモデルを使用
MediaPipe Face Detectiongoogle/mediapipeApache-2.0目、鼻、口、耳のキーポイントは未使用
MediaPipe Handsgoogle/mediapipeApache-2.0ランドマークから外接矩形を算出し使用
Light Person DetectorPerson-Detection-using-RaspberryPi-CPUApache-2.0-

Tracker

アルゴリズム名取得元リポジトリライセンス備考
motpy<br> (0.0.10)wmuron/motpyMIT-
ByteTrack<br> (2022/01/26)ifzhang/ByteTrackMITByteTrackはシングルクラス用トラッカー<br>マルチクラス拡張版を使用したい場合は「mc_bytetrack」を指定してください
Norfair<br> (0.4.0)tryolabs/norfairBSD 3-ClauseNorfairはシングルクラス用トラッカー<br>マルチクラス拡張版を使用したい場合は「mc_norfiar」を指定してください
person-reidentification-retailopenvinotoolkit/open_model_zooApache-2.0ONNXモデルはPINTO0309/PINTO_model_zooから取得<br>人用モデルのため使用時はtarget_idオプションでクラスを指定してください
YoutuReIDopencv/opencv_zooApache-2.0人用モデルのため使用時はtarget_idオプションでクラスを指定してください
SFaceopencv/opencv_zooApache-2.0Detectorに顔検出を指定してください<br>また、SFaceは推論前に顔の角度を垂直に補正する処理を実施すべきですが、本ソースでは未対応です
vehicle-reid-0001vehicle-reid-0001Apache-2.0車用モデルのため使用時はtarget_idオプションでクラスを指定してください

Author

高橋かずひと(https://twitter.com/KzhtTkhs)

License

MOT-Tracking-by-Detection-Pipeline is under MIT License.<br><br> MOT-Tracking-by-Detection-Pipelineのソースコード自体はMIT Licenseですが、<br> 各アルゴリズムのソースコードは、それぞれのライセンスに従います。<br> 詳細は各ディレクトリ同梱のLICENSEファイルをご確認ください。

License(Movie)

サンプル動画はNHKクリエイティブ・ライブラリーイタリア ミラノの横断歩道を使用しています。