SmTIAS-LightSim / docs / 05_TECH /
@rintoHasegawa rintoHasegawa authored on 13 Jul
..
README.md [update] 規約再編に伴う旧参照を一掃 3 months ago
TECH_01_定量撮影モード要求仕様.md [add] TECH_03 MiniTIAS 実装報告取り込み・TECH_04 SmTIAS-LightSim 側回答 — MiniTIAS 側で定量モード Phase 1〜5 全完了,AQUOS sense3 が LEVEL_3 で DNG 経路第 1 優先採用,撮影設定: 1/60s + ISO 40 + AWB/NR/EDGE/AF/AE OFF + TONEMAP 線形 + BLACK_LEVEL_LOCK + SHADING_MODE=HIGH_QUALITY + STATISTICS_LENS_SHADING_MAP_MODE=ON,LSC マップ 13×17,保存ファイル MiniTIAS_QM_*.{dng,meta.json,preview.jpg} 3 種で meta.json に LSC マップ埋め込み.SHADING_MODE 判断: HIGH_QUALITY を本流維持(Mitsuba orthographic 出力 ≒ ISP 完璧補正後の理想値で HIGH_QUALITY DNG と直接比較が物理整合・OFF 切替は将来のフォールバック条件 C1-C3 発動時のみ).Mitsuba 出力の物理解釈を正式に整理(生 Bayer 相当ではなく補正後相当).露光/ISO 目安は 10-bit 中央値 500 前後 + p99 < 900.V1 連射再現性検証は MiniTIAS 側が連射 UI のみ実装し解析は SmTIAS-LightSim 側 sm-evaluate に統合.データ転送は adb pull 推奨(MTP 非推奨).改善案優先度: 画素統計・Hot pixel map・連射 UI が高優先で同意.TECH_01 開放質問 Q1-Q7 を解決状況で更新.TECH_02 データ受け渡し節を実機実装に合わせ更新(meta.json 内 LSC マップ格納形式・adb pull・DNG/burst ファイル命名).CLAUDE.md 開発進捗に MiniTIAS 側実装完了とハンドオフ往復完了を追記.次フェーズ: MiniTIAS 側は高優先 3 件追加実装,SmTIAS-LightSim 側は DNG/meta.json 読み込み I/F と再現性検証スクリプトを sm-evaluate に追加してキャリブ再開 4 months ago
TECH_02_MiniTIAS引き継ぎ手順.md [add] TECH_03 MiniTIAS 実装報告取り込み・TECH_04 SmTIAS-LightSim 側回答 — MiniTIAS 側で定量モード Phase 1〜5 全完了,AQUOS sense3 が LEVEL_3 で DNG 経路第 1 優先採用,撮影設定: 1/60s + ISO 40 + AWB/NR/EDGE/AF/AE OFF + TONEMAP 線形 + BLACK_LEVEL_LOCK + SHADING_MODE=HIGH_QUALITY + STATISTICS_LENS_SHADING_MAP_MODE=ON,LSC マップ 13×17,保存ファイル MiniTIAS_QM_*.{dng,meta.json,preview.jpg} 3 種で meta.json に LSC マップ埋め込み.SHADING_MODE 判断: HIGH_QUALITY を本流維持(Mitsuba orthographic 出力 ≒ ISP 完璧補正後の理想値で HIGH_QUALITY DNG と直接比較が物理整合・OFF 切替は将来のフォールバック条件 C1-C3 発動時のみ).Mitsuba 出力の物理解釈を正式に整理(生 Bayer 相当ではなく補正後相当).露光/ISO 目安は 10-bit 中央値 500 前後 + p99 < 900.V1 連射再現性検証は MiniTIAS 側が連射 UI のみ実装し解析は SmTIAS-LightSim 側 sm-evaluate に統合.データ転送は adb pull 推奨(MTP 非推奨).改善案優先度: 画素統計・Hot pixel map・連射 UI が高優先で同意.TECH_01 開放質問 Q1-Q7 を解決状況で更新.TECH_02 データ受け渡し節を実機実装に合わせ更新(meta.json 内 LSC マップ格納形式・adb pull・DNG/burst ファイル命名).CLAUDE.md 開発進捗に MiniTIAS 側実装完了とハンドオフ往復完了を追記.次フェーズ: MiniTIAS 側は高優先 3 件追加実装,SmTIAS-LightSim 側は DNG/meta.json 読み込み I/F と再現性検証スクリプトを sm-evaluate に追加してキャリブ再開 4 months ago
TECH_03_定量モード実装報告とSHADING_MODE相談.md [add] TECH_03 MiniTIAS 実装報告取り込み・TECH_04 SmTIAS-LightSim 側回答 — MiniTIAS 側で定量モード Phase 1〜5 全完了,AQUOS sense3 が LEVEL_3 で DNG 経路第 1 優先採用,撮影設定: 1/60s + ISO 40 + AWB/NR/EDGE/AF/AE OFF + TONEMAP 線形 + BLACK_LEVEL_LOCK + SHADING_MODE=HIGH_QUALITY + STATISTICS_LENS_SHADING_MAP_MODE=ON,LSC マップ 13×17,保存ファイル MiniTIAS_QM_*.{dng,meta.json,preview.jpg} 3 種で meta.json に LSC マップ埋め込み.SHADING_MODE 判断: HIGH_QUALITY を本流維持(Mitsuba orthographic 出力 ≒ ISP 完璧補正後の理想値で HIGH_QUALITY DNG と直接比較が物理整合・OFF 切替は将来のフォールバック条件 C1-C3 発動時のみ).Mitsuba 出力の物理解釈を正式に整理(生 Bayer 相当ではなく補正後相当).露光/ISO 目安は 10-bit 中央値 500 前後 + p99 < 900.V1 連射再現性検証は MiniTIAS 側が連射 UI のみ実装し解析は SmTIAS-LightSim 側 sm-evaluate に統合.データ転送は adb pull 推奨(MTP 非推奨).改善案優先度: 画素統計・Hot pixel map・連射 UI が高優先で同意.TECH_01 開放質問 Q1-Q7 を解決状況で更新.TECH_02 データ受け渡し節を実機実装に合わせ更新(meta.json 内 LSC マップ格納形式・adb pull・DNG/burst ファイル命名).CLAUDE.md 開発進捗に MiniTIAS 側実装完了とハンドオフ往復完了を追記.次フェーズ: MiniTIAS 側は高優先 3 件追加実装,SmTIAS-LightSim 側は DNG/meta.json 読み込み I/F と再現性検証スクリプトを sm-evaluate に追加してキャリブ再開 4 months ago
TECH_04_MiniTIASへの回答.md [update] TECH_04 を「フェーズ A/B 分割」に再構成 — 連射 UI 実装をフェーズ B に降格し,フェーズ A で 1 ショット撮影によるシミュ vs 実機対応検証を先行.方針根拠: 連射再現性が確保できてもシミュとの対応が取れなければ意味が薄い.フェーズ A で MiniTIAS 側に依頼するのは画素統計・Hot pixel map(高優先 2 件)と白板 1 ショット試し撮りのみ.SmTIAS-LightSim 側は DNG/meta.json/LSC マップ読み込み I/F と新規 baseline config を実装して 1 ショット突合.既存通常モード baseline 残差 2.1× が定量モードで変化するかを観察.フェーズ A 完了判定: 残差 ≤ 1.5× ならフェーズ B へ・残差変わらずなら SHADING_MODE フォールバック条件 C1 検討 or 物理モデル見直し・残差増ならパイプライン不整合をデバッグ.フェーズ B 着手はフェーズ A 完了後に判断.TECH_04 サマリ表・V1 検証分担セクション・改善案優先度・次フェーズ作業範囲を全部 A/B 二段階で再構成.CLAUDE.md にも反映.Step 8-13 として TEST_01 に記録予定 4 months ago
TECH_05_MiniTiasEvaluation_DNG対応要求仕様.md [add] MiniTias-Evaluation 引き継ぎ受領 (S1) — TECH_06 受領記録・TEST_05 PNG/DNG 評価比較・TEST_06 外乱光影響評価を新規取り込み.TECH_05 §4 を訂正 (apply_lsc_inverse → apply_lsc_forward).5 つの重要発見: (1) DNG は LSC 未補正で逆ではなく順方向適用が正しい (TECH_05 §4 訂正済) (2) 過去 Step 8 残差 2.1× はドメイン不一致 — 正しい linear 比較では DNG linear+LSC 0.0689 vs シミュ linear 0.183 = 真の残差 2.66× (3) 新実機ターゲット MiniTIAS_QM_20260601_124500 暗闇撮影 CoV=0.0695 勾配=8.35% 中心/周辺=1.0911 動径 min/max=0.860 (4) 外乱光ロバスト確認: 室内灯 ON/OFF で指標差 < 1% (5) 新指標 calc_radial_min_max_ratio 追加.本 PR はドキュメント取り込みのみ (S1).コード取り込み (S2: dng_loader.py コピー + 新指標マージ + rawpy 依存追加) と sm-evaluate DNG 対応 + Step 8-13 突合 (S3) は別 /implement パイプラインで実施.handoff_smtias_lightsim ディレクトリは context から書き起こし: PNG/CSV/meta.json バイナリは S3 段階で再取得が必要.CLAUDE.md 開発進捗に Phase 1 完了とハンドオフ受領・5 つの重要発見を追記 4 months ago
TECH_06_MiniTias-Evaluation引き継ぎ受領.md [add] MiniTias-Evaluation 引き継ぎ受領 (S1) — TECH_06 受領記録・TEST_05 PNG/DNG 評価比較・TEST_06 外乱光影響評価を新規取り込み.TECH_05 §4 を訂正 (apply_lsc_inverse → apply_lsc_forward).5 つの重要発見: (1) DNG は LSC 未補正で逆ではなく順方向適用が正しい (TECH_05 §4 訂正済) (2) 過去 Step 8 残差 2.1× はドメイン不一致 — 正しい linear 比較では DNG linear+LSC 0.0689 vs シミュ linear 0.183 = 真の残差 2.66× (3) 新実機ターゲット MiniTIAS_QM_20260601_124500 暗闇撮影 CoV=0.0695 勾配=8.35% 中心/周辺=1.0911 動径 min/max=0.860 (4) 外乱光ロバスト確認: 室内灯 ON/OFF で指標差 < 1% (5) 新指標 calc_radial_min_max_ratio 追加.本 PR はドキュメント取り込みのみ (S1).コード取り込み (S2: dng_loader.py コピー + 新指標マージ + rawpy 依存追加) と sm-evaluate DNG 対応 + Step 8-13 突合 (S3) は別 /implement パイプラインで実施.handoff_smtias_lightsim ディレクトリは context から書き起こし: PNG/CSV/meta.json バイナリは S3 段階で再取得が必要.CLAUDE.md 開発進捗に Phase 1 完了とハンドオフ受領・5 つの重要発見を追記 4 months ago
TECH_07_LSC取り扱い方針.md [add] TECH_07 LSC 取り扱い方針 + Step C' 新規 baseline config — 3 プロジェクト (MiniTias / MiniTias-Evaluation / SmTIAS-LightSim) における LSC 取り扱いの設計判断を一元化 docs/05_TECH/TECH_07 として明文化.結論: SmTIAS-LightSim はシミュ側で LSC を一切扱わない (Mitsuba orthographic が LSC 完璧補正後相当という物理的根拠).3 プロジェクト役割分担を 1 表で明確化: MiniTias=SHADING_MODE=HIGH_QUALITY 撮影 + lscMap 保存 / MiniTias-Evaluation=lscMap 順方向適用で評価 / SmTIAS-LightSim=一切扱わない.検討した代替案 3 つすべて却下と理由を明文化: (A) シミュに LSC モデル化追加 → overfitting リスク + 実機側改善で目的達成済 / (B) perspective+thinlens で物理 cos⁴ → lscMap で割り戻すと結局 orthographic と等価で得るものなし / (C) ISP 補正残差を物理導出 → メーカー非公開で不可能.フォールバック条件 C1-C3 (SHADING_OFF 撮影) を TECH_04 から再掲.過去 TEST_03 「LSC モデル化が唯一の道」の前提変更 (当時は実機側を改善しない前提) を明示.過去 Step 8 残差 2.1× の解釈見直し (PNG sRGB ガンマ圧縮による楽観値,真の linear 比較では 2.66× 程度) を明記.Step C' として configs/eval_baseline_dng_target.yaml 新規作成 (eval_baseline_linear.yaml ベースで target_mean=207.82, metrics.radial_min_max=true,過去 Step 8-1〜8-12 評価 config 群と並列で Step 8-13 評価条件固定化).動作確認で既存シミュ 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× とほぼ一致.LSC 由来ではない別要因 = 物理モデル誤差等).LSC 取り扱いは本コミットで決着,残差 2.63× は別問題として今後の課題に.handoff_smtias_lightsim/ ディレクトリは S3 全体完了 (Step 8-13 TEST_01 記録) 後に削除予定で本コミットには含めない.CLAUDE.md 進捗欄に Step C' 完了・Step 8-13 数値・TECH_07 への参照を追記 4 months ago
TECH_08_実機変更とシミュ側対応.md [update] TECH_08 「対応不要」を 2 タイプに細分化 — §許容している構造的差異 セクション新規追加.「対応不要」の理由を 2 種類に分類: タイプ I (本質構造同一・Mitsuba に対応概念なし) = AWB/NR/EDGE/LSC/量子化 等.タイプ II (構造的差異あり・白板で許容) = AF/絞り口径食/ピクセル積分/センサノイズ/QE 波長依存/シャッター方式/温度依存.特に AF (CONTROL_AF_MODE=OFF 固定焦点) を §II-1 焦点モデル として独立詳述: 実機 perspective + 固定焦点で被写界深度 (DoF) と焦点ボケが存在する vs シミュ orthographic は全画素平行光線で焦点・DoF 概念なし (常に完璧合焦相当) という構造的な違いを明示.白板撮影では DoF 内固定 + 一様パターンで許容できるが「ゼロ影響」ではなく舌模型評価時や残差精緻化フェーズで再評価対象.他のタイプ II 項目 (II-2 絞り口径食 = lscMap で補正済 / II-3 ピクセル積分 = spp=1024 で緩和 / II-4 センサノイズ = 白板高輝度で相対影響小 / II-5 QE 波長依存・シャッター・温度・個体差) も白板許容理由を明示.対応マッピング表の AF 行を「対応不要・許容 (§許容している構造的差異 参照)」と再分類.サマリ表をタイプ I/II 区分で更新.Step 8-13 残差 2.63× の主因はタイプ II ではなくシミュ物理モデル誤差と推定する従来結論は維持.タイプ II 寄与は小さいが完全排除不能で,Step 8-14 以降の物理モデル精緻化と並行してタイプ II 独立評価の余地ありと記述.CLAUDE.md 進捗欄にタイプ I/II 分類と AF の構造的差異を追記 4 months ago
TECH_09_LEDデータシート調査結果.md [add] TECH_09 LED データシート調査結果 — LED Paradise LP-2835D90VW の OEM 元 HONGLITRONIC (中国広州,鸿利智汇集团股份有限公司) のデータシート発見と判明事項を明文化.過去 SPEC_03 で「LED Paradise 商品ページにデータシート PDF 掲載なし」「詳細 IES 未提供」とした記述は誤りで,実は OEM 元 HONGLITRONIC の HL-A-2835D90VW シリーズ (SPEC NO B-18-A-0831, 2022-01 改訂, 13 ページ) が公開されていた.本命データシート: lcsc.com/datasheet/C5362368.pdf.SmTIAS の LED と物性整合 (Vf 2.8-3.4V typ 3.1V / 配光角 120° / SMD 2835 / 単チップ 3V 系 / Ra95).LED Paradise の Ra98 はサブバリアントの可能性.配光図 (Page 6) から 9 角度で数値読み取り: 0°→1.0, 10°→0.98, 20°→0.94, 30°→0.87, 45°→0.71, 60°→0.50 FWHM, 70°→0.35, 80°→0.15, 90°→0 — 厳密 Lambertian (cos θ) と数値的にほぼ完全一致.SPEC_03 の「やや前方凸の可能性」記述は本データシートでは確認できず訂正対象.分光分布 SPD (Page 6) も NeutralWhite 4000K の特性曲線あり: 420nm 鋭ピーク (青チップ励起) + 500-650nm ブロード (蛍光体).Ra95 で太陽光近似スペクトル.重要な含意: (1) 現状 area light Lambertian モデルはデータシート実測と整合.配光モデル精緻化余地は限定的.(2) 過去 Step 8-11「データシート従順版」(cos^1.2) は実はデータシート不整合 (同等品 Cree/Samsung/Lumileds の典型配光を借用していた).道理で形状指標が悪化.(3) Step 8-14 候補 B (LED 配光詳細化) の意義は限定的.残差 2.63× の主因は配光以外 (反射率精度・幾何精度・タイプ II 構造的差異・内壁の非 Lambertian 性等) に絞られる.構成: 結論先出し / 調査経緯 / OEM 関係特定 / 入手データシート 2 件 (別品 1 + 本命 1) / 重要情報 / 配光図読み取り表 / SPD 特徴 / SmTIAS-LightSim への含意 4 観点 / SPEC_03 訂正事項 5 項目 / 関連リンク / 次のアクション.取得 PDF 2 件 (5c736b84*.pdf 別品 + a3b8d448*.pdf 本命) と PNG 13 件 (_ds_page_*.png) はリポジトリトップに一時保存.REFERENCE/ への正式取り込みは別タスクのため本コミットには含めない.CLAUDE.md 進捗欄に TECH_09 への参照と主要発見 (配光は Lambertian / Step 8-14 候補 B 方向修正 / 残差 2.63× 主因絞り込み) を追記 4 months ago
TECH_10_残差主因候補の網羅整理.md [update] バグ前結果を BEFORE FIX 明記し図・数値を ROI 揃えに統一 3 months ago
TECH_11_形状指標の見直しと新指標導入.md [add] 形状指標 (shape_metrics) 5 指標と TECH_11 論点整理 — 現状 4 指標は形を区別できない問題を解決,数値+形+視覚の 3 軸評価方針確立 4 months ago
README.md

