Newer
Older
DeepTIAS / docs / PROGRESS.md

開発進捗ログ

  •  プロジェクト立ち上げ(/setup)完了: 引き継いだ DeepTIAS v2.7(C# WinForms)に合わせて要件定義・技術スタック・環境構築手順・仕様書・規約・開発計画を作成した.

    • 動機: 前任者のソースは単体でビルド・実行できず,配布済み exe も現行ソースと一致しなかった(旧 exe は OpenCvSharp3 / .NET 4.7.1,現行ソースは OpenCvSharp4 / .NET 4.8).
    • 設計判断: 目的を「誰でもビルド・実行できる」「解析結果を変えずに整理」の 2 つに絞り,回帰テストを作ってから整理する順序にした..NET への移行は TensorFlowSharp の作り直しが要るため対象外.
    • 環境: 存在しない OpenCvSharpExtern.dll の参照を削除してビルドが通ることを確認済み(NuGet の runtime パッケージが同 DLL を配置する).実行は外部バイナリ取り込み後に確認する.
    • 未実装・後段: PLAN_02 ステップ 1 から.未決事項は Image&Calib の出力先固定(Output\debug)と回帰テストの正解データの作り方.

  •  回帰テストの正解を旧 exe の出力に決定: 研究で使われてきた解析結果が旧 exe(2021 年 12 月版)の出力と判明したため,正解を旧 exe の出力とし,PLAN_02 にステップ 3「旧 exe と現行ソースの解析結果の比較」を追加した.

    • 設計判断: 当初は「現行ソースの結果を正解(案 A)」としていたが,それでは現行ソースと旧 exe のずれ(OpenCV 3.2 → 4.9)を正解として固めてしまい,過去の研究データと比べられなくなるため不採用とした.

  •  PLAN_02 ステップ 1: 実行に必要なファイルの取り込み: 旧ビルド出力から外部 exe・ネイティブ DLL・色補正データ・出力雛形を Tongue extraction/runtime/ に取り込み,ビルドだけで実行ファイル一式が揃うようにした.Image モードで 2 枚の解析が通ることを確認した.

    • 設計判断: 取り込む DLL は PE のインポート表で依存関係を調べて決めた(RemoveSmallRegionDLL → opencv_world320,TongueAnalysis.exe → opencv_*3413d).TongueAnalysis.exe は Data\ を作業ディレクトリから読むため,ルート側の Data/ を採用した(rgb2lab/Data/ とは改行コードだけが違う).データと雛形は改行を変換せず旧ビルドとバイト単位で同一に保つ.
    • 発見: Image モードで 1-drawBox・shape の中間ファイルが最後の画像の分しか残らない既存の不具合(MyMakeDir が画像ごとにフォルダを空にする).ステップ 2 の対象に追加した.
    • 未実装・後段: Image&Calib モードは VC++ デバッグ用ランタイムが無く未検証.旧 exe(正本)での Image モード実行もまだ.

  •  PLAN_02 ステップ 2: 実行を妨げる不具合の修正: dst2 ウィンドウでの停止,Start のたびの解析の重複登録,例外の握りつぶし,Image モードで中間ファイルが最後の画像分しか残らない件,Image&Calib の出力先の Output\debug 固定を直した.analysis.csv は修正前とバイト単位で一致.

    • 設計判断: 重複登録は「DoWork のハンドラを 1 つにして RunWorkerAsync の引数でモードを渡す」方式にした(登録を外し忘れて重複する余地が構造上無いため).
    • テスト・リファクタリング(/implement の Phase 2・3)は省略した.変更が画面操作の流れだけで,規約上画面操作は自動テストの対象外であり,テストプロジェクトはステップ 4 で作るため.整理はステップ 6 で行う.
    • 未実装・後段: Image&Calib の完走確認には Visual Studio 2022 Community(C++ によるデスクトップ開発)の導入が必要(ステップ 3 の前提).出力フォルダ名が 12 時間表記で午後のフォルダが午前より前に並ぶ件は未対応.