aparsoft/yolo-streamlit-detection-tracking
YOLO Vision Studio: a free, open-source Streamlit app for detection, segmentation, pose, text prompts (YOLO World, YOLOE) and tracking with honest counts. Built on Ultralytics YOLO26.
🔬 YOLO Vision Studio – Ultralytics YOLO用のStreamlit UI
何であるか – Streamlitで構築された無料でオープンソースのウェブアプリ。画像またはビデオストリーム上で最先端のYOLOモデルを実行し、リアルタイムで結果を確認できます。物体検出、インスタンスセグメンテーション、ポーズ推定、テキストベースのオブジェクト検索(YOLO World)、複数オブジェクト追跡(複数の最新トレッカーを搭載)をサポートしています。
なぜ重要か – ビデオ内で異なるオブジェクトを数えるのは難しいです。人が(または車が)一時的に見えなくなるからです。このアプリは各フレームに2つの数値を表示します:
- フレーム内 – 検出器が現在認識しているもの。
- 通過した / 追跡済み – 最低5フレーム以上確認された一意のID。正確な合計を示します。 また、チャーン(追跡の中断頻度)というメトリクスも表示され、追跡品質を評価できます。
主な機能
| 機能 | 詳細 |
|---|---|
| モデル | Ultralytics YOLO-v8-26(nano → xlarge)、YOLO-E、YOLO World v2、RT-DETR。自動重みダウンロード。 |
| タスク | 物体検出、インスタンスセグメンテーション、ポーズキーポイント、テキストプロンプトによる「入力したものを検索」。 |
| 追跡 | 4つの組み込みトレッカー – ByteTrack、BoT-SORT、Deep OC-SORT、TrackTrack – およびオプションの外見ReID。 |
| ソース | ローカル動画ファイル、ウェブカメラ(ブラウザ)、RTSPストリーム、YouTube URL。 |
| ライブUI | サイドバーでモード、モデル、信頼度、クラスフィルター、フレームスキップ係数、トレッカー設定を選択可能。 |
| カウントとメトリクス | クラスごとのカウント、ID発行数 vs 確認済みトラック、チャーン、動画終了後の要約テーブル。 |
| マルチビデオ | 複数の動画を並列表示でき、それぞれに独自のトレッカーを割り当て可能。 |
| デプロイ可能 | ローカルでもStreamlit Cloud(CPUのみ)でも動作可能。 |
クイックスタート(Python 3.10+必須)
# リポジトリをクローンして移動
git clone https://github.com/aparsoft/yolo-streamlit-detection-tracking.git
cd yolo-streamlit-detection-tracking
# 推奨:uv(高速、ロックファイル対応)
uv sync # .venvを生成し、正確な依存関係を設定
uv run python scripts/get_sample_videos.py # オプション:サンプル動画取得
uv run streamlit run app.py # http://localhost:8501 が開く
またはpipで:
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt # または exact versions 用に requirements-lock.txt
python scripts/get_sample_videos.py # オプション
streamlit run app.py
初回実行時に weights/ ディレクトリに必要なYOLO重みがダウンロードされます。
使い方
- サイドバーで 画像 または 動画 モードを選択。
- ソース(ファイル、ウェブカメラ、RTSP、YouTube)を選択。
- モデルを選択(スピード重視ならnano、精度重視ならxlarge)し、信頼度閾値を設定。
- (動画の場合)トレッカーを選択し、ReIDをオプションで有効化。
- 検出 を押下 – フレームストリームにバウンディングボックス、マスク、スケルトン、強調されたプロンプトが表示され、リアルタイムカウントも表示。
- ⏹ 停止 ボタンで早期終了可能。動画終了時に追跡要約が表示されます。
設定 – すべてのデフォルト値は config.py に保存されています(信頼度、最小トラックヒット数、表示サイズなど)。カスタム .pt モデルを追加するには、weights/ にファイルを配置し、config.py で登録するだけです。
プロジェクト構造
app.py # Streamlitエントリポイント、UIルーティング
config.py # モデルカタログ、デフォルト設定
model_loader.py # セッションごとのモデルキャッシュ
image_service.py # 画像アップロードと推論処理
video_service.py # 動画ソース処理、追跡、オーバーレイ
scripts/get_sample_videos.py
docs/ (プレイグラウンドノートブック、メモ)
assets/ (README画像)
weights/ (ダウンロード済みモデルファイル)
ライセンス – アプリコードはApache-2.0。モデル重みはUltralyticsのAGPL-3.0(商用利用にはEnterpriseライセンスが必要)。
誰に向けか – コードを書かずにYOLO検出、セグメンテーション、ポーズ、追跡を実験したい研究者や趣味人;監視、小売店の来店者数分析、または任意の動画ベースのカウントタスク向けの迅速なデモが必要な開発者。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト