Modelle per .env steuerbar (UPLOAD_MODEL), Upload nicht mehr hardcoded

- UPLOAD_MODEL-Env (Default yolo11s.pt) statt fest verdrahtetem YOLO("yolo11s.pt")
- WEBCAM_MODEL bleibt getrennt steuerbar
- .env.example: beide Modelle dokumentiert (n<s<m<l<x)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-03 16:27:15 +02:00
parent 3fa76e03ae
commit d570b330c5
2 changed files with 8 additions and 5 deletions

View File

@@ -14,8 +14,10 @@ export CAMERA_URL="http://CAMERA-IP:81/stream"
export CAMERA_ID="meine-kamera"
# --- Inferenz-Tuning -------------------------------------------------------
# Modell fuer den Webcam-/Livestream-Pfad (Nano = schnell).
export WEBCAM_MODEL="yolo11n.pt"
# YOLO-Modelle, getrennt fuer Live-Webcam und Video-Upload (n<s<m<l<x:
# groesser = genauer, aber mehr GPU-Last). yolo11s ist ein guter Kompromiss.
export WEBCAM_MODEL="yolo11s.pt"
export UPLOAD_MODEL="yolo11s.pt"
# Eingabegroesse fuer YOLO. Kleiner = schneller, groesser = genauer.
export YOLO_IMGSZ=480
# Motion-Gate: ab so vielen veraenderten Pixeln laeuft YOLO ueberhaupt.

7
app.py
View File

@@ -42,8 +42,9 @@ except ImportError:
CAMERA_URL = os.environ.get("CAMERA_URL", "http://CAMERA-IP:81/stream")
# --- Inferenz-Tuning (alles per Env ueberschreibbar) -----------------------
# Webcam nutzt das leichte Nano-Modell; Video-Upload bleibt auf yolo11s.
# Modelle getrennt steuerbar: Live-Webcam vs. Video-Upload (n/s/m/l/x).
WEBCAM_MODEL = os.environ.get("WEBCAM_MODEL", "yolo11n.pt")
UPLOAD_MODEL = os.environ.get("UPLOAD_MODEL", "yolo11s.pt")
# Kleinere imgsz = weniger Rechenarbeit pro Frame (Default YOLO waere 640).
YOLO_IMGSZ = int(os.environ.get("YOLO_IMGSZ", "480"))
# Motion-Gate: ab so vielen veraenderten Pixeln (320x180-Graubild) gilt
@@ -170,8 +171,8 @@ app.config["MAX_CONTENT_LENGTH"] = 200 * 1024 * 1024 # 200MB Upload-Limit
app.config["TEMPLATES_AUTO_RELOAD"] = True
app.jinja_env.auto_reload = True
# Globales Modell fuer den Video-Upload-Pfad (per Request).
model = YOLO("yolo11s.pt")
# Globales Modell fuer den Video-Upload-Pfad (per Request), per Env steuerbar.
model = YOLO(UPLOAD_MODEL)
names = model.names
VEHICLE_CLASSES = {"car", "truck", "bus", "motorcycle"}