トラッキング & 行為認識 モデル候補と評価データセット
[!NOTE] 最新の実装状況は 機能実装ステータス (Remaining Functionality) を参照してください。
目的: 本ファイルはトラッキング(ID 継続)と行為認識の本番導入候補モデル、評価指標、推奨データセット、及び評価手順をまとめる。
1) 検出 + トラッキング候補 - Detection: YOLOv5/YOLOv8, YOLOX (高スループット) - Tracker: DeepSORT, StrongSORT, ByteTrack, SORT (軽量) - 推奨組合せ: YOLOX + ByteTrack(高速 + ID 継続性)
評価指標 - IDF1, MOTA, MOTP, Precision, Recall - 実装評価: 遮蔽復帰率、短時間遮蔽後の ID 持続性
2) 行為認識候補 - ST-GCN (skeleton-based) - TCN (temporal conv) - I3D / SlowFast (RGB ベース) - TSN (軽量バッチ評価)
評価指標 - mAP, F1, Accuracy, Segmental-F1
3) 推奨データセット - PoseTrack (pose + tracking) — トラッキング評価 - MOTChallenge (MOT17, MOT20) — ID/追跡評価 - AVA (spatio-temporal action detection) - Kinetics, UCF101, HMDB51 — 行為分類ベンチマーク - JHMDB, THUMOS — 行為セグメンテーション・検出
4) 評価手順(統合) 1. 検出器の精度/レイテンシ評価(デバイス: CPU / GPU) 2. トラッカー統合評価(検出結果固定で IDF1 等を算出) 3. 行為認識はトラッキング結果を入力した上でのセグメント精度 4. E2E 統合: 検出→トラッキング→行為認識→ASR→融合 のパイプラインで latency/success を計測
5) データ準備 & アノテーション - サンプルセット (短いクリップ群, 10-30s) を用意し、以下を付与: - フレーム毎バウンディングボックス + track_id - ポーズキーポイント(COCO/17 keypoints 形式) - 行為ラベル(start/end/frame-level) - 音声トランスクリプト(タイムスタンプ付き)
6) ベンチ自動化
- ベンチスクリプト: tools/bench_video_pipeline.py を作成(将来的実装)
実装済みモジュール(2026-04-24)
ショット境界検出 — shot_boundary_detector.py
| 項目 | 詳細 |
|---|---|
| クラス | ShotBoundaryDetector(threshold=0.3, method="histogram", min_scene_len=5) |
| メソッド | detect(frames, fps) → [(frame_idx, timestamp), ...] |
| 手法 | ヒストグラム差分 / ピクセル差分 / 複合(method で選択) |
| NMS | min_scene_len フレーム未満の重複境界を除去 |
| 依存 | NumPy のみ(OpenCV fallback なし) |
時系列行動ローカリゼーション — temporal_action_localizer.py
| 項目 | 詳細 |
|---|---|
| クラス | TemporalActionLocalizer(window_size=16, stride=8, min_confidence=0.3, nms_overlap_threshold=0.5) |
| メソッド | localize(frames, fps) / localize_with_poses(frames, pose_results, fps) |
| 出力 | [{"start": float, "end": float, "action": str, "confidence": float}, ...] |
| 特徴 | スライディングウィンドウ + Temporal IoU NMS、ポーズキーポイント変化量統合 |
| 本番フック | backend="stgcn_real" (ST-GCN) / backend="slowfast_real" |
空間関係抽出 — spatial_relations.py
| 項目 | 詳細 |
|---|---|
| 関数 | get_spatial_relation(obj_a, obj_b, depth_a, depth_b) → str |
| 戻り値 | left_of / right_of / above / below / in_front_of / behind / near / touching / unknown |
| バッチ | extract_pairwise_relations(detections, depth_maps) → [{"subject_id", "object_id", "relation", "confidence"}, ...] |
| 追加 | MotionVectorEstimator — トラック履歴から速度ベクトル・方向を付与 |
今後のモデル統合優先度
| 機能 | 推奨モデル | 優先度 |
|---|---|---|
| 本番トラッキング | ByteTrack + YOLOX | 高 |
| 本番行動認識 | ST-GCN (skeleton) または SlowFast (RGB) | 高 |
| ショット境界(高精度) | PySceneDetect + CNN 分類器 | 中 |
| モーション推定 | オプティカルフロー (RAFT / Farneback) | 中 |
更新日: 2026-04-24