diff --git a/CLAUDE.md b/CLAUDE.md index 5fb55b3..7e348a1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -65,10 +65,12 @@ - アーキテクチャ設計: docs/04_SPEC/SPEC_01_アーキテクチャ設計.md - 照明均一性評価アルゴリズム: docs/04_SPEC/SPEC_02_照明均一性評価アルゴリズム.md +- TIAS 白板撮影プロトコル: docs/04_SPEC/SPEC_03_TIAS白板撮影プロトコル.md ### 05_TECH(技術設計) - DNG 対応要求仕様: docs/05_TECH/TECH_01_DNG対応要求仕様.md +- TIAS 撮影条件: docs/05_TECH/TECH_02_TIAS撮影条件.md ### 06_TEST(テスト・評価報告) diff --git "a/docs/04_SPEC/SPEC_03_TIAS\347\231\275\346\235\277\346\222\256\345\275\261\343\203\227\343\203\255\343\203\210\343\202\263\343\203\253.md" "b/docs/04_SPEC/SPEC_03_TIAS\347\231\275\346\235\277\346\222\256\345\275\261\343\203\227\343\203\255\343\203\210\343\202\263\343\203\253.md" new file mode 100644 index 0000000..33954bb --- /dev/null +++ "b/docs/04_SPEC/SPEC_03_TIAS\347\231\275\346\235\277\346\222\256\345\275\261\343\203\227\343\203\255\343\203\210\343\202\263\343\203\253.md" @@ -0,0 +1,133 @@ +# TIAS 白板撮影プロトコル (TIAS White-Board Capture Protocol) + +本書は,従来型口腔内画像取得装置 **TIAS** の照明均一性を評価するための白板撮影手順とカメラ設定を定める.取得したデータは [SPEC_02 照明均一性評価アルゴリズム](SPEC_02_照明均一性評価アルゴリズム.md) でそのまま解析できることを前提とする. + +> **位置づけ**: 本書は撮影(データ取得)側のプロトコルである.評価指標の定義・算出方法は [SPEC_02](SPEC_02_照明均一性評価アルゴリズム.md),対象範囲は [PLAN_01 要件定義書](../03_PLAN/PLAN_01_要件定義書.md)(優先度 2「照明均一性比較 SmTIAS vs TIAS」)を参照.SmTIAS 側の撮影実績は [TEST_01](../06_TEST/TEST_01_照明均一性評価報告書.md)・[TEST_03](../06_TEST/TEST_03_外乱光影響評価報告書.md) を参照. + +## 目的 (Purpose) + +TIAS を白板で撮影する目的は,**TIAS 単体の照明均一性を定量化し,最終的に SmTIAS と装置間比較する**ことにある.具体的には次の 3 点を満たすデータを取得する. + +- **均一性指標の算出**: 白板(理想的には全面が一様反射率の面光源応答ターゲット)を撮影し,輝度分布から CoV・最大/最小比・中心周辺勾配・動径 min/max 比などを算出する(指標定義は [SPEC_02](SPEC_02_照明均一性評価アルゴリズム.md)).白板を使うのは,**被写体の反射率ムラを排除し,観測される輝度ムラを照明系のムラに帰着させる**ためである. +- **装置間比較の成立**: SmTIAS と同一の評価パイプライン・同一指標で比較できる形式(後述のカメラ設定・データ形式)で取得する. +- **再現性の確認**: 同一条件で複数枚撮影し,セッション内のばらつき(SSIM・指標の分散)を把握する. + +### なぜ条件を SmTIAS と揃えるのか (Rationale: Match SmTIAS Conditions) + +本評価の主目的は **SmTIAS と TIAS の照明系の差**を見ることである.露出・ホワイトバランス・現像処理などの撮影条件が両装置で異なると,観測される輝度ムラに「照明系の差」と「撮影条件の差」が混在し,比較が成立しない.そこで TIAS 側も,可能な範囲で SmTIAS の定量撮影モードと撮影条件を揃え,**純粋に照明系の差だけが指標に現れる**ようにする. + +※ ただし CoV・最大/最小比・中心周辺比・動径 min/max 比は画像内の相対ばらつき指標であり,全画素に等しく作用する係数(露出スケール・線形ゲイン等)には不変である([SPEC_02 キャリブレーション](SPEC_02_照明均一性評価アルゴリズム.md) 参照).したがって**最優先で揃えるべきは「線形性を壊す処理(トーンカーブ・自動露出・ホワイトバランス・ノイズ低減・シェーディング補正)の有無」**であり,露出値・ISO の絶対一致は副次的である. + +## 撮影対象 (Target: White Board) + +- **白板**: TIAS の積分球開口部に合致する**別白板**を用いる(SmTIAS 用白板とは物理形状が異なるため流用しない). + - 開口部全面を均一な反射率で覆える寸法・形状であること. + - 表面は均一拡散反射(マット)で,光沢・色ムラ・汚れ・傷がないこと. + - 評価に使う領域(ROI)が開口内に十分収まること. +- **ROI の扱い**: 白板の白色面のみを ROI とし,開口縁・筐体壁面・フレーム・ラベル等は除外する(ROI 選定手順は [SPEC_02 ROI 設定](SPEC_02_照明均一性評価アルゴリズム.md)).TIAS 用の ROI は SmTIAS とは別座標になるため,`config/roi_config.json` に `tias.whiteboard` として新規登録する. + +> **要確認**: TIAS 開口部の形状・寸法と,それに合致する白板の入手/作製方法は未確定.撮影前に物理的な設置可否を確認する([要確認事項](#要確認事項-open-questions)). + +## カメラ設定 (Camera Settings) + +### 揃える基準値 (SmTIAS 定量撮影モード) + +SmTIAS は定量撮影モードで以下の設定により **RAW_SENSOR (DNG) を線形・無補正で取得**している(実測値: `data/smtias/quantitative/*.meta.json`,機種 SH-02M / AQUOS sense3).TIAS 側はこの設定思想に揃える. + +| 項目 | SmTIAS 定量モードの値 | 揃える狙い | +| --- | --- | --- | +| 出力形式 | RAW_SENSOR (DNG, 10-bit linear) | トーンカーブ・sRGB 符号化を経ない線形信号を得る | +| 自動露出 (AE) | OFF(手動固定) | 露出を固定し,フレーム間で変動させない | +| 露出時間 | 8,333,333 ns(≒ 1/120 s) | 固定露出 | +| ISO 感度 | 40(最低感度) | ノイズ最小・固定 | +| ホワイトバランス (AWB) | OFF,ゲイン [1,1,1,1],色変換 identity | チャンネルゲインを掛けず生の比率を保つ | +| オートフォーカス (AF) | OFF(手動固定) | フォーカス位置を固定 | +| ノイズ低減 (NR) | OFF | 空間的平滑化で輝度分布を歪めない | +| エッジ強調 | OFF | シャープ化による輝度改変を避ける | +| トーンマップ | CONTRAST_CURVE_LINEAR(線形) | 入射光量に比例した値を保つ | +| シェーディング補正 (LSC) | HIGH_QUALITY(補正を適用しビネット除去)※ | レンズ由来の周辺減光を除き,照明系のムラだけを残す | +| ブラックレベルロック | true | 黒レベルを固定 | + +※ **シェーディング補正(LSC)は他の処理と性質が逆で,必ず適用してビネットを除去する**.NR・トーンカーブ・エッジ強調は信号を不可逆に歪めるため OFF にするが,シェーディング補正は**レンズ由来の周辺減光(ビネット)を除く**補正であり,これを掛けないと照明系のムラとカメラのビネットが混在してしまう.SmTIAS では `shading_mode = HIGH_QUALITY` を指定しているが実機 DNG は LSC **未補正**で出力されるため,評価側(`src/io/dng_pipeline.py`)でシェーディングマップを順適用してビネットを除去している(経緯は [TECH_01](../05_TECH/TECH_01_DNG対応要求仕様.md)).**未補正のまま評価すると指標が大きく悪化する**(SmTIAS 実測: CoV 0.070→0.146,中心周辺勾配 8.4%→31%,動径 min/max 0.86→0.53.[TEST_03](../06_TEST/TEST_03_外乱光影響評価報告書.md)).したがって TIAS でも,在カメラ補正を掛けるか,RAW で取得してシェーディングマップを残し評価側で補正できるようにする(どちらでもよいが最終的にビネットは必ず除く).なお実機 TIAS は在カメラ補正もシェーディングマップも持たないため,後述「[TIAS 実機カメラ仕様と差分の扱い](#tias-実機カメラ仕様と差分の扱い-tias-cameras--handling-gaps)」のフラットフィールド補正で対応する. + +### 設定方針 (Capture Policy for TIAS) + +優先度の高い順に次を満たす. + +1. **線形・無加工で取得する(最優先)**: 自動露出・自動ホワイトバランス・ノイズ低減・エッジ強調・トーンカーブをすべて OFF にし,可能なら **RAW** で保存する.これらが ON だと輝度が入射光量に比例しなくなり,照明ムラの評価が成立しない. +2. **シェーディング補正(ビネット除去)は必ず適用する**: 上記の OFF 項目とは逆に,レンズ由来の周辺減光(ビネット)は補正して除く.未補正だと照明系のムラとカメラのビネットが混在し,指標が大きく悪化する(SmTIAS 実測で CoV が約 2 倍・中心周辺勾配が約 4 倍に膨張.[TEST_03](../06_TEST/TEST_03_外乱光影響評価報告書.md)).在カメラ補正を掛けるか,RAW+シェーディングマップで評価側補正できるようにする(SmTIAS と同方式). +3. **すべて手動固定する**: 露出・ゲイン(ISO)・ホワイトバランス・フォーカスを手動で固定し,全撮影で同一値を使う. +4. **飽和・黒つぶれを避ける**: 白板の最明部が飽和(クリップ)せず,かつ十分な信号量になるよう露出を調整する.飽和すると最大/最小比・CoV が過小評価される.SmTIAS では飽和画素率 0%・p99 が白レベル 1023 に対し約 880 と余裕を持たせている.TIAS でも飽和ゼロかつ最明部がレンジの 7〜9 割程度を目安とする. +5. **露出値の一致は副次的**: TIAS のセンサ・光学系・照明強度は SmTIAS と異なるため,露出時間・ISO の絶対値を SmTIAS に一致させる必要はない.**「線形・無加工・飽和なし」を満たした上で TIAS 固有の最適露出**を選び,その値を記録する. + +### TIAS 実機カメラ仕様と差分の扱い (TIAS Cameras & Handling Gaps) + +TIAS の撮影は専用アプリ **TIASshot** が制御し,2 系統のカメラ(Lucam: Lumenera Lw110,ImagingSource: DFK 33UX178 / DFK 23UX249)に対応する.いずれも **RGB24 8-bit(デモザイク済み)出力で RAW ではない**.実機の撮影条件と SPEC_03 基準値との対照は [TECH_02 TIAS 撮影条件](../05_TECH/TECH_02_TIAS撮影条件.md) を参照.SmTIAS 基準(RAW 10-bit linear)と揃わない項目について,本評価での扱いを次に定める. + +#### 8-bit・非 RAW 出力の許容 (8-bit / Non-RAW) + +- TIAS は RAW を取得していないため **RGB24 8-bit を許容する**.ただし条件として,撮影パスが**線形**(γ=1.0・トーンマップ OFF)であり,白板が 8-bit レンジの中〜上を使う適正露出であること.真のリスクはビット深度でなく隠れた非線形なので,リニアリティを担保する. +- 量子化ノイズの CoV への寄与は平均輝度 150〜200 で 0.002 程度と無視できる.デモザイク(HIGH_QUALITY 等)は白板の低空間周波数に対して影響が小さく許容する. +- 8-bit ではノイズに弱い画素単位の最大/最小比よりも,**CoV・中心周辺勾配・動径 min/max(輪帯平均)を主指標**とする. + +#### 色処理(WB・CCM・色強調) (Color Processing) + +- ホワイトバランスは校正なしの**固定値(非 identity)**のまま評価してよい.**全チャンネルが同一の空間パターンを持つ限り,固定の線形結合(WB・CCM)は空間パターンをスカラ倍に保ち,CoV など相対指標は不変**だからである. +- ただし色ビネット等でチャンネルごとに空間パターンが異なると合成輝度の指標がわずかに動く.これを避けるロバストチェックとして,**輝度合成に加えて緑チャンネル単体でも均一性を算出する**(単一チャンネルは一様ゲインに完全不変で,WB/CCM のチャンネル混合を回避できる). +- 非線形・機種間不一致を避けるため,**色強調(DFK23: Color Enhancement)は OFF,色補正行列(Lucam: CCM)は NONE** を推奨する(クリップによる非線形化と 3 系統の色処理差を解消). + +#### ビネット除去(TIAS にはマップがない) (Vignette Removal) + +- TIAS はカメラ・SDK ともレンズシェーディング補正手段を持たず,シェーディングマップも保存していない.SPEC_03 はビネット除去を要求するため,**フラットフィールド補正**で対応する. +- 重要: **TIAS 自身の光で均一面を撮っても照明 L とレンズビネット V は分離できない**(参照画像も `L×V` のため,割っても反射率比≒1 になるだけ).V を特性化するには **TIAS 照明とは独立な既知の一様光源**(均一 LED パネル/ライトボックス/別の積分球出力等)で画面全面を撮影し,正規化して V(x,y) を得て白板画像を除算する. +- どうしても V を特性化できない場合は,結果を**「照明×レンズの系全体の均一性」と明記**し,レンズ補正済みの SmTIAS とは**直接比較不可(TIAS 照明均一性の下限値)**として留保する([TEST](../06_TEST/) 側の報告書にも記載). +- 注: TIAS は積分球で照明が本来きわめて均一なはずのため,未補正画像のムラは**ほぼレンズビネットを測っているだけ**になりうる.ビネット除去は特に重要. + +#### 黒レベル(ダークフレーム減算) (Black Level) + +- 加算オフセット(ImagingSource の Brightness 等)は均一性指標を**良い方に偏らせる**(加算 c で CoV = σ/(μ+c),max/min = (max+c)/(min+c) がともに縮む).機種間でオフセットが異なると(DFK33=240 / DFK23=50)そのまま指標差として混入する. +- 対策として,**機種ごとにダークフレーム(遮光/無照明)を撮影して黒レベルを実測し,指標算出前に減算する**(SmTIAS は黒レベル 64 を減算).Brightness が加算オフセットか乗算ゲインかは SDK で確認し,加算なら減算,乗算なら一様係数として不変扱いとする. + +#### 飽和回避(8-bit) (Saturation Check, 8-bit) + +- ROI 内で値 255(念のため ≥254)の画素数 = 0 を確認し,最明部は 180〜230(レンジの 70〜90%)を目安とする.**飽和画素率・p99・チャンネル別 max をショットごとに記録**する(SmTIAS の `image_statistics` 相当). + +## 撮影手順 (Procedure) + +1. **設置**: TIAS 開口部に白板を装着し,カメラ・白板・装置の相対位置を固定する.撮影中に動かない固定機構を用いる. +2. **設定適用**: 上記 [カメラ設定](#カメラ設定-camera-settings) を適用(AE/AWB/AF/NR/エッジ/トーンカーブを OFF,露出・ISO・WB・フォーカスを手動固定,可能なら RAW).**シェーディング補正は OFF にせず,ビネットを除去できる状態にする**(在カメラ補正 or RAW+シェーディングマップ). +3. **露出調整**: 白板最明部が飽和せず,最明部がレンジの 7〜9 割程度になるよう露出を調整し,値を確定・記録する. +4. **外乱光条件**: 原則として TIAS 自前照明のみで撮影する.室内照明の影響を確認したい場合は,位置・露出を完全固定したまま室内灯を ON/OFF した連続 2 枚を撮影する(手法は [TEST_03 外乱光影響評価](../06_TEST/TEST_03_外乱光影響評価報告書.md)). +5. **複数枚撮影**: 同一条件で複数枚(SmTIAS では 12 枚)撮影し,再現性(SSIM・指標分散)を評価できるようにする. +6. **ダークフレーム取得**: 同一カメラ設定で遮光(無照明)画像を撮影し,黒レベル減算用に保存する(機種ごと). +7. **フラットフィールド取得**: TIAS 照明とは**独立な既知の一様光源**で画面全面を撮影し,レンズビネット V(x,y) 特性化用に保存する(取得できない場合は留保事項として記録). +8. **記録**: 各撮影の条件(露出・ゲイン・WB・色処理状態・Brightness/黒レベル・外乱光の有無・温度等)と,対応するダークフレーム/フラットフィールドのファイル名を記録する. + +## データ管理・命名 (Data Management & Naming) + +- **保存先**: `data/tias/whiteboard/`(現状空)に配置する.SmTIAS は `data/smtias/whiteboard/`(PNG)・`data/smtias/quantitative/`(DNG)に分かれている. +- **メタデータ**: TIAS は現状 `Shot{NO}.png`(RGB24)で保存する.撮影条件を記した **JSON サイドカーをショットごとに併置**する(SmTIAS の `*.meta.json` に準拠できると後段の解析が容易).記録項目: 機種・解像度/ROI 切出,露出時間,ゲイン,WB チャンネルゲイン,CCM/Color Enhancement の状態,γ/トーンマップ状態,Denoise/Sharpness,Brightness(黒レベル),シェーディング補正状態+使用フラットフィールド/ダークフレームのファイル名,外乱光条件,飽和・低露出画素率,チャンネル別 mean/max,撮影日時. +- **参照画像**: ダークフレーム・フラットフィールドは白板本体と紐付くファイル名で同一フォルダに保存する. +- **ファイル名**: 装置・対象・撮影日時が判別できる命名とする(例: `TIAS_<日付>_<連番>` 等.SmTIAS の `SmTIAS_YYYYMMDD_HHMMSS` に倣う). +- **ROI 設定**: `config/roi_config.json` に `tias.whiteboard` キーで登録し,解析時に `--roi tias.whiteboard` で参照する. + +## 要確認事項 (Open Questions) + +撮影に着手する前に確定すべき事項.カメラ仕様は [TECH_02 TIAS 撮影条件](../05_TECH/TECH_02_TIAS撮影条件.md) で判明済み(→ 残る確認点を以下に更新).確定し次第,本書を更新する. + +- [ ] TIAS 開口部に合致する白板の仕様・入手/作製方法と物理的な設置可否 +- [ ] TIAS 固有の最適露出(飽和なし・線形を満たす露出時間/ゲイン)の決定 +- [ ] **独立な一様光源によるフラットフィールド取得手段**の確保(不可なら系全体評価+留保で運用) +- [ ] ダークフレーム取得と Brightness(加算オフセット/乗算ゲイン)の意味確定 +- [ ] 露出の自動/手動フラグの実機確定(ImagingSource の二重フラグ) +- [ ] 色処理を OFF にできるか(Lucam CCM=NONE,DFK23 Color Enhancement OFF) +- [ ] TIAS 用 ROI 座標の決定と `config/roi_config.json` への登録 + +## 関連ドキュメント (Related Documents) + +- [PLAN_01 要件定義書](../03_PLAN/PLAN_01_要件定義書.md) — 評価対象・優先度(優先度 2: SmTIAS vs TIAS 照明均一性比較) +- [SPEC_02 照明均一性評価アルゴリズム](SPEC_02_照明均一性評価アルゴリズム.md) — 評価指標・ROI 設定・解析手順 +- [TECH_01 DNG 対応要求仕様](../05_TECH/TECH_01_DNG対応要求仕様.md) — DNG/メタデータ・LSC の扱い +- [TECH_02 TIAS 撮影条件](../05_TECH/TECH_02_TIAS撮影条件.md) — TIASshot 実機の撮影条件と SPEC_03 基準値との対照 +- [TEST_01 照明均一性評価報告書](../06_TEST/TEST_01_照明均一性評価報告書.md) — SmTIAS 単体の撮影実績(12 枚) +- [TEST_03 外乱光影響評価報告書](../06_TEST/TEST_03_外乱光影響評価報告書.md) — 外乱光条件の撮影手法 diff --git "a/docs/05_TECH/TECH_02_TIAS\346\222\256\345\275\261\346\235\241\344\273\266.md" "b/docs/05_TECH/TECH_02_TIAS\346\222\256\345\275\261\346\235\241\344\273\266.md" new file mode 100644 index 0000000..7f69aa2 --- /dev/null +++ "b/docs/05_TECH/TECH_02_TIAS\346\222\256\345\275\261\346\235\241\344\273\266.md" @@ -0,0 +1,190 @@ +# TIAS 撮影条件(照明均一性評価用) (TIAS Capture Conditions for Illumination Uniformity) + +本書は,**TIAS の白板撮影を制御するアプリ「TIASshot」が,照明均一性評価用にどのような条件で撮影しようとしているか**を,コード・設定ファイルから抽出してまとめたものである.[SPEC_03 TIAS 白板撮影プロトコル](../04_SPEC/SPEC_03_TIAS白板撮影プロトコル.md) の要件を満たせるかを **SmTIAS-Evaluation 側に確認してもらう**ことを目的とする. + +> **読む人へ**: 本書は撮影アプリ(TIASshot)の現状実装から起こした事実ベースの記述である.`※` 印・「要確認」は未確定事項である.SPEC_03 との対照表([§4](#4-spec_03-基準値との対照-comparison-with-spec_03))と確認したいこと([§5](#5-確認したいこと-open-questions-for-smtias))を中心に見てほしい.SmTIAS-Evaluation からの回答は [§7](#7-smtias-evaluation-からの回答-answers-from-smtias-evaluation) にある. + +## 1. 前提: 校正なしの撮影 (Premise: Capture Without Calibration) + +通常の TIASshot(舌診用途)は「チャート検出 → ホワイトバランス自動調整 → TCC 色補正 → sRGB 画像出力」という色合わせの校正フローを行う.しかし**照明均一性の評価では色を合わせること自体が目的でない**ため,白板撮影では以下を **行わない**. + +- ホワイトバランスの自動調整(目標輝度へのチャンネルゲイン自動チューニング)を行わない. +- TCC 色補正(チャートからの 17 次元色変換)を行わない.つまり `sRGB` 変換画像は生成しない. + +→ 取得するのは **カメラ素の RGB 画像のみ**.ホワイトバランスのチャンネルゲインは設定ファイル/デバイス状態の**固定値**のまま(フレーム間・セッション間で自動調整しない). + +> **実装メモ**: 現状の TIASshot は校正完了後でないと撮影できないため,照明均一性評価用には**校正を前提としない撮影パスを別途設ける**(DEBUG 機能として追加予定).本書はその撮影が用いる設定をまとめたものである. + +## 2. カメラ構成と出力形式 (Cameras & Output Format) + +- TIASshot は 2 系統のカメラに対応し,**Lucam(Lumenera)を優先し,無ければ ImagingSource** にフォールバックする. +- 撮影出力は **いずれも RGB24(8-bit/ch,デモザイク済みのカラー画像)**.RAW(Bayer/DNG)ではない. + +| カメラ | 機種 | 解像度(撮影) | 出力 | +| --- | --- | --- | --- | +| Lucam | Lumenera Lw110 | 1280 × 1024 | RGB24 8-bit | +| ImagingSource | DFK 33UX178 | 3072 × 2048(ROI 切出あり) | RGB24 8-bit | +| ImagingSource | DFK 23UX249 | 1920 × 1200(ROI 切出あり) | RGB24 8-bit | + +※ ImagingSource は撮影後に ROI(`config.xml` 指定)で切り出す.DFK33UX178: X0/Y330/W1840/H2440,DFK23UX249: X0/Y180/W1136/H1528. + +## 3. カメラ別 撮影条件 (Per-Camera Capture Settings) + +### 3.1 Lucam (Lumenera Lw110) + +設定元: `TIASshot/Cameras/Lucam.cs`(初期化)+ `config.xml`. + +| 項目 | 値 | 備考 | +| --- | --- | --- | +| 出力形式 | RGB24 8-bit | センサ取得 PF_8 → `LucamConvertFrameToRgb24` でデモザイク | +| 露出時間 | 60 ms(手動固定) | `config.xml` `Lucam/Exposure`.自動露出は使わない | +| アナログゲイン | 1.5(固定) | `Lucam/Gain` | +| ホワイトバランス | チャンネルゲイン B 2.62 / G 1.72 / R 1.70(**固定**) | `Lucam/GainB,GainG,GainR`.校正なしのため自動調整しない | +| シャッター | グローバルシャッター | `GlobalShutter` | +| デモザイク | HIGH_QUALITY | `LucamDemosaicMethod.HIGH_QUALITY` | +| 色補正行列 (CCM) | **LED(適用)** ⚠ | `LucamCorrectionMatrix.LED`.SDK 内蔵の光源別 3×3 色補正(チャンネル混合).白板モードでは **NONE 推奨**([§5](#5-確認したいこと-open-questions-for-smtias)) | +| ノイズ低減 / エッジ強調 / トーンカーブ | アプリ側で適用なし | `LucamConversion` 構造体にこれらの項目はない | +| ハードウェアトリガ | OFF | | +| シェーディング補正 (LSC) | **適用なし** ⚠ | アプリ側でビネット補正をしていない.シェーディングマップも保存していない | + +### 3.2 ImagingSource DFK 33UX178 + +設定元: `TIASshot/DFK33UX178.xml`(デバイス状態).接続時にこのファイルを読み込む. + +| 項目 | 値 | 備考 | +| --- | --- | --- | +| 出力形式 | RGB24 8-bit(3072×2048) | | +| 露出 | 手動,0.016667 s(≈1/60 s) | ※ ただし自動フラグが二重に存在し一方が `1`.手動/自動の確定は**要確認** | +| ゲイン | 1.0,Auto=OFF | | +| ホワイトバランス | Auto=OFF,手動 G 64 / B 134 / R 79(**固定**) | 校正なしのため自動調整しない | +| ガンマ | 1.0(線形) | トーンカーブなし | +| トーンマッピング | OFF | | +| ノイズ低減 (Denoise) | 0(OFF) | | +| シャープネス | 0(OFF) | | +| 色補正行列 (Color Matrix) | **OFF** | カメラ内 CCM 無効.Lucam と異なり色補正行列は掛からない | +| ハイライト低減 | OFF | | +| 明るさ (Brightness) | 240 | ※ 黒レベル/オフセット相当か**要確認**(DFK23 とは値が大きく異なる) | +| シェーディング補正 (LSC) | 設定項目に現れず・**適用なし** ⚠ | | + +### 3.3 ImagingSource DFK 23UX249 + +設定元: `TIASshot/DFK23UX249.xml`(デバイス状態). + +| 項目 | 値 | 備考 | +| --- | --- | --- | +| 出力形式 | RGB24 8-bit(1920×1200) | | +| 露出 | 手動,0.016667 s(≈1/60 s) | ※ DFK33 と同じく自動フラグの二重存在.**要確認** | +| ゲイン | 0.0,Auto=OFF | ※ DFK33(1.0)と数値が異なる.スケール/意味は**要確認** | +| ホワイトバランス | Auto=OFF,手動 G 64 / B 140 / R 100(**固定**) | | +| ガンマ | 100(= 1.0,線形)※スケール表記が DFK33 と異なるだけで線形 | | +| トーンマッピング | OFF(Enable=0) | | +| ノイズ低減 (Denoise) | 0(OFF) | | +| シャープネス | 0(OFF) | | +| 色強調 (Color Enhancement) | **ON** ⚠ | DFK33(Color Matrix OFF)と異なり,色強調が有効.機種間で色処理が不一致 | +| ハイライト低減 | OFF | | +| 明るさ (Brightness) | 50 | ※ DFK33(240)と大きく異なる.**要確認** | +| 彩度 (Saturation) | 64 | DFK33 は 100.※色処理の差 | +| シェーディング補正 (LSC) | 設定項目に現れず・**適用なし** ⚠ | | + +## 4. SPEC_03 基準値との対照 (Comparison with SPEC_03) + +SPEC_03「揃える基準値(SmTIAS 定量撮影モード)」と TIASshot の現状を対照する.○=合致,△=条件付き/要確認,✗=相違. + +| SPEC_03 項目 | SmTIAS 基準 | Lucam | DFK33UX178 | DFK23UX249 | +| --- | --- | --- | --- | --- | +| 出力形式 | RAW 10-bit linear | ✗ RGB24 8-bit | ✗ RGB24 8-bit | ✗ RGB24 8-bit | +| 自動露出 AE | OFF 固定 | ○ 固定 60ms | △ 手動だが要確認 | △ 手動だが要確認 | +| ゲイン/ISO | 固定 | ○ 1.5 固定 | ○ 1.0 固定 | ○ 0.0 固定 | +| ホワイトバランス | OFF・gain identity | △ 固定(非 identity) | △ 固定(非 identity) | △ 固定(非 identity) | +| オートフォーカス AF | OFF | △ 要確認 | △ 要確認 | △ 要確認 | +| ノイズ低減 NR | OFF | ○ なし | ○ OFF | ○ OFF | +| エッジ強調 | OFF | ○ なし | ○ Sharpness 0 | ○ Sharpness 0 | +| トーンカーブ | 線形 | ○ なし(≈線形) | ○ γ1.0・ToneMap OFF | ○ γ1.0・ToneMap OFF | +| 色補正/色処理 | identity | ✗ **LED CCM 適用** | ○ Color Matrix OFF | ✗ **Color Enhancement ON** | +| シェーディング補正 LSC | **適用してビネット除去** | ✗ **未除去・マップなし** | ✗ **未除去** | ✗ **未除去** | +| 黒レベルロック | true | △ 要確認 | △ Brightness 240 要確認 | △ Brightness 50 要確認 | + +## 5. 確認したいこと (Open Questions for SmTIAS) + +SmTIAS-Evaluation 側に判断・助言をいただきたい点. + +1. **8-bit RGB(RAW でない)の許容性**: TIAS のカメラは RGB24 8-bit 出力で,RAW 10-bit linear は現状取得していない.量子化・ビット深度が均一性指標(CoV・最大/最小比等)に与える影響は許容範囲か.許容できない場合,Lucam は生 Bayer を取得できる余地がある(要追加実装). +2. **デモザイクの許容性**: いずれも HIGH_QUALITY 等でデモザイク済み.空間補間が高周波の均一性に与える影響は許容か. +3. **ホワイトバランス(固定・非 identity)**: 校正を行わないためチャンネルゲインは固定だが [1,1,1] ではない.SPEC_03 §「なぜ条件を揃えるのか」の「**全画素に等しく作用する一様線形ゲインは相対ばらつき指標に不変**」の理解で,固定 WB のまま評価して問題ないか(=均一性評価に影響しない,で合っているか). +4. **色処理の機種差**: Lucam は LED CCM 適用,DFK23UX249 は Color Enhancement ON,DFK33UX178 は色処理 OFF と,**3 系統で色処理が不一致**.白板モードでは可能な限り無効化(Lucam: CCM=NONE,DFK23: Color Enhancement OFF)すべきか.均一性(輝度)評価なら影響は小さいと見ているが,方針を確認したい. +5. **シェーディング補正 / ビネット(最大の論点)**: TIAS 側はカメラ・SDK ともビネット補正手段を現状もっておらず,シェーディングマップも保存していない.更新後の SPEC_03 は「ビネットは必ず除去」を要求している.対応方針として,(a) 在カメラ補正が使えないか,(b) 使えない場合,評価側でフラットフィールド補正できるよう**均一面の参照画像を別途撮影する**運用で良いか,等を相談したい. +6. **露出の自動/手動の確定**: ImagingSource のデバイス状態で露出の自動フラグが二重に存在する.実機で手動固定になっているかを確認のうえ追記する. +7. **黒レベル / Brightness の扱い**: DFK33=240,DFK23=50 と機種間で差が大きい.黒レベル/オフセットとしての意味と,評価への影響を確認したい. +8. **飽和回避の担保**: 白板最明部がレンジの 7〜9 割・飽和ゼロになるよう露出を決めるが,8-bit でこれをどう検証・記録すればよいか(ヒストグラム確認の手段). +9. **出力形式・メタデータ**: 現状の保存は `Shot{NO}.png`(RGB24).SmTIAS の `*.meta.json` 相当として,どの撮影条件(露出・ゲイン・WB・機種・外乱光有無等)を併記すべきか. + +## 6. 現状の出力・保存 (Current Output & Storage) + +- **保存先**: `config.xml` の `File/SaveFolder`(既定 `C:\TIAS_Data`)配下に `日付\時刻-名称\` を自動生成. +- **画像**: 通常は `Shot{NO}.png`(RGB24)+ `sRGB{CN}_{NO}.jpg`(TCC 変換後)を保存するが,**白板モードでは sRGB は生成せず RGB のみ**とする想定. +- **撮影情報**: `Info.csv` に撮影日時・撮影枚数等を記録(現状は舌診用の項目).白板モードでは SPEC_03 §データ管理・命名に合わせて項目・命名を調整する余地がある. + +## 7. SmTIAS-Evaluation からの回答 (Answers from SmTIAS-Evaluation) + +[§5](#5-確認したいこと-open-questions-for-smtias) の各問への回答.結論として **致命的な対応が必要なのは Q5(ビネット)と Q7(黒レベル)の 2 点**,残りは「概ね許容(条件付き)」である.本回答に基づき SPEC_03 を更新済み([SPEC_03 TIAS 実機カメラ仕様と差分の扱い](../04_SPEC/SPEC_03_TIAS白板撮影プロトコル.md#tias-実機カメラ仕様と差分の扱い-tias-cameras--handling-gaps)). + +### Q1. 8-bit RGB(非 RAW)の許容性 → ○ 許容(条件付き) + +- 許容してよい.量子化ノイズの CoV への寄与は,白板平均が 8-bit レンジの中〜上(mean 150〜200)にあれば σ_quant/μ ≈ 0.3 LSB / 150 ≈ **0.002 程度**で,SmTIAS の CoV 0.04〜0.07 に対し無視できる. +- 条件: 撮影パスが**真に線形**(γ=1.0・トーンマップ OFF,確認済)であること.8-bit の真のリスクはビット深度でなく隠れた非線形なので,リニアリティだけ実機で担保してほしい. +- 8-bit ではノイズに弱い画素単位の最大/最小比より,**CoV・中心周辺勾配・動径 min/max(輪帯平均でロバスト)を主指標**とする運用を推奨.生 Bayer の追加実装は不要. + +### Q2. デモザイクの許容性 → ○ 許容 + +- 白板の照明ムラは低空間周波数であり,デモザイク補間アーティファクト(エッジ・高周波で発生)はほぼ無関係.HIGH_QUALITY で問題なし. + +### Q3. 固定・非 identity の WB → ○ そのまま評価可(理解は概ね正しい) + +- 固定 WB のまま評価してよい.ただし正確な根拠は「一様ゲインだから」ではなく,**「全チャンネルが同一の空間パターン L(x,y) を持つ限り,固定の線形結合(WB でも CCM でも)は空間パターンをスカラ倍に保つので CoV など相対指標は不変」**だから. +- 唯一の注意: 色ビネット等で照明色が空間的に変わるとチャンネルごとに空間パターンが異なり,WB の重み付けで合成 CoV がわずかに動く(Lucam の B=2.62 のように WB ゲインが大きいと色ビネットが増幅されうる). +- ロバストチェックとして,輝度合成に加え **緑チャンネル単体でも均一性を算出**することを推奨(単一チャンネルは一様ゲインに完全不変で,WB/CCM のチャンネル混合を回避できる.G は輝度寄与 0.72 で代表性も高い). + +### Q4. 色処理の機種差 → 可能な限り OFF を推奨 + +- **Color Enhancement(DFK23)は非線形(彩度強調)の可能性が高く害**.必ず OFF に. +- **CCM(Lucam)は固定線形なので輝度均一性への一次影響は小さい**が,①クリップ(負/255 超)による非線形化,②機種間不一致が残る.**NONE 推奨**(両方を解消し 3 系統が揃う). + +### Q5. ★ シェーディング / ビネット(最大の論点)→ フラットフィールド補正で対応(ただし独立光源で) + +- 測定モデル: 画像 I = 照明 L × レンズビネット V ×(白板で一様な反射率).欲しいのは L,邪魔は V. +- **落とし穴**: 提案 (b) を「**TIAS 自身の光で均一面を別撮りして割る**」と解釈すると **L と V を分離できない**(参照画像も `L×V` のため,割っても反射率比 ≒1 になるだけ). +- **正しいフラットフィールド**: V を特性化するには **TIAS 照明とは独立な既知の一様光源**(均一 LED パネル/ライトボックス/別の積分球出力等)で画面全面を撮影し,正規化して V(x,y) を得て白板画像を除算する.まず SDK/カメラベンダ(Lumenera / The Imaging Source)のレンズシェーディングデータが使えないかも確認を. +- どうしても V を特性化できない場合は,結果を**「照明×レンズの系全体の均一性」と明記**し,レンズ補正済みの SmTIAS とは**直接比較不可(TIAS 照明均一性の下限値)**として留保する. +- 特に重要な理由: **TIAS は積分球で照明が本来きわめて均一なはず**.だとすると未補正画像のムラは**ほぼレンズビネットを測っているだけ**になりうる.SmTIAS 実測でも未補正は CoV 約 2 倍・勾配約 4 倍に膨張([TEST_03](../06_TEST/TEST_03_外乱光影響評価報告書.md)).レンズ補正済み SmTIAS と未補正 TIAS を比べると TIAS が不当に悪く見えるため,フェアな比較には V 除去が必須. + +### Q6. 露出の自動/手動 → 手動固定を確定・検証 + +- 手動固定が必須.実機で有効露出がフレーム間一定か(SDK 読み戻し or 連続フレームの平均輝度が一定か)で検証し,二重フラグのどちらが効いているかを確定して追記してほしい. + +### Q7. ★ 黒レベル / Brightness → ダークフレーム減算(要注意) + +- Brightness が**加算オフセット(ペデスタル)**なら,均一性指標を**良い方に偏らせる**(加算 c に対し CoV = σ/(μ+c),max/min = (max+c)/(min+c) がともに縮む).DFK33=240 と DFK23=50 の差が**そのまま指標差として混入**し,機種間比較が無効になる. +- 対策: **機種ごとにダークフレーム(遮光/無照明)を撮影して真の黒レベルを実測し,指標算出前に減算する**(SmTIAS は黒レベル 64 を減算).Brightness が加算か乗算かを SDK で確認し,加算なら減算,乗算なら一様係数で不変扱い. +- ただし要確認: 8-bit で Brightness=240 が純加算ペデスタルなら白板は即 255 飽和でレンジがほぼ無くなる → **240 は別スケールの制御の可能性が高い**.意味(加算/ゲイン/別単位)の確定を依頼したい. + +### Q8. 飽和回避(8-bit)→ ヒストグラムで検証・記録 + +- ROI 内で値 255(念のため ≥254)の画素数 = 0 を確認.目安は最明部 180〜230(レンジの 70〜90%).**飽和画素率・p99・チャンネル別 max をショットごとに記録**(SmTIAS の `image_statistics` 相当).評価側パイプラインに簡易ヒストグラムチェックを追加可能. + +### Q9. 出力形式・メタデータ → JSON サイドカーを推奨 + +- SmTIAS の `*.meta.json` に倣い,**ショットごとに JSON サイドカー**で以下を記録: 機種・解像度/ROI 切出,露出時間,ゲイン,WB チャンネルゲイン,CCM/Color Enhancement の状態,γ/トーンマップ状態,Denoise/Sharpness,Brightness(黒レベル),シェーディング補正状態+使用フラットフィールド/ダークフレームのファイル名,外乱光条件,飽和・低露出画素率,チャンネル別 mean/max,撮影日時. + +### 依頼事項まとめ (Action Items for TIAS Side) + +- [ ] **独立な一様光源**でフラットフィールド(レンズビネット V)を取得する手段の確保(Q5).不可なら系全体評価+留保で運用. +- [ ] 機種ごとの**ダークフレーム取得**と Brightness の意味(加算/乗算)の確定(Q7). +- [ ] **色処理 OFF**(Lucam CCM=NONE,DFK23 Color Enhancement OFF)(Q4). +- [ ] 露出の手動固定の実機確定(Q6). +- [ ] **JSON サイドカー**メタデータの実装(Q9)と飽和チェックの記録(Q8). + +## 関連ドキュメント (Related Documents) + +- [SPEC_03 TIAS 白板撮影プロトコル](../04_SPEC/SPEC_03_TIAS白板撮影プロトコル.md) — 本書が満たそうとする撮影プロトコル +- [TEST_03 外乱光影響評価報告書](../06_TEST/TEST_03_外乱光影響評価報告書.md) — 未補正(LSC なし)で指標が悪化する実測例 +- `TIASshot/Cameras/Lucam.cs`,`TIASshot/DFK33UX178.xml`,`TIASshot/DFK23UX249.xml`,`TIASshot/config.xml` — 本書の設定の出典