SEM画像に対して、以下を1本のスクリプトで実行するためのリポジトリです。
- 物体検出(void / crack)
- レビューGUIでのラベル修正(void / crack / other)
- annotations.json からのレビュー再開
- レビュー結果を使ったファインチューニング
対象スクリプト: SEM_cudaopenvinofinetuning.py
- CUDA + OpenVINO の併用による推論ワークフロー
- レビューGUIのキーバインド対応(V/C/A, Ctrl+A など)
- ファインチューニング中に、設定を別GUIから随時変更可能
- 中断時の保存・再開フローを用意
- OS: Windows 10/11 (推奨)
- Python: 3.10 以上
- 任意: NVIDIA GPU + CUDA 対応 PyTorch(高速化用)
python -m venv .venv
.\.venv\Scripts\Activate.ps1pip install -r requirements.txtrequirements.txt には以下を含めています。
numpyPillowopenvinotorchtorchvision
GPU利用時は、環境に合わせてPyTorchを上書きインストールしてください(例: CUDA 12.1)。
pip install --upgrade torch torchvision --index-url https://download.pytorch.org/whl/cu121同梱のランチャーを使う方法(推奨):
.\run_sem.ps1または:
run_sem.bat直接実行:
python .\SEM_cudaopenvinofinetuning.py起動後、GUIで以下3モードを選択します。
- detect + review
- review resume
- finetune
.pthモデルと画像フォルダを選択- 検出結果を
_outputs_finetuneに保存 - レビューGUIでラベル調整
主な出力:
_outputs_finetune/output_*.jpg(可視化画像)_outputs_finetune/summary.csv_outputs_finetune/annotations.json
- 保存済み
annotations.jsonを読み込み - レビュー作業を再開
- ベースモデル(
.pth)とannotations.jsonを選択 - 学習中に設定コントロールGUIで各種パラメータを更新可能
- 学習完了後、
*_finetuned.pthを出力
本スクリプトは「学習中でも設定を変更できる」運用を重視しています。
変更可能項目と反映タイミング:
input_size: 次batchfreeze_mode: 次batch(optimizer再構築は次epoch)batch_size: 次epochnum_workers: 次epochlr: 次epochepochs: 次epoch
V: 選択BBoxをvoidC: 選択BBoxをcrackA: 選択BBoxをotherCtrl+A: 現在画像の全BBoxをotherB: BBox作成モード ON/OFFCtrl+Z / Ctrl+Y: Undo / RedoSpaceorEnter: 確定して次画像H: ヘルプ表示
.gitignore で以下のモデル成果物は除外設定済みです。
*.pth,*.pt,*.ckpt*.onnx- OpenVINO IR:
*.xml,*.bin
- PowerShell実行ポリシーで
run_sem.ps1がブロックされる場合:
powershell -ExecutionPolicy Bypass -File .\run_sem.ps1- GPUが使えない場合:
- PyTorchのCUDA版インストールを確認
- 自動的にCPU実行にフォールバックする箇所があります
LICENSE を参照してください。