このプロジェクトについて
小白自動編集(Badminton Auto-Editing)は、オープンソースのバドミントン試合動画自動編集システムで、主にバドミントン愛好家とコーチを対象に、試合中の有効なラリー区間を素早く抽出することを支援します。
プロジェクトは4つの主要部分で構成されています:
- **バックエンド**:Python FastAPI をベースに構築され、音声・映像分析、FFmpeg、TrackNetV3 バドミントン軌跡検出モデルを統合し、ラリー認識と編集処理を実現します。
- **フロントエンド**:レスポンシブ H5 インターフェースで、動画アップロード、AI 認識による切り出しタイムラインの視覚的な微調整、圧縮エクスポートをサポートします。
- **デスクトップシェル**:macOS / Windows ネイティブデスクトップアプリで、ローカルサービスを自動起動し、ウィンドウ内でワークベンチを開きます。手動で Uvicorn を実行する必要はありません。
- **Android 端末アプリ**:ローカル分析とローカルエクスポートをサポートし、スマートフォン上で動作します。
コア機能の流れ:
1. 録画をアップロードした後、画面上で4つの角点をドラッグして対象コートを囲みます。
2. 「認識開始」をクリックすると、システムは 2kHz-6kHz の打球音、コート多角形内の局所的な動き、TrackNetV3 のバドミントン軌跡を組み合わせて、サーブ動作の開始まで遡り、着地軌跡までを保持します。
3. 低信頼度のラリーは琥珀色で表示され、ユーザーはタイムライン内で調整または削除してからエクスポートできます。
エクスポート戦略:POST /api/v1/video/export/{task_id} を通じてシステムの一時ディレクトリで編集エンコードを完了し、MP4 または ZIP ファイルを直接返します。ブラウザはワンタイム Blob URL を使用してダウンロードし、レスポンス転送終了後、サーバー側は一時ディレクトリを即座に削除し、完成品は保存しません。レスポンスヘッダーには X-Export-Filename、X-File-Size-MB、Cache-Control: no-store が含まれます。
出力サイズの上限は 1080p と 720p で、それより小さいソース動画は拡大されません。ソフトウェアエンコードはデフォルトで libx264 / libx265 を使用し、FFMPEG_HWACCEL=true でハードウェアエンコードを有効にできます。
TrackNetV3 モデルは環境変数で制御できます:TRACKNET_ENABLED=false で無効化、TRACKNET_MODEL_PATH で重みパスを指定、TRACKNET_DEVICE=cpu|mps|cuda でデバイスを選択します。モデルが利用不可または信頼度が不足する場合、自動的にコート内運動結果にフォールバックします。
デスクトップ版は macOS と Windows をサポートし、build_macos.sh または build_windows.ps1 でインストールパッケージをビルドします。GitHub Actions が自動的に Release を作成し、インストールパッケージを添付します。
プロジェクトは MIT ライセンスを使用し、デフォルトの重みファイルも MIT ライセンスに従います。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.