mikel-brostrom/boxmot
BoxMOT: Pluggable Python and C++ SOTA multi-object tracking modules with support for axis-aligned and oriented bounding boxes
BoxMOT – プラガブルな多オブジェクト追跡ライブラリ
概要 BoxMOT は、あらゆるオブジェクト検出器の上で多オブジェクトトラッカー(MOT)を構築、実行、評価できる Python(およびオプションの C++)ライブラリです。クリーンでモジュール化された API を提供し、4 つの主要コンポーネント(検出器、セグメンテーションマスク、外観エンコーダ(Re‑ID)、トラッカー)を独立して交換できます。このライブラリには、一般的なワークフロー(トラッキング、評価、チューニング、データセットのマテリアライズなど)のためのコマンドラインインターフェース(CLI)と、トラッカーを独自のコードに埋め込むための Python API が付属しています。
主な機能
| 機能 | 重要性 |
|---|---|
| 統合 CLI | 単一のエントリポイント(boxmot)で、トラッキング、評価、ハイパーパラメータチューニング、Re‑ID トレーニング、データセットエクスポートなどをカバーし、個別のツールを組み合わせる必要性を軽減します。 |
| プラガブルなコンポーネント | 検出器(例:YOLO バリアント)、セグメンター、Re‑ID エンコーダ、トラッカーを、シンプルなフラグで組み合わせて使用でき、迅速な実験が可能です。 |
| AABB および OBB サポート | 軸に平行なバウンディングボックス(AABB)と回転したバウンディングボックス(OBB)の両方を処理し、オブジェクトが回転する航空映像やスポーツ映像に役立ちます。 |
| ネイティブ C++ バックエンド | トラッカーのオプションの高性能 C++ 実装(--tracker-backend cpp)を使用でき、CMake を介して他の C++ プロジェクトに統合できます。 |
| 不変の Parquet ビルド | 検出、マスク、埋め込みはキー付き Parquet ファイルに保存され、データセットを再現可能にし、実験間で再利用できます。 |
| 広範なベンチマークテーブル | README には、多くの組み込みトラッカー(例:occluboost、botsort、bytetrack)の MOT17、SportsMOT、MMOT OBB データセットでの HOTA、MOTA、IDF1 スコアが記載されています。 |
| Python API | トラッカー(OccluBoost)を作成し、NumPy 検出と BGR フレームを供給してトラック ID を取得する例を示し、オプションで OBB モードをサポートします。 |
| インストール | pip install boxmot は Python 3.10‑3.13 で動作し、GPU または CPU ビルド用に追加のプロファイル(yolo、service、onnx など)を利用できます。 |
| コミュニティとサポート | Discord、GitHub Discussions、非営利の保全プロジェクト向けの限定的な無料コンサルティングを提供しています。 |
典型的な使用法
# YOLO‑v2 検出器、Re‑ID モデル、オクルーブーストトラッカーを使用してウェブカメラから追跡
boxmot track \
--detector yolo26n \
--reid lmbn_n_duke \
--tracker occluboost \
--source 0 --save --show
from boxmot import OccluBoost
import numpy as np
tracker = OccluBoost()
# 検出: [x1, y1, x2, y2, confidence, class_id]
dets = np.array([[100,200,300,400,0.9,0]])
frame = np.zeros((480,640,3), dtype=np.uint8) # ダミーの BGR 画像
tracks = tracker.update(dets, frame)
print(tracks[:,4].astype(int)) # トラック ID
対象ユーザー
- 再現可能なパイプラインを必要とする新しい MOT アルゴリズムをプロトタイピングする研究者。
- 高速な C++ バックエンドを必要とするリアルタイム追跡を展開する実務者(例:野生生物モニタリング、スポーツ分析)。
- 標準的な MOT ベンチマークで複数のトラッカーを評価するための統一インターフェースを必要とする人。
詳細情報
- 完全なドキュメント:
docs/(インストール、モード、API リファレンス、トラッカーリスト)。 - ベンチマーク結果と実験ガイドは、README のテーブルと
docs/guides/にあります。 - コミュニティヘルプは Discord または GitHub Discussions で。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト