Newer
Older
SmTIAS-LightSim / docs / 05_TECH / TECH_10_残差主因候補の網羅整理.md

残差 2.63× の主因候補の網羅整理 (Residual Cause Candidates Enumeration)

本ドキュメントは TEST_01 Step 8-13 で確定した シミュ vs 実機の残差 2.63× の主因候補を網羅的に整理したものである.Step 8-14 以降の物理モデル精緻化で「何を試すか」の判断材料として作成した.

結論(先に) (Conclusion First)

順位候補影響度検証コスト推奨理由
🥇 1 位A1. 内壁の非 Lambertian 性(光沢成分)✓ クリア—2026-06-02 検証完了:3×3 グリッドで全 9 パターンが実機方向に作用しない(むしろ悪化)と判明.純 Lambertian が実機挙動に最も近い.§ A1 検証結果 参照
🥇 1 位A8. 反射率 R=0.85 → 0.89(物理整合点)中低Step 8-6 で導出済の物理整合点.新方針 (linear+LSC) 下での再評価.A1 クリアで繰り上げ
🥈 2 位A9. max_depth 8 → 16+小〜中低後段多重反射の取りこぼし可能性.A1 クリアで繰り上げ
🥉 3 位B1. 筐体内部の幾何精度中高3D プリンタの実物理表面 vs 設計表面.A1 クリアで繰り上げ
4 位D1. シミュ ROI と実機 ROI の物理的整合✓ クリア—2026-06-02 検証完了:物理サイズ差 < 1%・中心位置差 < 1 mm で整合.残差主因から除外(§ D1 検証結果 参照)
4 位A2/A3. LED 配光の個体差・樹脂ドーム小〜中高データシート Lambertian 整合済 (TECH_09)

→ 2026-06-02 更新: 当時最有力だった A1 を 3×3 グリッドで検証したところ実機方向に作用しないと判明(§ A1 検証結果).現状の最有力は A8 反射率 R=0.89.次いで A9 max_depth と B1 幾何精度.

背景 (Background)

Step 8-13 で 真の linear ドメイン比較 (DNG+LSC 順方向適用 vs シミュ orthographic) を実施した結果,残差 2.63× が確定した(TEST_01 Step 8-13 参照).これは TECH_06 で予想した「真の残差 2.66×」とほぼ一致する値.

主因の絞り込み状況:

候補絞り込み状況出典
LSC 補正残差排除TECH_07(実機側で順方向適用が確立)
シミュ側のドメイン不一致(ガンマ等)排除TECH_08(網羅チェック済み)
LED 配光のモデル誤差ほぼ排除TECH_09(データシート Lambertian と数値一致)
残るのは「シミュ物理モデル誤差」絞り込み対象(本ドキュメント)—

候補の網羅整理(5 カテゴリ 18 項目) (Comprehensive Candidate List)

A. 物理光学モデル系(最有力候補を含む)

ID候補現状影響度検証状況
A1内壁の非 Lambertian 性(光沢成分)diffuse BSDF(完全 Lambertian)✓ クリア2026-06-02 検証完了:blendbsdf (diffuse + roughconductor) で weight×alpha の 3×3 グリッド全 9 パターンを実走→全パターンが純 diffuse より悪化または不変.§ A1 検証結果 参照
A2LED 個体差の配光ばらつき全 LED 完全均一小18 個平均で均される
A3樹脂ドーム形状の個体差データシート Lambertian 仮定小〜中実物の SMD 2835 ドームは樹脂で微妙な前方凸の傾向.データシート整合は TECH_09 で確認
A4LED 駆動電流のばらつき全 LED 完全同じ radiance小18 個並列接続で電流分配誤差は通常 ±5% 以内
A5発光面の物理サイズ2.8mm 角(パッケージサイズ)小Step 8-7 で 1.5mm 角試行.形状不変,mean のみ変化
A6LED 方向(光軸)全 LED (0, 0, -1)小実機の基板は平面で妥当
A7LED 位置精度Fusion STL 抽出済小Step 8-9 で正確化済(1% 以内の形状変化)
A8反射率 R = 0.85 → 0.89R=0.85(暫定)中Step 8-2 で 0.75〜0.92 スイープ済.Step 8-6 で物理整合点 R≈0.89 を導出.新方針下で再評価の価値あり
A9max_depth = 8 → 16+d=8小〜中Step 8-4 で 8→12 試行.勾配やや改善.CLAUDE.md には「キャリブは d≥12 推奨」と記載.新方針下で再評価の価値あり

