Seminar 03 · 2026 June

Apple Silicon 向け
3D Gaussian Splatting
実装の進捗

brush との品質差は評価プロトコル不整合に大半が起因。評価条件整合で brush と同等以上の品質に到達。

7322023 大竹律輝 — 松田研究室2026.06.26
01 前回のおさらい

第 2 回ゼミ時点と 今月の到達

  • 研究テーマと 3 軸貢献
    • 搭載端末で を単一デバイス完結させるパイプライン
    • (1) Apple Silicon 最適化の自作実装 / (2) 抽象コストの定量化 / (3) 活用の実証
  • 第 2 回時点 (2026-05-22)
    • 自作実装 検証 PSNR 26.27 dB / 学習時間 26m32s
    • との差は -11.79 dB と報告
    • 次月計画: SSIM カーネル / MCMC 完全実装 / 研究室 GPU CUDA 参考値
  • 今月 (2026-06-26) の 1 行サマリ
    • その -11.79 dB評価プロトコルの不整合に大半が起因と判明
    • 条件を揃えると Lego 36.11 dB (+9.84 dB) / 8 シーン平均 33.49 dB
今月の結果サマリ

Lego + 9.84 dB / 8 シーン平均で brush を上回り

Lego val PSNR
36.11 dB
+ 9.84 dB (vs 26.27)
8 シーン平均 (vs brush 同条件)
33.49 dB
+ 0.63 dB (vs 32.86)
残差 (brush 原著 test 200視点)
- 3.33 dB
34.07 vs 37.40 (検証 100視点で代用)
進め方は 2.1 評価プロトコル不整合の発見2.2 Apple Silicon 最適化の 2.3 前月計画の達成状況 の順。残差 -3.33 dB は隠さず disclose、次月の最優先課題に位置付ける。
§ 2.1 — 評価プロトコル不整合

前月の -11.79 dB は本実装の品質不足ではなかった

  • 発見
    • 本実装: 学習・評価とも white-bg 前提
    • : 学習・評価とも premultiplied 前提
    • 互いの前提で測ると両者とも 1.7 dB 程度に崩壊する対称な結合
  • 手当て (設定 1 行)
    • gt_convention = "premultiplied"を揃える
    • Lego 36.11 dB (+9.84 dB) に上昇
    • 点の不透明度を学習中に緩やかに減衰させる手法を加えて 8 シーン平均 33.49 dB / 合計 5h05m
  • 残差の disclose (正直)
    • 原著論文の 37.40 dB に対して、本実装は 34.07 dB (検証 100 視点での代用) → -3.33 dB の残差
    • 原因はテスト 200 視点の評価データを完全には DL していない評価データ側の不足、次月の最優先課題
§ 2.1 — 数値対比

本実装と brush の主要数値の対比

評価条件本実装brush差分
Lego 検証 100 視点 (プロトコル整合済)
学習・評価とも premultiplied 前提
36.11 dB32.04 dB+4.07 dB
8 シーン平均 検証 100 視点 (同上)
NeRF Synthetic 全 8 シーンの平均
33.49 dB32.86 dB+0.63 dB
Lego テスト 200 視点 (brush 原著条件)
テスト分割の評価データが未整備、部分集合 36 視点で代用
34.07 dB37.40 dB-3.33 dB

差分の符号は本実装 − brush。上 2 行はでの比較、下 1 行は brush 原著論文の数字との対比。

§ 2.1 — レンダリング比較

Lego レンダリング: 先月 vs 今月

Lego レンダリング比較。上段=正解、中段=先月、下段=今月。
検証 100 視点から 3 視点抜粋。上段 = 正解 / 中段 = 先月 (PSNR 25.30 dB / 22m14s) / 下段 = 今月 (36.11 dB / 41m54s)。 中段は輪郭は得られているが細部 (金属・キャタピラ・コックピット内部) の精緻さが届かず、下段は正解とほぼ同等。
§ 2.2 — 学習フローと改善位置

今月手を加えた 4 箇所 (緑) と 8 候補の

