#!/bin/bash # ============================================================================ # Saqr PPE Detection - Run on Local Laptop # ============================================================================ # # Usage: # scripts/run_local.sh # webcam 0 # scripts/run_local.sh --source 1 # webcam 1 # scripts/run_local.sh --source video.mp4 # video file # scripts/run_local.sh --gui # PySide6 GUI # scripts/run_local.sh --detect # simple detection (no tracking) # # ============================================================================ set -e HERE="$(cd "$(dirname "$0")" && pwd)" PROJECT_ROOT="$(cd "$HERE/.." && pwd)" cd "$PROJECT_ROOT" SOURCE="0" MODEL="saqr_best.pt" CONF="0.35" MODE="saqr" # saqr | gui | detect HEADLESS=false MAX_MISSING=90 MATCH_DIST=250 CONFIRM=5 while [[ $# -gt 0 ]]; do case $1 in --source) SOURCE="$2"; shift 2 ;; --model) MODEL="$2"; shift 2 ;; --conf) CONF="$2"; shift 2 ;; --gui) MODE="gui"; shift ;; --detect) MODE="detect"; shift ;; --headless) HEADLESS=true; shift ;; --max-missing) MAX_MISSING="$2"; shift 2 ;; --match-distance) MATCH_DIST="$2"; shift 2 ;; --confirm) CONFIRM="$2"; shift 2 ;; *) echo "Unknown arg: $1"; exit 1 ;; esac done if command -v conda &>/dev/null; then source "$(conda info --base)/etc/profile.d/conda.sh" 2>/dev/null || true conda activate AI_MSI_yolo 2>/dev/null || true fi echo "============================================" echo " Saqr PPE Detection - Local Laptop" echo "============================================" echo " Mode : $MODE" echo " Source : $SOURCE" echo " Model : $MODEL" echo " Conf : $CONF" echo "============================================" echo "" HEADLESS_FLAG="" if [ "$HEADLESS" = true ]; then HEADLESS_FLAG="--headless" fi case $MODE in saqr) python -m saqr.apps.saqr_cli \ --source "$SOURCE" \ --model "$MODEL" \ --conf "$CONF" \ --max-missing "$MAX_MISSING" \ --match-distance "$MATCH_DIST" \ --status-confirm-frames "$CONFIRM" \ $HEADLESS_FLAG ;; gui) python -m saqr.gui.app \ --source "$SOURCE" \ --model "$MODEL" ;; detect) python -m saqr.apps.detect_cli \ --source "$SOURCE" \ --model "$MODEL" \ --conf "$CONF" ;; esac