05_TECH — エンジニア向けの技術設計 (Technical Design Docs)

このディレクトリには エンジニア向けの技術設計ドキュメント が集まっている.3 種類のドキュメントが混在するので,最初にこの README で位置付けを確認するのが効率的.

種類分類

アイコン種類性質読み方
🟢現状方針(結論集約)永続的,変更時のみ更新「今どうなっているか」を知りたい人はここから
🔵議論の経緯(過程記録)履歴的,原則更新しない「なぜそうなったか」を辿るためのドキュメント

🟢 まず読むべき — 現状方針(3 ファイル)

SmTIAS-LightSim プロジェクトの 現状の設計判断・取り扱い方針 をここに集約している.「今どうなっているか」を理解したい場合はこの 3 つから読む.

順序ファイル内容
1TECH_07_LSC取り扱い方針.md3 プロジェクト (MiniTias / MiniTiasEval / SmTIAS-LightSim) での LSC 役割分担.シミュ側で LSC を扱わない物理的根拠.却下した代替案 3 つの理由
2TECH_08_実機変更とシミュ側対応.md実機側 8 項目変更に対するシミュ側 3 層 (シーン定義 / sm-render / sm-evaluate) の対応マッピング.タイプ I (本質構造同一) / タイプ II (許容している構造的差異) の分類
3TECH_09_LEDデータシート調査結果.mdOEM 元 HONGLITRONIC データシート発見と判明事項.配光は Lambertian と数値一致.Step 8-10/8-11 試行の事後評価.SPEC_03 訂正事項
4TECH_10_残差主因候補の網羅整理.mdStep 8-13 で確定した残差 2.63× の主因候補を 5 カテゴリ 18 項目で網羅整理.A1/A9/D1 の検証結果を反映.形改善の最有力は B1 幾何精度に集約.数値改善は A8 反射率 R=0.89
5TECH_11_形状指標の見直しと新指標導入.md現状 4 指標 (CoV/勾配/C/P/動径 min/max) は「形」を構造的に区別できない問題を整理し,新 5 指標 (輝度重心/角度半径分解/SSIM/NCC/PCA) の導入を仕様化.過去判断への遡及的注記.「数値の偽物の一致」を防ぐ評価方針

