File size: 5,809 Bytes
17f039f 0a9033f 88ee5cb 17f039f 08071f9 | 1 2 3 4 5 6 7 8 | <!doctype html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>全身RTMW3D · GPU比較</title><style>
*{box-sizing:border-box}body{max-width:1280px;margin:32px auto;padding:0 22px;background:#f5f5f0;color:#20352c;font:14px/1.7 system-ui,sans-serif}h1{font-size:26px}section{background:#fff;border:1px solid #dce4d8;border-radius:9px;padding:20px;margin:16px 0}button,select,input{font:inherit;padding:8px}button{background:#194f40;color:white;border:0;border-radius:5px;cursor:pointer}button:disabled{opacity:.4;cursor:default}label{display:inline-flex;gap:7px;align-items:center;margin:6px 18px 6px 0}input[type=number]{width:76px;border:1px solid #cbd5c5;border-radius:4px}video{max-height:280px;width:100%;background:#102a23}table{border-collapse:collapse;width:100%;font-size:12px}td,th{padding:9px;border-bottom:1px solid #e3e8df;text-align:left}#models{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}#status{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}small{color:#718168}a{color:#286951}.table-wrap{overflow-x:auto}.bad{color:#a04c33}canvas{display:none}.note{font-size:12px;color:#6e7f65}</style><script type="module" src="./benchmark.js"></script></head><body>
<h1>足首・足先を含む全身RTMW3DのWebGPU比較</h1><p>全候補は133点を保持します。同じモデルと動画入力で、数値形式・GPUメモリ再利用・実行経路を比較します。</p><p class="note">1〜4入力は1セッションを時分割する推論負荷です。物理カメラの同期・三角測量・SteamVR送出の実測ではありません。映像は端末から送信しません。</p><p class="note">等価FP32実験:gpu-decoderは復号のMinだけをLess+Whereへ変え、Graph Captureを妨げる配置制約を比較します。head-gemmは時間を占める出力直前の2つの畳み込みも、同じFP32重みの明示的im2col+行列積へ置き換えます。split8は積の和を8分割して最後に足します。学習済み重み・133関節・入力解像度を維持します。CPU変換検査と、実GPUの速度・誤差は分けて確認します。</p><label><input id="original" type="checkbox">FP32で未パッチJSEP版の標準経路も比較する</label><p class="note">同じORT 1.27.0 JSEPのパッチ前後を比較します。別実装のwebgpu-only配布物とは区別します。</p>
<p><a href="./mediapipe.html">MediaPipe Pose / Holistic比較</a> · <a href="./native_benchmark.py" download>ネイティブGPU診断スクリプト</a></p><p><button id="native-input" disabled>同じ入力を端末内へ保存</button> <small>ネイティブ比較用。正規化済みの画像3枚を含む診断ファイルです。端末内でのみ使用してください。通常の結果JSONには画像を含みません。</small></p>
<section><h2>1. ローカル動画と人物範囲</h2><input id="video-file" type="file" accept="video/*"><video id="video" controls playsinline muted></video><div><label>ROI左 % <input id="x" type="number" value="0" min="0" max="99"></label><label>ROI上 % <input id="y" type="number" value="0" min="0" max="99"></label><label>ROI幅 % <input id="w" type="number" value="100" min="1" max="100"></label><label>ROI高 % <input id="h" type="number" value="100" min="1" max="100"></label></div><small>全身と足先が入る範囲を指定してください。3時刻の同じROIを各モデルで使用します。解像度はモデル入力288×384にだけ変換します。</small></section>
<section><h2>2. 比較候補</h2><div id="models">カタログ取得中…</div><p class="note">同じLまたはXのFP32基準も自動で測定します。FP32との差は正解データに対する精度ではありません。初回は選択したモデルだけ取得・キャッシュします。</p><h2>3. 実行経路</h2><div id="modes"></div><p class="note">標準経路も基準として自動測定します。GPUバッファ再利用とGraph Captureも、入力転送・GPU完了・133関節の読戻しを含めて測ります。Graph Captureで未対応演算があれば失敗理由を記録します。差分基準は身体・股関節・膝・足首・足先それぞれXY p95 ≤ 3px、Z p95 ≤ 5cm、信頼度低下なしです。観測不足では合格にしません。</p><label><input id="profile" type="checkbox" checked>計測後に別セッションで演算別GPU診断を記録</label><p class="note">診断にはtimestamp-queryが必要です。診断時の負荷は速度計測へ含めません。JSONに動画名・映像・端末識別情報は保存しません。</p><label>入力相当数 <select id="views"><option>1</option><option>2</option><option>3</option><option>4</option></select></label><label>計測推論回数 <input id="iterations" type="number" value="200" min="12" max="1000"></label><button id="start" disabled>選択した全身モデルを比較</button> <button id="stop" disabled>停止</button> <button id="download" disabled>結果JSON</button><pre id="status" role="status"></pre></section>
<section class="table-wrap"><table><thead><tr><th>全身モデル</th><th>実行経路</th><th>容量 MB</th><th>p50 / p95 ms</th><th>合計fps</th><th>入力あたりfps</th><th>身体・足 XY / Z p95</th><th>足首 XY / Z p95</th><th>足先 XY / Z p95</th><th>判定</th></tr></thead><tbody id="results"></tbody></table></section><p><a href="https://github.com/open-mmlab/mmpose" target="_blank" rel="noreferrer">元モデル:OpenMMLab MMPose</a> · <a href="https://huggingface.co/RabbitDaisuke/rtmw3d-webgpu-onnx" target="_blank" rel="noreferrer">モデル・比較レポート</a></p><canvas id="crop" width="288" height="384"></canvas></body></html>
|