iPhone 牌認識テスト改善 → PDCA 精度ループ → スマートグラス Phase 0 の全作業を分解し、状態を常時更新。
最終更新: 2026-07-27 未明(第8報)— WBS 2 は 88% 到達。残りは ort 更新・自ホスト(慎重に実施)と学習(jitaku 待ち)のみ。以後は朝9:00 の PDCA 定期実行を監視— 🤖 24時間自走モード運用中(Claude Code が進捗のたびにこのページを自動更新。あなたの作業は「完成後の最終確認」まで一切不要)。
🔬 速報: AI 代替評価が完了し、「精度が悪すぎた」の主因を実証 — ①学習データと実物牌の見た目の違い(ドメイン差・実写一致上限72.8%) ②手ブレ・ピンボケ・暗所(JPEG や解像度はほぼ無関係)。①の対策(実牌ドメイン適応=2.14)が改善の本命、②は今夜デプロイ済みのブレ除外ゲート+警告表示で対処済み。
| ID | タスク | 状態 | 担当 | 期限 | 完了日/備考 |
|---|---|---|---|---|---|
| 1.1 | 本番モデル欠落の発見・復旧(P0-0)— bb8bf7a0 から回収・SHA256 検証・再デプロイ | ✅ 完了 | Claude | 7/26 | 7/26。本番 octet-stream 10.6MB 配信確認 |
| 1.2 | モデル読込の故障検出+version/EP/ms 常時表示+cache-bust+model-meta.json(#1) | ✅ 完了 | Claude | 7/27 | 7/26 前倒し。content-type+先頭バイト検査 |
| 1.3 | ort CDN 死亡時ガード(#2)— 読込失敗でもサンプル体験は生存 | ✅ 完了 | Claude | 7/27 | 7/26 前倒し |
| 1.4 | カメラライフサイクル(#3)— wakeLock・画面ロック復帰・track ended 監視・連打ガード・1080p 要求 | ✅ 完了 | Claude | 7/28 | 7/26 前倒し |
| 1.5 | iOS 26 クラッシュ対策(#4)— 150ms スロットリング+400回ごとセッション再生成 | ✅ 完了 | Claude | 7/28 | 7/26 実装。有効性判定は 1.11 で |
| 1.6 | 確定時 video.pause()+カメラエラー日本語案内(#5) | ✅ 完了 | Claude | 7/27 | 7/26 前倒し |
| 1.7 | ガイド枠のモード分岐(#6)— 6枚スキャンの上下44%クロップ解消+縦持ち下限 | ✅ 完了 | Claude | 7/27 | 7/26 前倒し |
| 1.8 | 精度直結の即効修正7点 — SCAN_CONF 復活(confThr連動)・➕を安定必須化・多重集合キー・dims 検証・conf% 表示・0z 可視化・セーフエリア・サンプル誤タップ保護・「20cm離す」文言 | ✅ 完了 | Claude | 7/27 | 7/26 前倒し |
| 1.9 | 誤認識フィードバック送信(#7)— worker meta/flag 対応デプロイ済・オプトイン UI・確定/✕削除時送信・pull-feedback の auto 除外+review 隔離 | ✅ 完了 | Claude | 7/29 | 7/26 前倒し。worker 疎通テスト済 |
| 1.10 | 再発防止(P0-H)— pdca-cycle a1 のデプロイ前 assert+check-model-health.py(content-type 監視・NG 時 LINE 通知) | ✅ 完了 | Claude | 7/28 | 7/26 前倒し。OK 動作確認済 |
| 1.11 | 🔌 jitaku-pc1 電源投入 → install-pdca-task.ps1 実行(Phase D) | 🔄 90% | あなた(物理) | 7/29(水) | 7/26 前倒しで電源投入済・23日ぶりオンライン復帰・初回 PDCA サイクル起動済(MahjongPDCA タスクは既存定義で稼働 — 定義の中身確認と上書き再登録が残) |
| 1.12 | 🤖 実機テストの AI 代替(4系統)完了 — ①ローカル実測: 学習ドメイン内 P=0.943/R=0.733・萬子が最弱(R 0.43〜0.52) ②劣化評価: 精度を壊す主犯は手ブレ(−0.100)>ピンボケ(−0.064)>暗所(−0.037)、JPEG/低解像度はほぼ無害 ③ブラウザE2E: 7/7 pass(本日改修の回帰込み・2回再現) ④投票シミュレーション: 27条件×18組×200試行で最適パラメータ特定 | ✅ 完了 | Claude(6 agents) | 7/27 | 7/26 夜完了。成果: tools/eval_onnx_local.py・eval_degraded.py・e2e-camera-ai.mjs・keep-vote-sim.mjs+実測 JSON 4本(docs-site/data/) |
| 1.14 | 🔬 実写クロスチェック(重要発見) — 実物牌フルセット写真(最良条件)でクラス一致上限 72.8%・7m/9m/7p/8p/西/白の6クラス全滅・誤りは conf 0.84〜0.94 の高信頼系統誤り。「精度が悪すぎ」の主因は手ブレ以前に牌面スタイルのドメイン差(学習データが FluffyStuff 様式のみ)と実証。※検証画像は中国式牌のため日本式リーチ牌では改善余地あり | ✅ 完了 | Claude | — | 対策の本命 = 2.14 実牌ドメイン適応へ |
| 1.15 | ⚡ 実測に基づく即効修正の前倒し適用 — KEEP を minVotes8/streak2 に変更(誤固定ほぼ半減の実測裏付け)/ 鮮鋭度ゲート(ブレフレームの票を投票から自動除外+「📷ブレ検出」表示)/ 暗所警告(「💡照明を明るく」表示)→ E2E 7/7 維持を確認して本番デプロイ | ✅ 完了 | Claude | — | 7/26 深夜 |
| 1.13 | 🤖 jitaku-pc1 の初回 PDCA サイクル貫通確認 — MahjongPDCA タスクは登録済・RunNow 起動済(Claude 非依存の Python+タスクスケジューラで稼働)。完走すれば pdca-state.json が自動更新されるため Claude が監視中。保険: 明日 09:00 の日次自動実行 | 🔄 監視中 | jitaku-pc1(自動)+Claude(監視) | 7/27 09:00 | ⚠ ブロッカー(新規): jitaku の Claude Code OAuth が23日オフラインで失効 — リモート dispatch(エラー自己修復・YOLOX 学習指示)が不可。PDCA 自体は影響なし。復旧は最終確認時に claude login 1回のみお願いする予定 |
| ID | タスク | 状態 | 担当 | 期限 | |
|---|---|---|---|---|---|
| 2.1 | ✅ KEEP 校正の複数フレーム化+14枚許容+健全性自動再校正 — 見落とし30%条件の成功率 73〜82%→96.5〜100%(校正到達100%)・ロック時間 12〜14s→4〜7s(sim v2 実測: keep-sim-v2.json) | ✅ 完了 | Claude(agent) | 7/26 | |
| 2.2 | ✅ 枠割当のグローバルシフト補正(median オフセット推定)+ロック済み枠も EMA 追従 — 手ブレ大(σ20px)の誤固定 4.4〜5.0%→0.8〜2.2%(1/2〜1/6) | ✅ 完了 | Claude(agent) | 7/26 | |
| 2.3 | ✅ KEEP 投票リングバッファ化(直近20票)— 初期誤票の永続を解消 | ✅ 完了 | Claude(agent) | 7/27 | |
| 2.4 | ✅ KEEP.conf の confThr 連動(max(confThr+0.05, 0.40))+スロット別の保留理由表示(票不足/一致低/conf低/安定待) | ✅ 完了 | Claude(agent) | 7/27 | |
| 2.5 | ✅ 赤5の2層投票 — 赤5フリッカーストレスで旧実装 35.5〜83% に崩壊する条件を 98.5〜100% 維持(sim v3 実測) | ✅ 完了 | Claude(agent) | 7/27 | |
| 2.6 | ✅ NMS 2段閾値+IoA 包含抑制(同一牌の二重カウント解消)— E2E 17項目の回帰 pass 確認済み | ✅ 完了 | Claude | 7/26 | |
| 2.7 | ✅ 混同ペア色サニティ(soft)— 9s/9p は赤の主軸(縦/横)で矛盾検出→conf減点+訂正候補保持、無赤8種の赤検出は照明かぶり疑いで減点。tiles 実測で較正済み | ✅ 完了 | Claude(agent) | 7/27 | |
| 2.8 | ort 1.27.0 化+webgpu/非JSEP 二段ロード(#27584/#26827 回避)+実機 smoke test | ⬜ | Claude+確認 | 8/6 | |
| 2.9 | ✅ ウォームアップ推論(NaN/Inf 検査)+実行時 wasm フォールバック(連続エラー5回で張替え)— iOS WebGPU 実行時故障対策 | ✅ 完了 | Claude(agent) | 7/27 | |
| 2.10 | ort 自ホスト(vendor/)+COOP/COEP(スコープ限定)+wasm マルチスレッド | ⬜ | Claude | 8/7 | |
| 2.11 | ✅ ズームスライダー(feature-detect・対応端末で自動表示+初期1.5倍)— 「離してズーム」でピンボケ回避。動作値の最終確認のみ実機で | ✅ 完了 | Claude | 7/27 | |
| 2.12 | ✅ requestVideoFrameCallback 化(同一フレーム二重推論排除・150ms スロットル維持)+完了後間引き(全ロック/14枚到達で 1000ms)+鮮鋭度ゲート(先行実装済) | ✅ 完了 | Claude(agent) | 7/27 | |
| 2.13 | ✅ テンソル再利用(3MB/フレームの GC 排除)+overlay 再確保抑止+imageSmoothingQuality=high(索子細線対策) | ✅ 完了 | Claude(agent) | 7/27 | |
| 2.14a | 🎯 実牌アトラス切り出し完了 — 実写3枚から 216/216 牌を切り出し(検出box+グリッド幾何)、クラス割当 199枚(92.1%)・34クラス全てに4〜8枚・検出全滅だった 7m/9m/7p/8p/西/白 も全数確保(全216セル目視検証済)。2種の実物セットの彫刻・光沢・手彩色テクスチャ = FluffyStuff と別ドメイン | ✅ 完了 | Claude(agent) | 7/26 | tools/extract_real_tiles.py+synth/real-tiles-atlas/(再生成可) |
| 2.14b | ✅ 合成パイプラインの実牌アトラス対応完了 — --tile-src real-atlas(混合率・角丸マスク・スケール正規化・花牌 distractor・萬子オーバーサンプリング)。スモーク評価で仮説を定量確認: 実牌スタイル100%で R 半減(0.733→0.365)・萬子 R 0.237 = 再学習の効果余地が大きい | ✅ 完了 | Claude(agent) | 7/26 | 後方互換維持・シード再現性維持 |
| 2.14c | ✅ 学習データ 5,000 枚の本生成完了(実写50%混合=78,037 タイル配置+萬子1.8倍+低画質+distractor 815)— 595MB。jitaku 復旧後に 1 dispatch で再学習まで回せるランブック(docs/train-real-atlas-runbook.md)も整備。検収条件: 実写一致 72.8%→85%+/萬子退行なし | ✅ 完了 | このPC | 7/26 | 学習実行のみ jitaku OAuth 復旧待ち(唯一の残ブロッカー) |
| 2.15a | ✅ E2E 拡張 10項目完了 — CDN断/カメラ拒否/track ended/400回セッション再生成/📸確定→タップ採点(14枚完全フロー)/feedback 送信 ON・OFF/縦持ちガイド枠/decode形状ガード/ブレゲート — 全 pass・既存7項目も維持・バグゼロ。本日改修は計17自動テストで検証済み | ✅ 完了 | Claude(agent) | 7/26 | tools/e2e-camera-ai-ext.mjs |
| 2.15b | sim v2(系統誤り・FP・ROI実効qモデルで投票再掃引) | ⬜ | Claude | 8/5〜 |
| ID | タスク | 状態 | 担当 | 期限 |
|---|---|---|---|---|
| 3.1 | 誤ロックスロットの個別訂正+38クラス手動パレット(訂正ペアを最高品質データとして送信) | ⬜ | Claude | 8/12 |
| 3.2 | セッションサマリ JSON(log-ml-progress.py 直貼り形式)+実効 fps EMA | ⬜ | Claude | 8/13 |
| 3.3 | 点数条件バー(ツモ/ロン・親/子・リーチ・ドラ)— 門前ツモ固定の解消 | ⬜ | Claude | 8/14 |
| 3.4 | ✕ボタン 44px 化+undo 操作スタック統一 | ⬜ | Claude | 8/15 |
| 3.5 | 📱 定点テスト(週2回・15分)— 火・土。✕削除・訂正がそのまま学習データに | ⬜ 継続 | あなた | 毎週 |
| 3.6 | feedback 30件到達 → PDCA 自動再学習 初回発火(GTX1050) | ⬜ | 自動(jitaku) | 8月中〜下旬 |
| 3.7 | 再学習モデルの萬子退行ガード → 合格なら自動デプロイ(a1・P0-H assert 済) | ⬜ | 自動 | 同上 |
| 3.8 | review キュー(✕削除画像)の人手ラベル確認 → val 昇格 | ⬜ | Claude+確認 | 8/22 |
| 3.9 | 🎯 field 精度(実地認識率)の一次データ確定 — field_val_map50 ≠ null に | ⬜ | 判断 | 8/31 |
| ID | タスク | 状態 | 担当 | 備考 |
|---|---|---|---|---|
| 4.1 | Go/No-Go: XREAL One Pro + Eye 発注判断(¥93,780) | ⬜ | あなた | WBS 3.9 の結果を見て |
| 4.2 | T-0 資産回収の完遂(.pt R2 退避 — jitaku 復旧後) | ⬜ | Claude | 1.11 完了後いつでも |
| 4.3 | YOLOX 再学習(Apache 2.0 回帰・AGPL 回避)+souzu_v1 と mAP 比較 | ⬜ | jitaku-pc1 | C-1。−5pt 以内がゲート |
| 4.4 | Unity 6 + XREAL SDK 疎通(T-1: fps/レイテンシ/画角×姿勢) | ⬜ | Claude+実機 | 発注後 |
| 4.5 | 一人称データ収集 500〜1,000枚+外注検収(¥10〜15万) | ⬜ | 収集+外注 | 条件マトリクス: 牌3種×照明3×卓2 |
| 4.6 | 老眼被験者テスト(実牌+HUD 同時視認)— C-2 ゲート | ⬜ | あなた | 教室ユースケースの成立条件 |
| 4.7 | NPU 変換検証(ONNX→QNN/LiteRT) | ⬜ | Claude | m-2 ゲート |
| 4.8 | KWS 技術選定スパイク(sherpa-onnx/Vosk 比較・≤300ms) | ⬜ | Claude | 誤起動検証込み |
| 4.9 | Phase 0 Go/No-Go 判定会(4ゲート: 老眼・画角・NPU・YOLOX mAP) | ⬜ | あなた | 9月末目標 |