主な結論(読まずに済むサマリ)

観点結論
LSC 補正実機側 (MiniTiasEval) で順方向適用.シミュ側は扱わない (orthographic で構造的に等価)
ガンマ補正sm-evaluate で OETF off (実機 DNG が linear)
絶対値スケール調整mean アンカー正規化で target_mean=207.82 に揃え
LED 配光モデルarea light Lambertian (cos θ) — データシート実測と数値一致
残差 2.63× の主因候補(優先順)形改善: 🥇 B1 筐体幾何精度 / 数値改善: 🥇 A8 反射率 R=0.89.A1/A9/D1 はすべて検証完了でクリア (詳細は TECH_10)
評価指標の方針数値 + 形 + 視覚 の 3 軸.数値 4 指標 (CoV/勾配/C/P/動径 min/max) は形を構造的に区別できないため形 5 指標 (重心/角度半径分解/SSIM/NCC/PCA) を併用 (詳細は TECH_11)

🔵 議論の経緯 — プロジェクト間ハンドオフ往復 (6 ファイル)

MiniTias 撮影アプリ + MiniTiasEval 解析ツールへの「要求 → 報告 → 回答 → 受領」のハンドオフ記録.読まなくても現状方針 (TECH_07〜09) は理解できるが,「なぜそういう判断になったか」を辿るときに参照する.

