DEV NOTE — 最終更新 2026.07.11

SwingCompassAI 開発ノート評価ハーネス立ち上げ — たきコーチ × ゆきおさん 共同開発

目次

今の状況(30秒サマリー)

STATUS — 2026-07-11 時点

お互いの宿題

担当タスク状態
たきコーチ評価用動画の追加収集(目標: 正面・後方 各10〜20本、環境バラバラで)進行中 4/20〜40
動画セット第1弾の送付(eval_data_20260711.zip: 動画4本 + manifest.json)送付済み
ゆきおさんクラブ検出モデル(best.pt)の再学習検討 — 現状の評価動画で検出ゼロ相談したい
YOLO 有効時のみ出るバグ修正(下記 発見①)未着手
シャフト検出率の指標修正(下記 発見②)未着手
スコア再現性(同一設定で±8点)の扱い方針(下記 発見③)相談したい
ゆきおさんへ: zip を backend/eval_data/ に展開すると、こちらと同じ videos/ + manifest.json になります。GPU 環境でのベースライン取得はそのまま python -m app.eval.run --out baseline_v1 でOKのはずです。

エントリ #1 — 評価ハーネス動作確認(2026-07-11 追加)

やったこと
1

環境構築・配管チェック

ブランチ取得 → Docker イメージビルド → --selftest(合成データでの動作確認)が正常終了。

2

評価データセット第1弾の整備

動画4本を配置し、映像から向きを判別してリネーム。manifest.json を作成(下表)。

3

ベースライン計測(baseline_v1)

4本すべて解析成功・失敗ゼロ・警告なし。結果は backend/eval_runs/baseline_v1/

4

YOLO 入り再計測と原因調査(baseline_v1_yolo)

「YOLO26 利用不可」警告の原因を追跡 → ライブラリを入れて再計測 → それでもシャフト角度 0.0 → モデルの生検出を直接確認して原因を特定。

評価データセット(動画4本)

DATASET — eval_data/videos/
ID向きクラブ撮影環境
front01正面5I屋内シミュレーター・明るい照明。右斜め前から(真正面ではない)
front02正面9I屋内シミュレーター・暗め(夜間照明)
back02後方7I屋外コース・晴天
back03後方DR屋内シミュレーター。HEVC(.MOV) から H.264 mp4 に変換済み

README の方針どおり「一度固定したら差し替えず追加のみ」。本格運用のベースラインは動画が揃った時点で取り直す想定。

ベースライン計測結果

baseline_v1(Hough のみ・現行本番相当)
サンプル骨格検出率ジッタ(体幹)ジッタ(手首)総合スコア処理時間
front01100%0.000690.0015595.9s
front02100%0.00130.0040592.6s
back02100%0.000760.0010653.9s
back03100%0.00270.0043625.5s

ジッタ = 骨格推定のフレーム間ブレ(小さいほど安定)。back03(暗め室内 × ドライバーの速い振り)が最大で、改善余地の測定材料になる。

YOLO クラブ検出の調査結果

結論 — モデルが検出ゼロ

models/best.pt(3月作成)は正しくロードでき、クラス構成も clubhead / shaft / ball で正しいものの、評価動画4本のどのフレームでも検出ゼロでした(信頼度しきい値を 0.15 まで下げても空)。屋外晴天・屋内シミュレーターの両方で同じ結果です。つまり現状の本番アプリも実質 Hough(簡易手法)のみで動いているのと同等で、再学習が必要な状態です。今集めている評価動画がそのまま学習データ候補になります。

あわせて見つかった3つの発見

補足: Dockerfile は意図的に ultralytics を除外(イメージ軽量化)。今回は使い捨てコンテナに一時インストールして計測した。ラン結果は baseline_v1(Hough のみ)と baseline_v1_yolo の2つを保存済みで、比較レポートも生成済み。

更新履歴

日付エントリ要点
2026-07-11#1 評価ハーネス動作確認環境構築・動画4本でベースライン取得・YOLO 検出ゼロと3つの発見