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

本ドキュメントは [TEST_01 Step 8-13](../06_TEST/TEST_01_キャリブレーション検証履歴.md) で確定した **シミュ vs 実機の残差 2.63×** の主因候補を網羅的に整理したものである．Step 8-14 以降の物理モデル精緻化で「何を試すか」の判断材料として作成した．

## 結論（先に） (Conclusion First)

| 順位 | 候補 | 影響度 | 検証コスト | 推奨理由 |
| --- | --- | --- | --- | --- |
| ~~🥇 1 位~~ | ~~A1. 内壁の非 Lambertian 性（光沢成分）~~ | **✓ クリア** | — | **2026-06-02 検証完了**：3×3 グリッドで全 9 パターンが実機方向に作用しない（むしろ悪化）と判明．純 Lambertian が実機挙動に最も近い．[§ A1 検証結果](#a1-検証結果2026-06-02-完了) 参照 |
| **🥇 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 検証結果](#d1-検証結果2026-06-02-完了) 参照） |
| 4 位 | A2/A3. LED 配光の個体差・樹脂ドーム | 小〜中 | 高 | データシート Lambertian 整合済 ([TECH_09](TECH_09_LEDデータシート調査結果.md)) |

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

## 背景 (Background)

Step 8-13 で **真の linear ドメイン比較** (DNG+LSC 順方向適用 vs シミュ orthographic) を実施した結果，残差 2.63× が確定した（[TEST_01 Step 8-13](../06_TEST/TEST_01_キャリブレーション検証履歴.md#step-8-13-新方針-実機-dng--lsc-linear-でのシミュ突合) 参照）．これは TECH_06 で予想した「真の残差 2.66×」とほぼ一致する値．

主因の絞り込み状況：

| 候補 | 絞り込み状況 | 出典 |
| --- | --- | --- |
| LSC 補正残差 | **排除** | [TECH_07](TECH_07_LSC取り扱い方針.md)（実機側で順方向適用が確立） |
| シミュ側のドメイン不一致（ガンマ等） | **排除** | [TECH_08](TECH_08_実機変更とシミュ側対応.md)（網羅チェック済み） |
| LED 配光のモデル誤差 | **ほぼ排除** | [TECH_09](TECH_09_LEDデータシート調査結果.md)（データシート 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 検証結果](#a1-検証結果2026-06-02-完了) 参照 |
| A2 | LED 個体差の配光ばらつき | 全 LED 完全均一 | 小 | 18 個平均で均される |
| A3 | 樹脂ドーム形状の個体差 | データシート Lambertian 仮定 | 小〜中 | 実物の SMD 2835 ドームは樹脂で微妙な前方凸の傾向．データシート整合は [TECH_09](TECH_09_LEDデータシート調査結果.md) で確認 |
| A4 | LED 駆動電流のばらつき | 全 LED 完全同じ radiance | 小 | 18 個並列接続で電流分配誤差は通常 ±5% 以内 |
| A5 | 発光面の物理サイズ | 2.8mm 角（パッケージサイズ） | 小 | [Step 8-7](../06_TEST/TEST_01_キャリブレーション検証履歴.md) で 1.5mm 角試行．形状不変，mean のみ変化 |
| A6 | LED 方向（光軸） | 全 LED (0, 0, -1) | 小 | 実機の基板は平面で妥当 |
| A7 | LED 位置精度 | Fusion STL 抽出済 | 小 | [Step 8-9](../06_TEST/TEST_01_キャリブレーション検証履歴.md) で正確化済（1% 以内の形状変化） |
| **A8** | **反射率 R = 0.85 → 0.89** | R=0.85（暫定） | **中** | [Step 8-2](../06_TEST/TEST_01_キャリブレーション検証履歴.md) で 0.75〜0.92 スイープ済．[Step 8-6](#) で物理整合点 R≈0.89 を導出．新方針下で再評価の価値あり |
| **A9** | **max_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 §許容している構造的差異](TECH_08_実機変更とシミュ側対応.md#許容している構造的差異-accepted-structural-differences) のタイプ II 項目．白板撮影では許容と判断したが完全排除不能．

| ID | 候補 | 現状 | 影響度 | 検証状況 |
| --- | --- | --- | --- | --- |
| C1 | 絞り・口径食 | orthographic で cos⁴ なし | 小 | 実機側 lscMap で補正済（残差あり） |
| C2 | AF（焦点モデル） | 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 検証結果](#d1-検証結果2026-06-02-完了) 参照） |
| D2 | mean アンカー target_mean=207.82 の精度 | 実機 1 ショットの値 | 小 | 形状指標には影響なし |

### E. 環境・運用系（実機側）

| ID | 候補 | 現状 | 影響度 | 検証状況 |
| --- | --- | --- | --- | --- |
| E1 | LED 温度上昇による光出力低下 | シミュは温度概念なし | 小 | 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](../06_TEST/TEST_01_キャリブレーション検証履歴.md) で「弱い二次レバー」と判明済．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](TECH_08_実機変更とシミュ側対応.md) で「白板撮影では許容」と判断済．舌模型評価時に再考 |
| B1 筐体内部の幾何精度 | 検証コスト高（実機 3D スキャン等が必要）．他の候補を試した後の最終手段 |
| A2/A3 LED 配光の個体差 | データシート Lambertian 整合済（[TECH_09](TECH_09_LEDデータシート調査結果.md)）．実物の個体差ばらつきは実測ゴニオフォトメータが必要で高コスト |
| 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.05** | 0.192 / 24.8 / 1.33 / 0.62 | 0.189 / 24.9 / 1.33 / 0.62 | **0.185** / 24.4 / 1.32 / 0.62 ← 最良 |
| **0.15** | 0.213 / 26.0 / 1.35 / 0.61 | 0.204 / 26.6 / 1.36 / 0.60 | 0.193 / 25.5 / 1.34 / 0.61 |
| **0.30** | **0.243** / 26.8 / 1.37 / 0.59 ← 最悪 CoV | **0.227 / 29.0** / 1.41 / **0.57** ← 最悪 形 | 0.205 / 27.0 / 1.37 / 0.59 |

### 観察された傾向

| 軸 | 効果 |
| --- | --- |
| **weight ↑（光沢強化）** | CoV / 勾配 / C/P すべて **単調悪化**（不均一性増） |
| **α ↑（粗さ大）** | weight 固定で **わずか改善**（diffuse に近づくため） |
| **動径 min/max** | specular 強化で **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](TECH_09_LEDデータシート調査結果.md) の 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 mm | 91.54 mm | **-0.91 mm (1.0%)** |
| **Y 高さ** | 91.41 mm | 92.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 分程度で済む．

## 関連ドキュメント (Related Documents)

### 残差候補の出典

- [TECH_07 LSC 取り扱い方針](TECH_07_LSC取り扱い方針.md) — LSC 由来の排除根拠
- [TECH_08 実機変更とシミュ側対応](TECH_08_実機変更とシミュ側対応.md) — ドメイン不一致由来の排除根拠 + タイプ II 構造的差異
- [TECH_09 LED データシート調査結果](TECH_09_LEDデータシート調査結果.md) — LED 配光由来の排除根拠

### 過去の試行履歴

- [TEST_01 キャリブレーション検証履歴](../06_TEST/TEST_01_キャリブレーション検証履歴.md) — Step 8-1〜8-13 のフル記録
- [TEST_03 輝度マップ形状追跡](../06_TEST/TEST_03_輝度マップ形状追跡.md) — 「形」の視覚比較
- [TEST_02 シミュレーション実行記録](../06_TEST/TEST_02_シミュレーション実行記録.md) — output/ 配下の実験データ索引

### 仕様

- [SPEC_03 基準設計の物理構成](../04_SPEC/SPEC_03_基準設計の物理構成.md) — 現状 BSDF・反射率・max_depth 設定の出典
