diff --git a/CLAUDE.md b/CLAUDE.md index 937a928..8675d45 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,10 +1,10 @@ -# プロジェクト名 +# SmTIAS-Evaluation - +SmTIAS(定量撮影モード)の白板画像から照明均一性を評価するツール群.PNG / DNG(RAW_SENSOR) を入力に,CoV・max/min 比・中心周辺勾配・動径 min/max 比などの指標算出と可視化を行う. ## 開発進捗 -最新: TECH_05 Phase 1(DNG 読み込み I/F)と動径 min/max 比指標を実装.次は DNG の既存パイプライン統合(TECH_05 Phase 4〜) +最新: プロジェクト/デバイス名を SmTIAS へ改名し,`load_roi_config` と DNG 輝度化パイプラインを `src/`(`src/config.py`・`src/io/dng_pipeline.py`)へ集約.次はリリースタグ付け ※ 本欄は**最新ステップ 1 行のみ上書き更新**.詳細な進捗履歴(動機・設計判断・失敗パターン)は [docs/PROGRESS.md](docs/PROGRESS.md) に追記する.運用ルールは GUIDE_05「進捗記録の運用ルール(CLAUDE.md / PROGRESS.md)」を参照. ## 必須ルール(コード実装時) @@ -63,6 +63,7 @@ ### 04_SPEC(仕様・設計) - アーキテクチャ設計: docs/04_SPEC/SPEC_01_アーキテクチャ設計.md +- 照明均一性評価アルゴリズム: docs/04_SPEC/SPEC_02_照明均一性評価アルゴリズム.md ### 05_TECH(技術設計) diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f45d1a --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +# SmTIAS-Evaluation + +SmTIAS(定量撮影モード)の白板画像から **照明均一性** を評価するツール群です. +PNG / DNG(RAW_SENSOR) を入力に,各種均一性指標の算出と可視化を行います. + +## 主な機能 + +- **均一性指標**: CoV・max/min 比・平均/標準偏差 +- **空間解析**: 中心/中間/周辺ゾーンの輝度勾配,中心周辺比,動径輝度プロファイル,動径 min/max 比 +- **再現性**: 位置合わせ付き SSIM による画像間再現性評価 +- **DNG 対応**: RAW_SENSOR DNG を linear で読み込み,`meta.json` の lscMap によるレンズシェーディング補正を順適用 +- **可視化**: 輝度マップ・ヒストグラム・動径プロファイル・ゾーンマップ,Streamlit ビューア + +## セットアップ + +Python 3.11 以上が必要です.詳細は [docs/02_ENV/ENV_02_環境構築手順.md](docs/02_ENV/ENV_02_環境構築手順.md) を参照してください. + +```bash +python -m venv .venv +.venv\Scripts\activate # Windows(macOS/Linux は source .venv/bin/activate) +pip install -r requirements.txt +pip install -r requirements-dev.txt +``` + +画像データは `data/`,解析結果は `output/` に置きます(どちらも `.gitignore` 対象). + +## 使い方 + +```bash +# PNG(白板画像 1 枚 / ディレクトリ一括) +python scripts/run_uniformity.py --image data/smtias/whiteboard/xxx.png +python scripts/run_uniformity.py --image data/smtias/whiteboard/ + +# DNG(定量モード,LSC 補正あり) +python scripts/run_uniformity_dng.py --image data/smtias/quantitative/xxx.dng + +# ROI 選択(対話的に矩形を選び config/roi_config.json へ保存) +python scripts/select_roi.py --image data/smtias/whiteboard/xxx.png + +# 結果ビューア(Streamlit) +streamlit run scripts/viewer.py +``` + +ROI は `config/roi_config.json` のキー(既定 `smtias.whiteboard`)で指定します. + +## プロジェクト構成 + +```text +src/ +├── config.py # ROI 設定の読み込み +├── io/ # 画像 I/O(PNG / DNG)と DNG 輝度化パイプライン +├── analysis/ # 均一性・空間解析・位置合わせ・再現性 +├── export/ # CSV 出力・バッチ集計 +└── visualization/ # matplotlib による各種プロット +scripts/ # 解析ランナー・ビューア・比較図生成 +tests/ # pytest +docs/ # 規約・設計・報告書(索引は CLAUDE.md) +``` + +## テスト + +```bash +python -m pytest +``` + +## ドキュメント + +規約・設計・報告書は `docs/` 以下にあります.全体の索引は [CLAUDE.md](CLAUDE.md) を参照してください. diff --git "a/docs/05_TECH/TECH_01_DNG\345\257\276\345\277\234\350\246\201\346\261\202\344\273\225\346\247\230.md" "b/docs/05_TECH/TECH_01_DNG\345\257\276\345\277\234\350\246\201\346\261\202\344\273\225\346\247\230.md" index 8c7c2a4..527ad36 100644 --- "a/docs/05_TECH/TECH_01_DNG\345\257\276\345\277\234\350\246\201\346\261\202\344\273\225\346\247\230.md" +++ "b/docs/05_TECH/TECH_01_DNG\345\257\276\345\277\234\350\246\201\346\261\202\344\273\225\346\247\230.md" @@ -405,7 +405,7 @@ ## 引き継ぎ手順 (Hand-off Procedure) -SmTIAS-Evaluation 側 Claude セッションでの作業着手手順.[TECH_02 SmTIAS 引き継ぎ手順](TECH_02_SmTIAS引き継ぎ手順.md) と同様の構造. +SmTIAS-Evaluation 側 Claude セッションでの作業着手手順.[TECH_02 SmTIAS-LightSim への引き継ぎ](TECH_02_SmTIAS-LightSimへの引き継ぎ.md) と同様の構造. ### Step A: 環境準備 @@ -428,7 +428,7 @@ ## 既存ドキュメントとの整合 (Cross-References) - [TECH_01 定量撮影モード要求仕様](TECH_01_定量撮影モード要求仕様.md) — 撮影モード側の要求書 -- [TECH_02 SmTIAS 引き継ぎ手順](TECH_02_SmTIAS引き継ぎ手順.md) — 引き継ぎパターンの参考 +- [TECH_02 SmTIAS-LightSim への引き継ぎ](TECH_02_SmTIAS-LightSimへの引き継ぎ.md) — 引き継ぎパターンの参考 - [TECH_03 定量モード実装報告と SHADING_MODE 相談](TECH_03_定量モード実装報告とSHADING_MODE相談.md) — SmTIAS 側実装報告(meta.json スキーマ等) - [TECH_04 SmTIAS への回答](TECH_04_SmTIASへの回答.md) — SHADING_MODE 判断とフェーズ A/B 分割 - [TEST_01 キャリブレーション検証履歴](../06_TEST/TEST_01_キャリブレーション検証履歴.md) — 経緯 diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index d089dfb..9953d3a 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -20,3 +20,9 @@ - **PNG vs DNG 比較の注意**: 違いはスケール(0-1/0-255)でなくドメイン(PNG=sRGB / DNG=linear).CoV 等はスケール不変なので,公平比較には PNG を inverse-sRGB で linear 化する必要がある. - **動径 min/max 比**: 画素単位 max/min は外れ画素に弱いため,20点輪帯平均の min/max をロバスト指標として追加. - **後段(未着手)**: TECH_05 Phase 4(既存パイプライン統合)/ Phase 5(PNG vs DNG,撮影フレーミング差への ROI 対応)/ Phase 6(SPEC_01/02 更新)/ ビューア(viewer.py) の DNG 対応.SPEC のフル更新は TECH_05 Phase 6 に委ねる.`scripts/run_uniformity_dng.py` は PNG 版の DNG 対応ランナーとして暫定追加(共通化は将来). + +- [x] **リリース準備: SmTIAS へ全面改名 + 共通化リファクタ + ドキュメント整理**: 新バージョンのタグ付けに向けて以下を実施. + - **改名**: プロジェクト/デバイス名を MiniTIAS → SmTIAS に全面統一(`pyproject.toml`,ROI キー `smtias.whiteboard`,docs/scripts/tests/src,GitHub リポジトリ名 `SmTIAS-Evaluation`,`data/`・`output/` の実データ/成果物ファイル名).参照コピー `MiniTias/`(外部リポジトリ)は対象外. + - **リファクタ(共通化)**: 重複していた `load_roi_config` を `src/config.py` に集約.`run_uniformity_dng.py` 内の DNG 輝度化パイプライン(`dng_luminance`/`lsc_gain_rgb`/`_upsample`)を `src/io/dng_pipeline.py` に移設し,compare 系・plot 系スクリプトが「スクリプト間 import」をやめて `src/` から取得するように変更(上記「共通化は将来」を解消).`dng_loader.py` の Rec.709 係数重複は SmTIAS-LightSim への単体コピー前提のため意図的に据え置き. + - **ドキュメント**: ルート `README.md` を新設.CLAUDE.md にプロジェクト概要と SPEC_02 索引を追加.TECH_01 のローカル TECH_02 リンク切れを修正. + - **検証**: pytest 381 passed,主要スクリプト(run/plot/compare 各種)の smoke test も成功(指標値は改名前と一致).