経緯マップ

[MiniTias 撮影アプリへの要求と回答]
  TECH_01 (要求書) ────→ MiniTias 実装
    │                        ↓
  TECH_02 (引き継ぎ手順)   TECH_03 (実装報告 + SHADING_MODE 相談)
                              │
                              ↓
                           TECH_04 (回答書 + SHADING_MODE 判断)
                              │
                              ↓
                           ★ 結論集約 → TECH_07 LSC 取り扱い方針

[MiniTiasEval DNG 対応への要求と受領]
  TECH_05 (要求書) ────→ MiniTiasEval 実装
                              │
                              ↓
                           TECH_06 (引き継ぎ受領記録)
                              │
                              ↓
                           ★ 関連結論 → TECH_07 LSC 取り扱い方針
                                       TECH_08 対応マッピング

各ファイルの役割

ファイル役割
TECH_01_定量撮影モード要求仕様.mdSmTIAS-LightSim → MiniTias 撮影アプリ への要求書.Camera2 API 設定変更・DNG 化等
TECH_02_MiniTIAS引き継ぎ手順.mdTECH_01 を MiniTias 側 Claude セッションで作業着手する際の作業ガイド
TECH_03_定量モード実装報告とSHADING_MODE相談.mdMiniTias 側からの実装報告.SHADING_MODE の扱いを SmTIAS-LightSim 側に相談
TECH_04_MiniTIASへの回答.mdTECH_03 への回答.SHADING_MODE = HIGH_QUALITY 維持を判断.フェーズ A/B 分割方針
TECH_05_MiniTiasEvaluation_DNG対応要求仕様.mdSmTIAS-LightSim → MiniTiasEval 解析ツール への要求書.apply_lsc_* 関連は訂正済
TECH_06_MiniTias-Evaluation引き継ぎ受領.mdMiniTiasEval 側からの実装受領記録.重要な設計判断 (LSC は順方向適用) を集約

関連ディレクトリ

ディレクトリ役割
04_SPEC/ユーザー視点の仕様書.特に SPEC_03 基準設計の物理構成 は TECH_09 で訂正対象になっている
06_TEST/試行履歴・実行記録.特に TEST_01 キャリブレーション検証履歴 は Step 8 系の主軸記録

新規ドキュメント追加のガイド

新しい TECH ドキュメントを追加するときは:

  1. どのカテゴリか判断: 🟢 結論集約 / 🔵 過程記録
  2. 連番を継続: TECH_10, TECH_11, ...
  3. 本 README に追記: 該当カテゴリのリストに 1 行追加
  4. ファイル命名規則 に従う (../../.claude/rules/docs-naming.md)