B. 幾何モデル系

ID候補現状影響度検証状況
B1筐体内部の幾何精度Fusion 360 設計 STL中の可能性3D プリンタの積層・サポート跡・微細な凹凸はモデルに含まれない.実機 3D スキャンで定量化可能だが高コスト
B2メッシュ離散化精度STL → PLY 変換時の三角形数小〜中細かい曲面は離散化される
B3評価板の位置・向きFusion 360 設計通り小既知の精度(CAD 通り)

C. センサ・カメラ系(タイプ II 構造的差異)

TECH_08 §許容している構造的差異 のタイプ II 項目.白板撮影では許容と判断したが完全排除不能.

ID候補現状影響度検証状況
C1絞り・口径食orthographic で cos⁴ なし小実機側 lscMap で補正済(残差あり)
C2AF(焦点モデル)orthographic 無限遠小白板 DoF 内固定で許容
C3ピクセル積分点サンプリング + spp小spp=1024 で緩和
C4センサノイズなし小白板高輝度で相対影響小

D. 評価方法系

ID候補現状影響度検証状況
D1シミュ ROI と実機 ROI の物理的整合シミュ (24, 37, 464, 450) / 実機 (539, 1015, 1400, 1409)✓ クリア2026-06-02 検証完了:物理サイズ差 < 1%,中心位置差 < 1 mm.残差主因から除外(§ D1 検証結果 参照)
D2mean アンカー target_mean=207.82 の精度実機 1 ショットの値小形状指標には影響なし

E. 環境・運用系(実機側)

ID候補現状影響度検証状況
E1LED 温度上昇による光出力低下シミュは温度概念なし小18 個・通常室温で安定
E2筐体内壁の汚れ・経年劣化新品仮定小新品評価なら無視可

優先度評価の根拠

🥇 1 位: A1 内壁の非 Lambertian 性(光沢成分)

物理的根拠:

  • 現状の Mitsuba diffuse BSDF は 完全 Lambertian(cos θ で散乱)を仮定
  • 実物理: 3D プリンタ白フィラメント(PLA / ABS 等)は マット表面に見えても微妙な specular 成分を持つことが多い
  • 鏡面反射成分があると 多重反射の経路が変わり「形」が変化 する可能性が高い

変化が「形」に効く機序:

  • LED 直接光が壁に当たる → 光沢成分があれば 特定方向に強く反射
  • diffuse 100% なら均等分散だが、光沢があれば 評価板の特定領域に集中 する経路ができる
  • これが Y 軸単調勾配の「上端も均等に明るくならない」現象に対応する可能性

実装方法:

  • Mitsuba の roughconductor か roughdielectric を diffuse と混合(blendbsdf)
  • パラメータ: roughness(粗さ)と diffuse/specular 比
  • 物理動機: 3D プリンタ素材の実物理特性に近づける

期待効果:

  • 数値: 反射成分の方向性で多重反射経路が変化 → CoV / 勾配が動く可能性
  • 形: Y 軸単調勾配が崩れて中央ピーク楕円に近づく可能性(最も期待できる)

🥈 2 位: A8 反射率 R = 0.85 → 0.89(物理整合点)

