152 lines
4.0 KiB
Markdown
152 lines
4.0 KiB
Markdown
# デバッグガイド
|
||
|
||
## 処理プロセスの単体デバッグ
|
||
|
||
顔検出処理をBlenderアドオンから独立してテストできます。
|
||
|
||
### セットアップ
|
||
|
||
```bash
|
||
# 仮想環境をアクティベート
|
||
source .venv/bin/activate
|
||
|
||
# 必要なパッケージがインストールされていることを確認
|
||
pip install ultralytics opencv-python torch
|
||
```
|
||
|
||
### 基本的な使い方
|
||
|
||
#### 画像ファイルで検出をテスト
|
||
|
||
```bash
|
||
# 検出結果を画面に表示
|
||
python debug_detector.py --image path/to/image.jpg
|
||
|
||
# 検出結果を保存
|
||
python debug_detector.py --image path/to/image.jpg --output result.jpg
|
||
|
||
# マスク画像も保存
|
||
python debug_detector.py --image path/to/image.jpg --output result.jpg --save-mask
|
||
```
|
||
|
||
#### 動画ファイルで検出をテスト
|
||
|
||
```bash
|
||
# 特定のフレームをテスト
|
||
python debug_detector.py --video path/to/video.mp4 --frame 100
|
||
|
||
# フレーム範囲をテスト(画面表示)
|
||
python debug_detector.py --video path/to/video.mp4 --start 0 --end 10
|
||
|
||
# フレーム範囲を処理して動画保存
|
||
python debug_detector.py --video path/to/video.mp4 --start 0 --end 100 --output result.mp4
|
||
```
|
||
|
||
### パラメータ調整
|
||
|
||
```bash
|
||
# 信頼度閾値を調整(デフォルト: 0.5)
|
||
python debug_detector.py --image test.jpg --conf 0.3
|
||
|
||
# NMS IoU閾値を調整(デフォルト: 0.45)
|
||
python debug_detector.py --image test.jpg --iou 0.5
|
||
|
||
# マスクサイズを調整(デフォルト: 1.5)
|
||
python debug_detector.py --image test.jpg --mask-scale 2.0
|
||
|
||
# マスクのぼかし半径を調整(デフォルト: 20)
|
||
python debug_detector.py --image test.jpg --feather-radius 30
|
||
```
|
||
|
||
### カスタムモデルの使用
|
||
|
||
```bash
|
||
python debug_detector.py --image test.jpg --model path/to/custom_model.pt
|
||
```
|
||
|
||
## 推論サーバーの単体起動
|
||
|
||
推論サーバーを単独で起動してテストすることもできます。
|
||
|
||
### サーバー起動
|
||
|
||
```bash
|
||
# 仮想環境をアクティベート
|
||
source .venv/bin/activate
|
||
|
||
# サーバーを起動(ポート8181)
|
||
python server/main.py
|
||
```
|
||
|
||
### APIテスト
|
||
|
||
別のターミナルで:
|
||
|
||
```bash
|
||
# サーバー状態を確認
|
||
curl http://127.0.0.1:8181/status
|
||
|
||
# マスク生成をリクエスト
|
||
curl -X POST http://127.0.0.1:8181/generate \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"video_path": "/path/to/video.mp4",
|
||
"output_dir": "/tmp/masks",
|
||
"start_frame": 0,
|
||
"end_frame": 10,
|
||
"conf_threshold": 0.5,
|
||
"iou_threshold": 0.45,
|
||
"mask_scale": 1.5
|
||
}'
|
||
|
||
# タスクの状態を確認(task_idは上記レスポンスから取得)
|
||
curl http://127.0.0.1:8181/tasks/{task_id}
|
||
|
||
# タスクをキャンセル
|
||
curl -X POST http://127.0.0.1:8181/tasks/{task_id}/cancel
|
||
```
|
||
|
||
## トラブルシューティング
|
||
|
||
### GPU(ROCm)が認識されない
|
||
|
||
```bash
|
||
# PyTorchがROCmを認識しているか確認
|
||
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}')"
|
||
|
||
# ROCm環境変数を確認
|
||
echo $ROCM_PATH
|
||
echo $HSA_OVERRIDE_GFX_VERSION
|
||
```
|
||
|
||
環境変数が設定されていない場合:
|
||
|
||
```bash
|
||
source .envrc
|
||
# または
|
||
eval "$(direnv export bash)"
|
||
```
|
||
|
||
### モデルが見つからない
|
||
|
||
デフォルトモデルは `models/yolov8n-face-lindevs.pt` に配置する必要があります。
|
||
|
||
```bash
|
||
ls -l models/yolov8n-face-lindevs.pt
|
||
```
|
||
|
||
### メモリ不足エラー
|
||
|
||
大きな動画を処理する場合、メモリ不足になる可能性があります:
|
||
|
||
- フレーム範囲を小さく分割して処理
|
||
- `--conf` 閾値を上げて検出数を減らす
|
||
- より小さいモデルを使用
|
||
|
||
## デバッグのベストプラクティス
|
||
|
||
1. **まず画像でテスト**: 動画よりも画像の方が早く結果を確認できます
|
||
2. **パラメータの影響を理解**: `--conf`、`--mask-scale` などを変えて結果を比較
|
||
3. **小さいフレーム範囲から始める**: 動画テストは最初は5-10フレーム程度で
|
||
4. **結果を保存して比較**: `--output` オプションで結果を保存し、パラメータごとに比較
|