diff --git a/CLAUDE.md b/CLAUDE.md index 09b205c..e7867c6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -33,6 +33,7 @@ 補足: **Step C' 完了と Step G 計測 (2026-06-02)**.`configs/eval_baseline_dng_target.yaml` を新規作成(eval_baseline_linear.yaml ベース,target_mean=207.82,metrics.radial_min_max=true,OETF なし).動作確認で既存シミュ baseline (output/baseline/luminance.npy) を新 config で評価した結果,Step 8-13 数値が判明: シミュ CoV=0.1826, 勾配=24.65%, 中心/周辺=1.3271, 動径 min/max=0.6151.実機 DNG+LSC 補正 (CoV=0.0695, 勾配=8.35%, C/P=1.0911, 動径 min/max=0.860) と比較して **残差 2.63×**.これは TECH_06 で予想した「真の残差 2.66×」とほぼ一致.過去 Step 8-3 OETF 順方向適用時の「2.1×」は PNG sRGB ガンマ圧縮による楽観値であり,真の linear 比較では大きい.**LSC 取り扱いの結論を [TECH_07 LSC 取り扱い方針](docs/05_TECH/TECH_07_LSC取り扱い方針.md) として一元化**: 3 プロジェクト役割分担 (MiniTias=SHADING_MODE=HIGH_QUALITY 撮影 / MiniTias-Evaluation=lscMap 順方向適用 / SmTIAS-LightSim=一切扱わない),シミュ側で LSC を扱わない物理的根拠 (Mitsuba orthographic = LSC 完璧補正後相当),検討した代替案 3 つ (A: シミュに LSC モデル化追加・B: perspective+thinlens で物理 cos⁴・C: ISP 補正残差を物理導出) すべて却下,限界と注意点,フォールバック条件 C1-C3 (SHADING_OFF 撮影),Step 8-13 残差 2.63× の解釈 (LSC 由来ではない別要因,物理モデル誤差の可能性) を明文化.残差 2.63× の解消は今後の課題 (物理モデル精緻化 or SHADING_OFF 撮影で切り分け or 形状相対比較に絞る) .S3 残作業: TEST_01 への Step 8-13 正式記録・handoff_smtias_lightsim/ 削除. 補足: **実機変更とシミュ側対応の整合マッピングを明文化 (2026-06-02)**.[TECH_08 実機変更とシミュ側対応](docs/05_TECH/TECH_08_実機変更とシミュ側対応.md) として作成.実機側 8 項目変更 (PNG→DNG / AWB OFF / AE OFF / ガンマなし / NR OFF / EDGE OFF / LSC 維持 / LSC 順方向適用) に対するシミュ側 3 層 (Mitsuba シーン定義 α / sm-render β / sm-evaluate γ) の対応をマッピング.**結論: シミュ側で実際に対応が必要だったのは sm-evaluate の config レベルでの OETF 無効化 (#4) と mean アンカー調整 (#3) の 2 項目のみで,他はすべて対応不要 (Mitsuba は per-channel 独立計算で AWB/AE/NR/EDGE 概念なし,orthographic で LSC 自然対応)**.計 15 項目以上で網羅チェック,対応漏れなしを確認.特にガンマ補正は `configs/eval_baseline_dng_target.yaml` で OETF セクションを意図的に書かない形で Step C' にて対応済.**残差 2.63× は ISP 関連の対応漏れではなく,シミュ物理モデル誤差 (反射率精度・LED 配光モデル・メッシュ幾何精度等) が主因**と推定.詳細な切り分けは Step 8-14 以降の物理モデル精緻化として残す. 補足: **「対応不要」を 2 タイプに細分化 (TECH_08 §許容している構造的差異 追加)**.「対応不要」の理由を **タイプ I (本質構造同一・対応概念なし)** = AWB/NR/EDGE/LSC 等と,**タイプ II (構造的差異あり・白板で許容)** = AF (焦点モデル)/絞り口径食/ピクセル積分/センサノイズ/QE 波長依存/シャッター方式/温度依存 に分類.特に AF は実機 perspective+固定焦点 vs シミュ orthographic 無限遠相当という **シミュと実機の構造的な違い**を明示.白板撮影では影響軽微で許容しているが「ゼロ影響」ではない.舌模型評価時や残差精緻化フェーズで再評価対象.Step 8-13 残差 2.63× の主因はタイプ II ではなくシミュ物理モデル誤差と推定する従来結論は維持. +補足: **S3 全体完結 — TEST_01 に Step 8-13 正式記録 + handoff 整理 (2026-06-02)**.[TEST_01 §Step 8-13](docs/06_TEST/TEST_01_キャリブレーション検証履歴.md) に新方針 (実機 DNG+LSC linear) でのシミュ突合を Step 8-1〜8-12 と同フォーマットで正式記録.俯瞰サマリ表に新ターゲット (CoV=0.0695) と Step 8-13 結果 (CoV=0.1826, 残差 2.63×) を追加,過去 2.1× が PNG sRGB ガンマ圧縮による楽観値だった旨も明記.§Step 8-N 候補 (LSC 順方向モデル) を「不採用 — Step 8-13 で方針確定」のヘッダに更新し冒頭注記で経緯を残す (歴史的記録として保持).`handoff_smtias_lightsim/` ディレクトリは S3 完結のため整理: 参考スクリプト `run_uniformity_dng.py` のみ `reference_measurement/quantitative/reference_scripts/` に移動 (MiniTias-Evaluation 側の正規評価実装 = LSC 順方向適用 + portrait 向き合わせ + ROI 抽出の参考.将来 SHADING_OFF フォールバック発動時の独立検証用),他は全て SmTIAS-LightSim 側に取り込み済みのため削除.S3 全体 (S2 DNG ローダコピー + Step D radial_min_max 統合 + Step C' 新規 baseline config + TECH_07 LSC 方針 + TECH_08 対応マッピング + Step 8-13 計測 + handoff 整理) 完結.次のキャリブ作業は Step 8-14 以降の物理モデル精緻化 (反射率精度・LED 配光・メッシュ幾何) と TECH_04 フォールバック条件 C1 (SHADING_OFF 撮影) の並行検討. 実装済みモジュール: - `src/sm_tias_lightsim/uniformity.py` — Rec.709 輝度変換 + CoV/std/max-min(MiniTias-Evaluation コピー) diff --git "a/docs/06_TEST/TEST_01_\343\202\255\343\203\243\343\203\252\343\203\226\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\346\244\234\350\250\274\345\261\245\346\255\264.md" "b/docs/06_TEST/TEST_01_\343\202\255\343\203\243\343\203\252\343\203\226\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\346\244\234\350\250\274\345\261\245\346\255\264.md" index f098399..98b3d54 100644 --- "a/docs/06_TEST/TEST_01_\343\202\255\343\203\243\343\203\252\343\203\226\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\346\244\234\350\250\274\345\261\245\346\255\264.md" +++ "b/docs/06_TEST/TEST_01_\343\202\255\343\203\243\343\203\252\343\203\226\343\203\254\343\203\274\343\202\267\343\203\247\343\203\263\346\244\234\350\250\274\345\261\245\346\255\264.md" @@ -35,17 +35,19 @@ | Step | 設定 | 空間 | mean | CoV | 勾配% | C/P | CoV 残差倍率 | | --- | --- | --- | --- | --- | --- | --- | --- | -| 実測 TARGET | — | sRGB | 146.71 | 0.0427 | 6.10 | 1.065 | 1.0× | +| 実測 TARGET (旧 PNG sRGB) | — | sRGB | 146.71 | 0.0427 | 6.10 | 1.065 | 1.0× | | 8-1 spp=128 | R0.85, d8, linear | linear | 151.79 | 0.236 | 24.83 | 1.330 | 5.5× | | 8-1 spp=1024 (基準確定) | R0.85, d8, linear | linear | 152.02 | 0.183 | 24.72 | 1.328 | 4.3× | | 8-2 R=0.92 sweep | R0.92, d12, linear | linear | — | 0.170 | 19.42 | 1.241 | 4.0× | | 8-3 OETF 適用 | R0.85, d8, spp1024 | **sRGB** | 146.71* | **0.089** | **12.57** | **1.144** | **2.1×** | | 8-3 OETF + R=0.92 + d=12 | R0.92, d12 | sRGB | 146.71* | 0.081 | 9.72 | 1.108 | 1.9× | | 8-7 size 1.5×1.5 (Φe 保存) | linear, R0.85, d8 | linear | 429.99 | 0.186 | 26.21 | 1.355 | (形状指標 ≈ 8-1) | +| **実測 TARGET (新 DNG+LSC linear)** | — | **linear** | **207.82** | **0.0695** | **8.35** | **1.091** | **1.0×** | +| **8-13 新方針シミュ突合** | R0.85, d8, spp1024 | **linear** | 207.82* | **0.1826** | **24.65** | **1.327** | **2.63×** | \* mean アンカー固定.R, d, spp は `reflectance`, `max_depth`, `samples_per_pixel`. -最大の跳躍は **8-3 OETF(残差 4.3× → 2.1×)**.現時点の確定基準は **R=0.85, d=8, spp=1024, OETF=on** で残差 2.1×.残る 1.6〜1.9× の残差は **LSC(ISP レンズシェーディング補正)** が主因候補(未対処,[Step 8-N 候補](#step-8-n-候補-lsc-順方向モデル未着手) 参照). +最大の跳躍は **8-3 OETF(残差 4.3× → 2.1×)**.ただし [Step 8-13](#step-8-13-新方針-実機-dng--lsc-linear-でのシミュ突合) で **過去 2.1× は PNG sRGB ガンマ圧縮による楽観値**と判明.真の linear 比較での残差は **2.63×** が確定基準.現時点では **R=0.85, d=8, spp=1024, OETF=off, normalization mean=207.82** で残差 2.63×.残差解消は今後の **物理モデル精緻化** (反射率精度・LED 配光・幾何) に委ねる([TECH_07](../05_TECH/TECH_07_LSC取り扱い方針.md) / [TECH_08](../05_TECH/TECH_08_実機変更とシミュ側対応.md) 参照).LSC モデル化(Step 8-N 候補)は実機側で順方向適用するアプローチが確立したため **不採用**. ## イテレーション履歴 (Iteration Log) @@ -456,9 +458,58 @@ - **orthographic + ptracer は Mitsuba 3 では実行不能**:これは MiniTIAS のシーン構成では path/ptracer を直接比較できない技術的制約.perspective sensor でのみ検証可能だった. - **方向変更で形を実機に近づける道は無い**ことが(部分的に)実証された.**LSC モデル化が唯一の道**との結論を強化. - **次のアクション**: - - 本筋 LSC モデル化([Step 8-N](#step-8-n-候補-lsc-順方向モデル未着手))に進む + - 本筋 LSC モデル化([Step 8-N](#step-8-n-候補-lsc-順方向モデル不採用--step-8-13-で方針確定))に進む + - 注: 後続の Step 8-13 で **LSC モデル化は不要と確定**(実機側で LSC 順方向適用する方針に切替) -## Step 8-N 候補: LSC 順方向モデル(未着手) +### Step 8-13: 新方針 (実機 DNG + LSC linear) でのシミュ突合 + +- **日付**: 2026-06-02 +- **コミット**: 本イテレーション完了時点(`feature/dng-loader-import` ブランチで S2→Step D→C'→TECH_07/08 を累積) +- **背景・問題意識**: TECH_06 で MiniTias-Evaluation 側に DNG 読み込み + LSC 順方向適用が実装され,新実機ターゲット (CoV=0.0695) が確定.過去 Step 8-1〜8-12 は **PNG sRGB ドメイン**で比較していたが,[TECH_07](../05_TECH/TECH_07_LSC取り扱い方針.md) / [TECH_08](../05_TECH/TECH_08_実機変更とシミュ側対応.md) で「実機側 linear + LSC 順方向適用」と「シミュ orthographic」が同じドメイン (「LSC 完璧補正後相当」) に揃うことが判明.本イテレーションで実際に同じ linear ドメインでシミュ vs 実機を計測する. +- **仮説(物理動機)**: 過去 Step 8-3 で OETF 順方向適用後の残差 2.1× だったが,これは PNG sRGB ガンマ圧縮による楽観値の可能性.真の linear 比較では残差はもっと大きい.[TEST_05](TEST_05_PNG_DNG評価比較.md) で「PNG sRGB CoV=0.0423 → PNG 擬似 linear CoV=0.0901」と数値実証されており,真の残差は約 **2.66×** と予想. +- **試した変更**: + - `configs/eval_baseline_dng_target.yaml` 新規作成 (S3 Step C') + - `eval_baseline_linear.yaml` ベース.差分は 2 点だけ: + 1. `normalization.target_mean: 146.7146 → 207.82` (実機 DNG+LSC の白板 ROI mean) + 2. `metrics.radial_min_max: true` 追加 (S3 Step D で sm-evaluate に統合した新指標) + - OETF セクションを **意図的に書かない** (実機が linear なので両者 linear で比較するため,[TECH_08](../05_TECH/TECH_08_実機変更とシミュ側対応.md) §#4 ガンマ補正対応 参照) + - 既存シミュ baseline (`output/baseline/luminance.npy`) を新 config で評価 +- **期待した効果**: 残差 2.5〜3× 程度で TEST_05 の予想値 (2.66×) を実測確認 +- **実際の結果**: + + | 指標 | 実機 DNG+LSC | シミュ (本イテレーション) | 残差 | + | --- | --- | --- | --- | + | mean | 207.82 | 207.82*(mean アンカー後) | — | + | CoV | 0.0695 | **0.1826** | **2.63×** | + | 勾配 % | 8.35 | 24.65 | 2.95× | + | 中心/周辺 (C/P) | 1.0911 | 1.3271 | 絶対差 0.236 | + | 動径 min/max | 0.8600 | 0.6151 | 絶対差 0.245 | + | max/min 比 | 1.617 | 4.276 | 2.64× | + + - normalization alpha=1.36257(シミュ mean 152.52 → 207.82 に揃え) + - TEST_05 で予想した「真の残差 2.66×」とほぼ一致(CoV 2.63×) +- **解釈**: + - **過去 Step 8-3 の 2.1× は楽観値**だったことが確定.PNG sRGB ガンマ圧縮が CoV を約 1/2 に縮めていた(TEST_05 §4 参照). + - 真の linear 比較では残差 2.63× がベースライン.これが「LSC 関連を実機側で全部揃えた後に残る本質的な差」. + - これは **LSC 由来ではない別要因**: [TECH_07 §限界と注意点 §2](../05_TECH/TECH_07_LSC取り扱い方針.md) で明示. + - 残差の主因候補: **シミュ物理モデル誤差**(反射率精度・LED 配光モデル・メッシュ幾何精度).[TECH_08](../05_TECH/TECH_08_実機変更とシミュ側対応.md) で実機側変更全 8 項目へのシミュ側対応漏れがないことを網羅確認済. +- **学び**: + - **ガンマ圧縮は CoV を約 2 倍縮める**.過去 PNG 評価は楽観的だった.真の精度評価には DNG linear が必須. + - **「形を変える唯一の道は LSC モデル化」(過去 [TEST_03](TEST_03_輝度マップ形状追跡.md) finding 4)の前提変更**: 実機側で LSC 順方向適用するアプローチが MiniTias-Evaluation で確立した今,シミュ側 LSC モデル化は不要.Step 8-N (LSC 順方向モデル) は **不採用** ([TECH_07 §検討した代替案](../05_TECH/TECH_07_LSC取り扱い方針.md)). + - **過去 Step 8-1〜8-12 の試行は無駄ではなかった**: 「形は変わらない」確定により,物理モデル誤差以外の方向(emitter 配光・反射率・センサ方向)が排除された.残るは物理モデル誤差(タイプ II 構造的差異も小寄与だが排除不能,[TECH_08 §許容している構造的差異](../05_TECH/TECH_08_実機変更とシミュ側対応.md)). + - **「対応すべき項目」と「許容している構造的差異」の区別が明確化**: タイプ I (本質構造同一・対応概念なし) と タイプ II (構造的差異あり・白板で許容) に分けて整理. +- **次のアクション**: + - LSC 関連は完結([TECH_07](../05_TECH/TECH_07_LSC取り扱い方針.md) で明文化). + - シミュ側変更対応漏れも完結([TECH_08](../05_TECH/TECH_08_実機変更とシミュ側対応.md) で明文化). + - 残差 2.63× の解消は **Step 8-14 以降の物理モデル精緻化** として残す: + - 反射率の実物理整合度の検証(過去 Step 8-2 で R=0.85→0.92 のスイープ実施済.より精密な物理整合チェック) + - LED 配光モデルの詳細化(過去 Step 8-10/8-11 spot 試行済.より忠実な IES 取得が選択肢) + - メッシュ幾何精度の評価(過去 Step 8-9 で Fusion STL 抽出済.残る微差を評価) + - [TECH_04](../05_TECH/TECH_04_MiniTIASへの回答.md) フォールバック条件 C1 候補(SHADING_OFF 撮影)も並行検討の余地あり. + +## Step 8-N 候補: LSC 順方向モデル(不採用 — Step 8-13 で方針確定) + +> **2026-06-02 注記**: 本セクションは当時「実機側を変更しない前提」で「シミュ側に LSC モデル化を追加して残差を埋める」案として立案されていた.[Step 8-13](#step-8-13-新方針-実機-dng--lsc-linear-でのシミュ突合) で **実機側に LSC 順方向適用** するアプローチが MiniTias-Evaluation で確立した結果,**本案は不採用**となった.以下は歴史的記録として残す.詳細な却下理由は [TECH_07 §検討した代替案](../05_TECH/TECH_07_LSC取り扱い方針.md) 参照. - **位置付け**: 8-3 OETF 適用後の残差 **1.6〜1.9×**(CoV 0.089 vs 実測 0.043,勾配 12.57 vs 6.10)の **主因候補**. - **仮説(物理動機)**: 実測 PNG は実機 ISP の **レンズシェーディング補正**(周辺光量低下の電子補正)が掛かっており,**周辺を持ち上げて中央を相対的に押し下げる**.これは残差の符号(シミュ側の方が勾配・C/P が大きい)と整合.シミュ側で同じ補正を順方向に適用すれば消える可能性が高い.