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:
@@ -14,8 +14,10 @@ export CAMERA_URL="http://CAMERA-IP:81/stream"
|
|||||||
export CAMERA_ID="meine-kamera"
|
export CAMERA_ID="meine-kamera"
|
||||||
|
|
||||||
# --- Inferenz-Tuning -------------------------------------------------------
|
# --- Inferenz-Tuning -------------------------------------------------------
|
||||||
# Modell fuer den Webcam-/Livestream-Pfad (Nano = schnell).
|
# YOLO-Modelle, getrennt fuer Live-Webcam und Video-Upload (n<s<m<l<x:
|
||||||
export WEBCAM_MODEL="yolo11n.pt"
|
# 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.
|
# Eingabegroesse fuer YOLO. Kleiner = schneller, groesser = genauer.
|
||||||
export YOLO_IMGSZ=480
|
export YOLO_IMGSZ=480
|
||||||
# Motion-Gate: ab so vielen veraenderten Pixeln laeuft YOLO ueberhaupt.
|
# Motion-Gate: ab so vielen veraenderten Pixeln laeuft YOLO ueberhaupt.
|
||||||
|
|||||||
7
app.py
7
app.py
@@ -42,8 +42,9 @@ except ImportError:
|
|||||||
CAMERA_URL = os.environ.get("CAMERA_URL", "http://CAMERA-IP:81/stream")
|
CAMERA_URL = os.environ.get("CAMERA_URL", "http://CAMERA-IP:81/stream")
|
||||||
|
|
||||||
# --- Inferenz-Tuning (alles per Env ueberschreibbar) -----------------------
|
# --- 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")
|
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).
|
# Kleinere imgsz = weniger Rechenarbeit pro Frame (Default YOLO waere 640).
|
||||||
YOLO_IMGSZ = int(os.environ.get("YOLO_IMGSZ", "480"))
|
YOLO_IMGSZ = int(os.environ.get("YOLO_IMGSZ", "480"))
|
||||||
# Motion-Gate: ab so vielen veraenderten Pixeln (320x180-Graubild) gilt
|
# 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.config["TEMPLATES_AUTO_RELOAD"] = True
|
||||||
app.jinja_env.auto_reload = True
|
app.jinja_env.auto_reload = True
|
||||||
|
|
||||||
# Globales Modell fuer den Video-Upload-Pfad (per Request).
|
# Globales Modell fuer den Video-Upload-Pfad (per Request), per Env steuerbar.
|
||||||
model = YOLO("yolo11s.pt")
|
model = YOLO(UPLOAD_MODEL)
|
||||||
names = model.names
|
names = model.names
|
||||||
|
|
||||||
VEHICLE_CLASSES = {"car", "truck", "bus", "motorcycle"}
|
VEHICLE_CLASSES = {"car", "truck", "bus", "motorcycle"}
|
||||||
|
|||||||
Reference in New Issue
Block a user