物理的根拠:

  • 現状 R=0.85 は暫定値.Step 8-6 で 物理整合点 R≈0.89 が導出済(規格 LED radiance との物理的一致点)
  • インテグレーティングスフィア近似 1/(1-R) で R=0.85 → 0.89 は 多重反射ゲイン 6.67 → 9.09(1.36×)

変化が「形」に効く機序:

  • 反射率上昇 → 多重反射量増加 → 評価板への ambient 成分(均一光)が増える
  • Y 軸単調勾配の「上端の暗さ」がやや軽減される可能性

実装方法:

  • configs/scene_baseline.yaml の printer_white.reflectance を 0.85 → 0.89 に変更
  • spp / max_depth は据え置き

期待効果:

  • 数値: 過去 Step 8-2 で「弱い二次レバー」と判明済.CoV 数% 改善
  • 形: わずかに均一化方向だが大きな変化は期待しにくい

🥉 3 位: A9 max_depth 8 → 16+

物理的根拠:

  • 現状 max_depth=8 で多重反射の 後段(5〜8 回反射目)が打ち切られる可能性
  • 過去 Step 8-4 で 8→12 試行.CLAUDE.md には「キャリブは d≥12 推奨」と記載
  • 新方針(DNG+LSC linear)下では未再評価

実装方法:

  • configs/scene_baseline.yaml の max_depth を 8 → 16(または 12)
  • レンダ時間は depth に概ね比例(8.5 分 × 2 ≈ 17 分)

期待効果:

  • 数値: 多重反射の累積で勾配が緩和される可能性
  • 形: わずかに均一化方向

候補の組み合わせ評価

3 候補は 物理的に独立 なので組み合わせて試せる:

組み合わせ期待
A1 + A8 + A9全部入り.最大改善を狙う.レンダ時間 約 17 分
A8 + A9既存方針の延長.低コスト.大幅改善は期待しにくい
A1 単独「形」改善の最大候補単独.BSDF 実装が必要

ユーザー認識との差分整理

ユーザー認識(2026-06-02 議論)私の見立て差分
「LED 配光が一番影響」A2/A3 = 6 位(影響度 小〜中)TECH_09 でデータシート Lambertian 整合済みを踏まえて優先度低下
「筐体の反射率」A8 = 2 位賛成.物理整合点 R=0.89 への調整は次の試行候補
「反射回数」A9 = 3 位賛成.新方針下で再評価の価値あり
─A1 内壁の非 Lambertian 性が最有力(新規追加)私からの追加提案.完全 Lambertian は理想化しすぎ

「やらない」と判断したもの

以下は明示的に 本ドキュメントの優先度から除外 した:

候補除外理由
C1〜C4(タイプ II 構造的差異)TECH_08 で「白板撮影では許容」と判断済.舌模型評価時に再考
B1 筐体内部の幾何精度検証コスト高(実機 3D スキャン等が必要).他の候補を試した後の最終手段
A2/A3 LED 配光の個体差データシート Lambertian 整合済(TECH_09).実物の個体差ばらつきは実測ゴニオフォトメータが必要で高コスト
E1/E2 環境・運用系新品撮影・通常室温で影響軽微

A1 検証結果(2026-06-02 完了)

候補リストで当時 🥇 1 位だった A1「内壁の非 Lambertian 性(光沢成分)」 を Step 8-14 候補 β として 3×3 グリッド感度分析で検証したところ,**どの組み合わせも実機方向に作用しない(むしろ悪化)**ことが確定した.