データ入力 (学習画像と正解画像、カメラ姿勢)
① §2.1学習・評価データの前景背景処理を premultiplied に整合 +9.84 dB
順伝播: 3D 点群を 2D 画面へ射影 → タイル分割 → ラスタライズ
損失計算 (L1 + SSIM)
逆伝播 (勾配計算)
Optimizer (Adam) によるパラメータ更新
② §2.1点群整理 (Refinement) で点の不透明度を緩やかに減衰 品質・点数・時間すべて改善
③ §2.2を学習中に段階上昇 +0.107 dB / +10%
④ §2.2反復数 (早期停止 / 全反復) +0.077 dB / -24%
学習済モデル (点群+色/不透明度パラメータ)
§ 2.2 — 8 候補の構造化

Apple Silicon 最適化は 算法レベル + シーン適応 が効く

  • 当初想定 (反証された)
    • 「Apple GPU 専用機能 (タイル単位描画 / ユニファイドメモリ / SIMD 集約) を活かしたカーネル直接最適化が研究の主要貢献である」
  • 8 候補の実測結果
    • 5 件 → 全て学習時間で微小悪化または不変
    • の段階上昇 → 8 シーン平均 +0.107 dB / +10% (唯一の universal な改善)
    • 反復数 → 平均 +0.077 dB / 学習時間 -24% (両軸改善)
  • 卒論への取り込み方
    • 方法論章で「Apple GPU 専用機能の theoretical advantage と実 workload での empirical gap」を構造化する材料に位置付ける
§ 2.2 — 第 2 軸 (wgpu 抽象コスト)

研究室 V100 GPU: wgpu > CUDA 直 の方向

実装PSNR学習時間抽象レイヤ
(wgpu→Vulkan)37.46 dB8m24swgpu 抽象あり
3DGS 原著実装 (CUDA 直)28.38 dB10m37s抽象なし (baseline)
(CUDA + PyTorch 拡張)32.94 dB5m03sPyTorch 経由
wgpu 経由の が CUDA 直の原著実装より 約 21% 速い。M4 Max 上 (brush が本実装より 2.59 倍速い) と整合 → 「 抽象コスト ≪ 実装最適化レベル」が 2 機種で確認。 当初テーゼ「wgpu 抽象は重い」は実測で反証、卒論第 2 軸の主張を「抽象コストよりも実装最適化レベルが支配的」に転換する。
§ 2.3 — 前月計画 3 項目の達成状況

前月計画の 判定

  • (1) SSIM カーネル改良 — 意図的 defer
    • 2.2 のカーネル直接最適化と同類スコープと判明、得られた ROI 上限の実測 (5 連続で微小悪化または不変) を根拠に優先度下げ
    • 「放棄」ではなく「8 候補の実測から judgment」
  • (2) の完全実装 — 実装完了、PSNR 復活せず
    • 3 設計欠陥を修正して実装完了。ただし noise 注入パラメータが論文設定と数十倍ズレて PSNR 17.4 dB に留まる
    • 実装の問題ではなくハイパーパラメータ整合の問題、卒論の負の発見章に独立した一節として整理
  • (3) 研究室 GPU CUDA 参考値 — V100 完了
    • V100 上で (37.46 dB / 8m24s)、3DGS 原著 (28.38 / 10m37s)、 (32.94 / 5m03s) の 3 種取得済
    • A6000 / RTX 6000 Ada は研究室機材の占有状況により次月
03 次月の計画

仕上げと 実データ拡張 へ向けた 3 項目

次月は評価条件を揃えた最終比較の完成と、研究範囲の実データへの拡張を進める。 なお、方法論章の負の発見ドラフト (436 行) は手元に整備済で、本文への取り込みは (1) の追加データが揃い次第並行で進める。

  • (1) 研究室 GPU CUDA 参考値の完成
    • A6000 / RTX 6000 Ada で ・原著 3DGS・ の残り bench
    • 第 2 軸 (wgpu 抽象コスト) の三層対比を 3 機種まで拡張
  • (2) 原著論文と同条件のテスト評価
    • を完全 DL して本実装で再評価
    • 残差 -3.33 dB を最終的に確定する (現状は部分集合 36 視点で代用)
  • (3) 実写データセットへの拡張検証
    • 本実装は合成データ (NeRF Synthetic) でのみ検証
    • Mip-NeRF 360 / Tanks & Temples 等で同手順で学習・評価
    • や算法レベル改善の効果が実データでも保たれるかを確認
Q & A

想定問答 一覧

Lego 26.27 → 36.11 dB / 8 シーン平均 +0.63 dB vs brush / 残差 -3.33 dB (test 200 視点)

  1. 前月の brush 37.38 dB と今月の brush 32.86 dB は何が違うのか?
    前者は brush 原著論文のテスト 200 視点での値、後者は本実装と評価条件を揃えるために検証 100 視点 + 同じで再測した brush 自身の値。同じ checkpoint を異なる評価条件で測ったもので、brush の品質が下がったわけではない。
  2. 本実装が brush を +0.63 dB 超えたなら、原著論文の 37.40 dB に対しても勝てるはず?
    残差 -3.33 dB が依然存在する。原著論文がテスト 200 視点で評価しているのに対し、本実装の同条件評価が未整備で検証 100 視点でしか測れていないため。次月にテスト 200 視点を完全 DL して再評価し、最終的に確定する。
  3. 「評価プロトコルの不整合」とは具体的にどういう不整合だったのか?
    透明背景の扱い。本実装は学習画像を白背景 blend 済みで渡し評価も白背景前提、 は α 値で前景を premultiply した形式で学習・評価していた。同じ checkpoint を異なる前提で測ると両方とも 1.7 dB に崩壊する対称な結合があり、前提を揃えてから比較する必要があったのに前月は気付かず -11.79 dB と報告していた。
  4. 5 連続のカーネル直接最適化が全部効かなかったのはなぜ?
    Apple GPU の hazard tracker による暗黙の同期挿入、半精度変換のオーバーヘッド、SIMD グループ間の調整コスト等、Apple Silicon 固有の制約が theoretical な改善幅を打ち消した。卒論の方法論章で「Apple GPU 専用機能の theoretical advantage と実 workload での empirical gap」を構造化する材料に位置付ける。
  5. 完全実装は失敗したのか?
    実装そのものは完成 (前回特定した 3 設計欠陥を修正)。ただし noise 注入のパラメータが論文設定と数十倍ズレて PSNR が 17.4 dB に留まる。実装の問題ではなくハイパーパラメータ整合の問題で、卒論の負の発見章に独立した一節として整理。
  6. 第 2 軸 ( 抽象コスト) の主張が「重い」から「軽い」に変わったのは大丈夫か?
    これも卒論の貢献の 1 つとして位置付ける。当初想定の反証であり、「abstraction overhead よりも implementation maturity が支配的」という実測ベースの結論は本研究独自の data point。第 2 軸全体は「wgpu 抽象コストを定量化した」のままで、結論の方向が「重い」から「実装差に埋もれる」に変わった。
  7. 「同等以上」と言うが Lego +4.07 dB / 平均 +0.63 dB だけで、印象ほど勝っていないのでは?
    8 シーン平均は元々 16 dB レンジの幅 (ficus 〜 hotdog) が存在し、平均値での +0.63 dB は実質的に同等水準と表現できる。重要なのは「以前は -11.79 dB と思っていたものが、評価条件を揃えると同等水準だった」という発見の方で、絶対値の超え幅は副次的。
  8. 次月計画の (1) (2) (3) の優先順位は?
    (1) CUDA 参考値完成は研究室機材の占有解放待ち、(2) test 200 視点評価は環境整備のみで自走可能、(3) 実写データセット拡張は (1)/(2) と独立した実データ拡張。並行で進める。卒論本文への組み込みは (1) のデータが揃い次第、手元の負の発見ドラフト (436 行) と合わせて進める。
  9. なぜ に絞る? NVIDIA では?
    の特徴で「端末完結パイプライン」と親和性が高い。NVIDIA は CUDA で完結済みだが Apple 上の整備は未着手で、ここに研究的余地がある。
  10. 実写データセット (Mip-NeRF 360 / T&T) に拡張する狙いは?
    本実装は合成データ (NeRF Synthetic) でのみ検証している。前景背景処理の慣習や算法レベル改善の効果が実データでも保たれるかを確認することで、卒論の主張 (評価プロトコル整合 + 算法レベル + シーン適応) の generalizability を強化する。
1 / 12