#!/usr/bin/env bash
# オンデバイス顔ぼかしカメラ 一発セットアップ（Raspberry Pi / Jetson / PC）
# 提供: エッジAIラボ https://ai-edge-lab.com/demos/face-mosaic/
# 実行前にこのスクリプトの中身を確認することを推奨します。
set -e

BASE="https://ai-edge-lab.com/tools/face-blur"
DIR="${1:-$HOME/face-blur}"

echo "==> $DIR にセットアップします"
mkdir -p "$DIR"
cd "$DIR"

echo "==> スクリプトを取得"
curl -fsSL -o face_blur_cam.py "$BASE/face_blur_cam.py"

echo "==> Python 仮想環境を作成（システムパッケージも利用＝既存OpenCV/Piカメラ対応）"
python3 -m venv venv --system-site-packages
# shellcheck disable=SC1091
source venv/bin/activate
pip install --upgrade pip >/dev/null

# 既存(システム)のOpenCVに FaceDetectorYN があればそれを使い、再インストールしない。
# → Jetson(JetPack同梱OpenCV)等での不要なビルド/競合を回避。
if python3 -c "import cv2, sys; sys.exit(0 if hasattr(cv2, 'FaceDetectorYN') else 1)" 2>/dev/null; then
  echo "==> 既存OpenCVを利用: $(python3 -c 'import cv2; print(cv2.__version__)')（FaceDetectorYN あり）"
else
  echo "==> OpenCV を導入します（opencv-python）"
  pip install "opencv-python>=4.9.0"
fi
# numpy（無ければ）
python3 -c "import numpy" 2>/dev/null || pip install numpy

cat <<EOF

✅ セットアップ完了！ 次のコマンドで起動できます：

    cd "$DIR"
    source venv/bin/activate
    python3 face_blur_cam.py                  # USB/標準カメラ・ぼかし
    python3 face_blur_cam.py --mode mosaic    # モザイク
    python3 face_blur_cam.py --picamera       # ラズパイ内蔵カメラ(CSI)

  すべて端末内で処理され、映像は外部に送信されません。q キーで終了。
EOF