検証手順

  1. スキーマ拡張: src/sm_tias_lightsim/scene/schema.py に RoughConductorBSDFConfig (alpha, distribution) と BlendBSDFConfig (weight + components×2,forward reference + model_rebuild()) を追加.MaterialConfig Union を拡張.後方互換は既存 scene_baseline.yaml のスモークテストで確認
  2. Mitsuba dict 変換拡張: src/sm_tias_lightsim/scene/materials.py の _build_bsdf_dict を再帰ヘルパとして切り出し.blendbsdf のネスト対応
  3. テンプレ YAML: configs/scene_baseline_blend.yaml を作成.printer_white のみ blendbsdf (diffuse R=0.85 + roughconductor material="none") に置換
  4. スイープ実行: scripts/sweep_blend_bsdf.py で weight ∈ {0.05, 0.15, 0.30} × α ∈ {0.1, 0.3, 0.6} の 9 ジョブを順次 sm-render + sm-evaluate.各 8.4 分 × 9 = 75.5 分.eval は configs/eval_baseline_dng_target.yaml (linear + mean アンカー 207.82)
  5. 比較パネル: scripts/build_blend_bsdf_panel.py で 3×3 輝度マップ(shared vmin/vmax 1%/99% percentile)+ 数値表 PNG を生成

結果(CoV / 勾配% / C/P / 動径 min/max)

ベースライン純 diffuse (w=0): 0.1826 / 24.65 / 1.327 / 0.615 実機 TARGET: 0.0695 / 8.35 / 1.091 / 0.860

weight \ α0.1(鋭い)0.3(中)0.6(粗い)
0.050.192 / 24.8 / 1.33 / 0.620.189 / 24.9 / 1.33 / 0.620.185 / 24.4 / 1.32 / 0.62 ← 最良
0.150.213 / 26.0 / 1.35 / 0.610.204 / 26.6 / 1.36 / 0.600.193 / 25.5 / 1.34 / 0.61
0.300.243 / 26.8 / 1.37 / 0.59 ← 最悪 CoV0.227 / 29.0 / 1.41 / 0.57 ← 最悪 形0.205 / 27.0 / 1.37 / 0.59

観察された傾向

軸効果
weight ↑(光沢強化)CoV / 勾配 / C/P すべて 単調悪化(不均一性増)
α ↑(粗さ大)weight 固定で わずか改善(diffuse に近づくため)
動径 min/maxspecular 強化で 0.615 → 0.570 へ低下(不均一さが目立つ)

「形」の観察(output/_slide_panels/blend_bsdf_sweep.png)

  • w=0.05 行: ベースラインに近い Y 軸単調勾配(純 diffuse と区別困難)
  • w=0.15 行: 下端中央に明るい集中点が現れ始める
  • w=0.30 行: 下端中央に 2 つの明るいスポットが顕在化.specular 反射が LED 直下の評価板領域に集中
  • α を上げると specular が「拡散的」になり diffuse に近づくが、実機の中央ピーク楕円パターンには近づかない

物理的解釈

純 Lambertian は cos 重み散乱で 多重反射の均一化作用が最大.specular 成分が混ざると:

  • 内壁での 1 回反射が 特定方向に集中
  • 多重反射ループから外れて評価板の特定エリア(カバー側下端)に集中
  • 多重反射の累積が不均一になり ambient 成分が減る

3D プリンタ白フィラメントは 完全 Lambertian として扱うのが実機挙動に近い近似 だと判明(TECH_09 の LED Lambertian 整合性と並ぶ「物理モデル妥当性の裏付け」).

判定と意味

  • A1 は残差 2.63× の主因ではないことが確定.候補リストから「クリア」として除外
  • 「最有力候補」だった A1 の除外は 次の候補に焦点を絞れる正味前進
  • 副次成果: スキーマ層に blendbsdf + roughconductor のサポートが入った.今後の物理モデル試行で再利用可能
  • 新規テスト 89 件追加(既存 608 → 697 全通過).Pydantic v2 forward reference + 再帰 BSDF 変換の安全網が整備された

副次発見

  • roughconductor の material="none" 設定は eta=k=1 の完全反射体として機能する(Mitsuba 3 仕様).感度分析用途で扱いやすい
  • weight=0 で純 diffuse に完全一致するため、ベースライン (output/baseline/luminance.npy) を 10 番目のセルとして使い回せる設計が妥当だった

D1 検証結果(2026-06-02 完了)

