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重みがダウンロードされます。

使い方

  1. サイドバーで 画像 または 動画 モードを選択。
  2. ソース(ファイル、ウェブカメラ、RTSP、YouTube)を選択。
  3. モデルを選択(スピード重視ならnano、精度重視ならxlarge)し、信頼度閾値を設定。
  4. (動画の場合)トレッカーを選択し、ReIDをオプションで有効化。
  5. 検出 を押下 – フレームストリームにバウンディングボックス、マスク、スケルトン、強調されたプロンプトが表示され、リアルタイムカウントも表示。
  6. ⏹ 停止 ボタンで早期終了可能。動画終了時に追跡要約が表示されます。

設定 – すべてのデフォルト値は 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検出、セグメンテーション、ポーズ、追跡を実験したい研究者や趣味人;監視、小売店の来店者数分析、または任意の動画ベースのカウントタスク向けの迅速なデモが必要な開発者。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト