GPU ベースの顔検出マイクロサービス。Nekonoverse のアップロード画像から顔位置を検出し、フォーカルポイントを自動設定する。
| モード | DETECTION_MODE |
動作 | VRAM |
|---|---|---|---|
| 自動 (デフォルト) | auto |
アニメ→実写フォールバック | ~250MB |
| アニメのみ | anime |
アニメ顔のみ | ~50MB |
| 実写のみ | real |
実写顔のみ | ~200MB |
- アニメ顔: deepghs/anime_face_detection (YOLO ONNX, GPU) — F1 0.97
- 実写顔: MTCNN (PyTorch, GPU)
# アニメのみモード (軽量、torch不要)
docker build -t face-detect .
docker run --gpus all -e DETECTION_MODE=anime -p 8001:8001 face-detect
# フルモード (アニメ+実写)
docker build --build-arg REQUIREMENTS=requirements.txt -t face-detect .
docker run --gpus all -p 8001:8001 face-detectpip install -r requirements.txt # or requirements-anime.txt
DETECTION_MODE=auto uvicorn main:app --host 0.0.0.0 --port 8001| エンドポイント | メソッド | 説明 |
|---|---|---|
/health |
GET | ヘルスチェック |
/object-detection |
POST | 顔検出 (HF Inference API 互換) |
{
"inputs": "<base64エンコード画像>",
"parameters": { "threshold": 0.5 }
}[
{
"label": "anime_face",
"score": 0.8,
"box": { "xmin": 30, "ymin": 20, "xmax": 70, "ymax": 60 }
}
]メインサーバーの .env に追加:
FACE_DETECT_URL=http://<GPUマシンのIP>:8001/object-detection未設定時やサービスダウン時はサイレントにスキップされ、アップロードは正常に動作する。
MIT