候補リスト 4 位の D1「シミュ ROI と実機 ROI の物理的整合」 を Step 8-14 候補 γ として 事前検証したところ,両者は物理的に同じ領域を見ていることが確認できた.設定変更は一切行わず,既存設定の数値検証のみで結論が出た.

検証手順

  1. シミュ ROI 物理範囲の算出 — configs/scene_baseline.yaml の orthographic 設定(position (0,0,-50), ortho_scale (50, 52), film 512×512)と configs/eval_baseline_linear.yaml の ROI (24, 37, 464, 450) から,評価板中心基準で X∈[-45.31, +45.31] mm, Y∈[-46.92, +44.48] mm(幅 90.63×91.41 mm) と算出
  2. 評価板 STL bbox 計測 — configs/meshes/照明ムラ補正ボード.stl を trimesh で計測:X=99 mm × Y=102 mm(既知値と一致)
  3. 実機画像の物理スケール算出 — reference_measurement/MiniTIAS_20260408_144434/MiniTIAS_20260408_144434.png(2448×3264)から評価板の縦方向黒縁を検出(H=1560 px).評価板 Y=102 mm より 物理分解能 0.0654 mm/px を確定(ピクセルアスペクト比 1:1 仮定で X 方向も同じ)
  4. 実機 ROI 物理範囲の算出 — roi_config.json の ROI (539, 1015, 1400, 1409) から,評価板中心基準で X∈[-44.79, +46.75] mm, Y∈[-47.53, +44.59] mm(幅 91.54×92.13 mm) と算出(画像 y→物理 Y は符号反転)

比較結果

項目シミュ ROI実機 ROI差
X 幅90.63 mm91.54 mm-0.91 mm (1.0%)
Y 高さ91.41 mm92.13 mm-0.72 mm (0.8%)
X 中心0 mm+0.98 mm+0.98 mm
Y 中心(符号反転後)-1.22 mm-1.47 mm-0.25 mm

→ 物理サイズは 1% 以内・中心位置は 1 mm 以内で一致.3 列パネル output/_slide_panels/roi_alignment_check.png(①実機画像 + 評価板境界・実機 ROI / ②シミュ輝度マップ + 評価板境界・シミュ ROI / ③物理座標系で両者を重ね合わせ)でも視覚的に確認.

判定と意味

  • 残差 2.63× の主因は ROI 整合ではないことが確定.D1 を候補リストから「クリア」として除外
  • 過去の設定者(おそらく Step 8 開始時の scripts/select_white_board.py GUI 選択 → シミュ側 ortho_scale 設計値)は 物理整合性を意識して ROI を揃えていたことが裏付けられた
  • 設定変更ゼロで結論が出たため,シミュ/実機双方の YAML・コードへの コミット可能な変更なし

副次発見

評価板は実機画像中央から 下方向に約 4.2 mm(65 px)オフセットして配置されている(カメラ取付位置 vs 評価板取付位置のミリ精度差)が,実機 ROI もそのオフセットに沿って選択されているため,物理領域としては板中心とほぼ整合している.

Step 8-14 候補選定(次のアクション)

D1(γ)が「クリア」と確定したため,残る選択肢は以下:

Step 8-14 候補内容状態推奨度
Step 8-14 候補 αA8 (R=0.89) + A9 (depth=16) の組み合わせ(低コスト・既存技術)未実施⭐⭐⭐
Step 8-14 候補 βA1 内壁の非 Lambertian 性(光沢成分混合 BSDF)✓ 2026-06-02 完了(クリア — 実機方向に作用しない)—
Step 8-14 候補 γD1 ROI 整合の再確認✓ 2026-06-02 完了(クリア — 物理差 < 1%)—
Step 8-14 候補 δβ + α 全部β クリアで意義消失—

→ A1 除外確定により Step 8-14 は α(A8 + A9)が筋.低コストで既存技術延長.レンダ時間も 1 ジョブ 8 分程度で済む.

残差候補の出典

過去の試行履歴

仕様