Newer
Older
TIASjudge / docs / 02_ENV / ENV_01_技術スタック.md

技術スタック (Tech Stack)

全体像 (Overview)

Windows / Mac 両対応のデスクトップアプリとして再構築する.当面のターゲットは Windows とし,Mac 対応が必要になった時点で同一コードのまま動作確認する.

項目採用技術選定理由
言語Python 3.12保守・引き継ぎの容易さ.研究用途との親和性
GUIPySide6(Qt for Python)Win/Mac 両対応.画像表示・クリック操作・ダイアログが揃う
画像処理・SVMopencv-python(OpenCV 4.x)現行 (OpenCV 2.4) と同じ OpenCV 系実装.cv2.ml.SVM で診断結果の同一性を確保
数値計算NumPyopencv-python の依存.CSV・行列演算に使用
テストpytestcore ロジック(Lab 変換・SVM 分類・CSV 読込)の回帰テスト
lint / フォーマットRufflint とフォーマットを 1 ツールで両立
パッケージ管理uv(pyproject.toml + uv.lock)依存の完全な再現.uv sync 一発で環境構築
配布PyInstaller(dev 依存として導入済み)Windows は exe,Mac は app として単体配布可能.ビルド手順は ENV_04「配布用ビルド」参照

現行実装からの移行対応 (Migration Notes)

  • SVM: 旧 API CvSVM(OpenCV 2.x)→ cv2.ml.SVM_create()(RBF, C_SVC, γ=0.011, C=12.0)に置き換える.パラメータ・学習データが同じであれば予測結果は一致する見込み.現行 exe の出力との突き合わせで検証する
  • GUI: MFC ダイアログ → PySide6 ウィジェットに置き換える(画面構成は現行を踏襲)
  • 文字コード: Shift-JIS → UTF-8 に統一する

動作環境 (Supported Environments)

  • Windows 10/11 x64(当面の主ターゲット)
  • macOS(将来対応.コードは対応を前提に書き,OS 依存処理を避ける)