diff --git "a/docs/04_SPEC/SPEC_04_TIASjudge\345\274\225\343\201\215\346\270\241\343\201\227\344\273\225\346\247\230.md" "b/docs/04_SPEC/SPEC_04_TIASjudge\345\274\225\343\201\215\346\270\241\343\201\227\344\273\225\346\247\230.md" index 4ee2596..748763f 100644 --- "a/docs/04_SPEC/SPEC_04_TIASjudge\345\274\225\343\201\215\346\270\241\343\201\227\344\273\225\346\247\230.md" +++ "b/docs/04_SPEC/SPEC_04_TIASjudge\345\274\225\343\201\215\346\270\241\343\201\227\344\273\225\346\247\230.md" @@ -23,15 +23,24 @@ | もの | 内容 | 入手先 | | --- | --- | --- | -| `color_model.json` | 判定モデル(特徴の定義・標準化の値・係数・切片・クラス・学習条件・来歴).約 28 KB | `tias-train color-export` の出力(サーバで実行し `tias-remote pull` で回収.[ENV_04](../02_ENV/ENV_04_開発コマンド.md)) | +| `color_model.json` | 判定モデル(特徴の定義・標準化の値・係数・切片・クラス・学習条件・来歴).約 28 KB.**ややあり除外のモデル**(下記) | `tias-train color-export --config configs/export/color_logistic_without_mild.yaml` の出力(サーバで実行し `tias-remote pull` で回収.[ENV_04](../02_ENV/ENV_04_開発コマンド.md)).2026-09-28 の書き出しは実験 ID `20260928-232605_color_logistic_without_mild_405ab01-dirty` | | `deploy/color_model.py` | 判定モデルの参照実装(NumPy と標準ライブラリのみ.単一ファイル) | `src/tias_judge_model/deploy/color_model.py` をそのままコピーする | | `segmentation/`(`detection.py`・`resunet.py`・`pipeline.py`) | セグメンテーションの参照実装(NumPy・OpenCV・onnxruntime のみ.パッケージ内では相互にだけ依存) | `src/tias_judge_model/segmentation/` から 3 ファイルをコピーし,import 文のパッケージ名を合わせる | | `ResUNet.onnx` | 舌の分割モデル(約 71 MB.入力 `input.1` (1,3,256,256) float32,出力 (1,2,256,256)) | DeepTIAS 2.7 の `models/` に同梱のもの(開発元のファイルとハッシュが一致) | | `Detection_Normal.onnx` | 舌の検出モデル(約 12 MB) | DeepTIAS 2.7 の `models/Detection_Normal.pb` を `scripts/convert_detection_to_onnx.py` で変換したもの(サーバの `~/models/TongueSegmentation/` にある) | -- モデルファイル(`.onnx`・`color_model.json`)はリポジトリに入れない(臨床データから学習したもの.配布物への同梱の可否は「未決事項」) +- モデルファイル(`.onnx`・`color_model.json`)は本リポジトリに入れない(臨床データから学習したもの) +- **DeepTIAS のモデル(`ResUNet.onnx`・`Detection_Normal.onnx`)は TIASjudge の配布物に含めてよい**(2026-09-29 にユーザーが確認) - TIASjudge 側に必要な依存: `numpy`・`opencv-python`(既存)・`onnxruntime`(追加).TensorFlow・PyTorch・scikit-learn は不要 +### 渡す判定モデル (Selected Model) + +**ややあり除外のモデル**(`configs/export/color_logistic_without_mild.yaml`.学習 754 枚・C = 0.1)を渡す(2026-09-29 のユーザー判断). + +- 「あり」と淡紅の画像での成績が込みのモデルよりやや良い(common macro F1 0.644 対 0.630.[TEST_05](../06_TEST/TEST_05_色特徴分類器の実験.md)) +- ややありの画像を淡紅と判定しやすい(約 55 %.込みは約 33 %).臨床で「ややあり」を淡紅と判断することが多い点と整合する +- 学習にややありを含まないため,ややありの画像では「あり」の色か淡紅のどちらかに寄った判定になる.境界例であることは確率の値(最大の確率が低い)で示す + ## 1. 舌の検出 (Detection) `segmentation/detection.py` の `OnnxDetector.detect(bgr)`. @@ -89,7 +98,5 @@ ## 未決事項 (Open Items) -- **どちらの判定モデルを渡すか**: ややあり込み(`configs/export/color_logistic_with_mild.yaml`)か除外(`color_logistic_without_mild.yaml`)か.除外のほうが「あり」と淡紅の成績がやや良く,ややありの画像を淡紅と判定しやすい(約 55 %.込みは約 33 %.TEST_05).臨床で「ややあり」を淡紅と判断することが多い点とは除外のほうが整合する -- **DeepTIAS のモデルを TIASjudge の配布物に含めてよいか**(権利) - 配布サイズ(`ResUNet.onnx` 約 71 MB で単体 exe が大きくなる) - 学習データ(舌色データセット)のマスクと,本実装のマスクがビット単位で一致するかは未確認(元の撮影画像が無いため.TEST_07「注意」) diff --git "a/docs/06_TEST/TEST_07_\343\202\273\343\202\260\343\203\241\343\203\263\343\203\206\343\203\274\343\202\267\343\203\247\343\203\263\343\201\256\345\206\215\347\217\276\343\201\250\345\210\244\345\256\232\343\203\242\343\203\207\343\203\253\343\201\256\346\233\270\343\201\215\345\207\272\343\201\227.md" "b/docs/06_TEST/TEST_07_\343\202\273\343\202\260\343\203\241\343\203\263\343\203\206\343\203\274\343\202\267\343\203\247\343\203\263\343\201\256\345\206\215\347\217\276\343\201\250\345\210\244\345\256\232\343\203\242\343\203\207\343\203\253\343\201\256\346\233\270\343\201\215\345\207\272\343\201\227.md" index 70d90da..efb13aa 100644 --- "a/docs/06_TEST/TEST_07_\343\202\273\343\202\260\343\203\241\343\203\263\343\203\206\343\203\274\343\202\267\343\203\247\343\203\263\343\201\256\345\206\215\347\217\276\343\201\250\345\210\244\345\256\232\343\203\242\343\203\207\343\203\253\343\201\256\346\233\270\343\201\215\345\207\272\343\201\227.md" +++ "b/docs/06_TEST/TEST_07_\343\202\273\343\202\260\343\203\241\343\203\263\343\203\206\343\203\274\343\202\267\343\203\247\343\203\263\343\201\256\345\206\215\347\217\276\343\201\250\345\210\244\345\256\232\343\203\242\343\203\207\343\203\253\343\201\256\346\233\270\343\201\215\345\207\272\343\201\227.md" @@ -62,7 +62,7 @@ ## 次の一手 (Next Steps) - TIASjudge 側(TIASjudge の Issue #13)で,SPEC_04 に従って判定モードを組み込む -- どちらの判定モデル(ややあり込み/除外)を使うかを決める(SPEC_04「未決事項」) +- TIASjudge にはややあり除外のモデルを渡すと決めた(2026-09-29.SPEC_04「渡す判定モデル」) - 元の撮影画像が残っていれば,舌色データセットのマスクとの一致を確かめる ## 実験 ID (Run IDs) diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 0d7261d..4b1a8f2 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -142,4 +142,6 @@ - 結果: 撮影画像から検出+ResUNet で IoU 0.958(検出の失敗 0/170).検出を省くと 0.46 で,検出は必須.出力チャンネル 0 が舌であることを確認.判定モデルは込み・除外とも C=0.1 - 失敗パターン: 研究室 PC 上の cmd のパイプ(tar | ssh)が止まり,Windows の tar で作った tar は権限のため展開に失敗した → tar ファイルを scp で送り `--delay-directory-restore` で展開.展開失敗時のエラーにファイル名が大量に出たので,今後はエラー出力を件数で確かめる - 失敗パターン: OneDrive で大量に削除すると「大量削除の検出」で復元される → 削除後に OneDrive の確認に「削除する」と答える必要がある - - 未確認: 舌色データセットのマスクとのビット単位の一致(元の撮影画像が無いため).どちらの判定モデルを渡すか(SPEC_04「未決事項」) + - 未確認: 舌色データセットのマスクとのビット単位の一致(元の撮影画像が無いため) + - 決定(2026-09-29): TIASjudge にはややあり除外のモデルを渡す(臨床で「ややあり」を淡紅と判断することが多い点と整合し,成績もやや良いため.SPEC_04「渡す判定モデル」) + - 決定(2026-09-29): DeepTIAS のモデル(ResUNet・検出)は TIASjudge の配布物に含めてよい(ユーザーが確認)