Integration von Frigate!

Guten Abend @lmilcent und @guim31

Fangen wir mit etwas Kontext an: Ich hoste Gladys und Frigate auf einem Rock64 (ROCK64 - PINE64), das ist ein eher einfacher CPU mit 4 GB RAM. Für Gladys „erledigt“ es das. Für Frigate zusätzlich scheint es eher fraglich. Hier ist der Auslastungszustand, wenn Frigate im „Erkennungsmodus“ ist:

image

Zusätzlich erkennt Frigate nichts, und genau da frage ich mich, ob meine Frigate-Konfiguration korrekt ist. Die Anweisungen zur Installation und Konfiguration der Integration sind sehr präzise (aber ich gebe zu, dass sie für einen Anfänger etwas komplex sind), andererseits habe ich die grundlegenden Anweisungen von Claude befolgt, um eine Testkamera zu konfigurieren…

Ich werde zunächst versuchen, einen Coral USB zu finden, ihn zu konfigurieren und die CPU-Auslastung zu senken, bevor ich weitergehe…

Schönen Abend noch,

Jean

Wie viele Kameras hast du? Welche Auflösungen?

Eins ist sicher, der Coral kann deinen CPU enorm entlasten!!
Das ist trotzdem wichtig, besonders weil du bereits Gladys darauf hast, die unter dieser hohen Last bei den Frigate-Erkennungen leidet.

Falls es hilft, hier ist meine Frigate-Konfiguration auf einem Server ohne TPU.

Der Trick besteht darin, die Erkennung auf einem Bild mit geringerer Qualität und einer begrenzten Anzahl von Bildern pro Sekunde durchzuführen. Ich habe nichts Neues erfunden, Claude hat es für mich gemacht.

Der relevante Abschnitt:

    detect:
      enabled: true            # Objekterkennung standardmäßig aktiviert
      width: 1536
      height: 864
      fps: 5

Vollständige Konfiguration:

# Von Ansible verwaltet — Rolle frigate
# Dokumentation: https://docs.frigate.video/configuration/

mqtt:
  enabled: true
  host: IP_GLADYS_HIER
  port: 1883
  topic_prefix: frigate
  client_id: frigate
  user: gladys
  password: ENTFERNT

# Hardware-Beschleunigung für meinen CPU, der ein Intel UHD 770 iGPU (i5-13500T) ist
ffmpeg:
  hwaccel_args: preset-intel-qsv-h264
  output_args:
    record: preset-record-generic-audio-aac

# Objekterkennung
# https://docs.frigate.video/configuration/object_detectors
detectors:
  ov:
    type: openvino
    device: GPU   # Intel iGPU über OpenVINO

# Erkennungsmodell (erforderlich für OpenVINO) — SSDLite MobileNet v2 wird
# im Image unter /openvino-model bereitgestellt (schnell, leicht).
model:
  width: 300
  height: 300
  input_tensor: nhwc
  input_pixel_format: bgr
  path: /openvino-model/ssdlite_mobilenet_v2.xml
  labelmap_path: /openvino-model/coco_91cl_bkgr.txt

# Go2rtc — Restream der Kamerastreams (Meine Kameras sind Raspberry Pi)
go2rtc:
  streams:
    pi3-cam: rtsp://10.15.10.155:8554/cam

# Aufzeichnung — Schema Frigate 0.16+
# https://docs.frigate.video/configuration/record
record:
  enabled: true
  # Kontinuierliche Aufzeichnung (0 = deaktiviert, speichert nur Bewegung/Warnungen)
  continuous:
    days: 0
  # Bewegungsausgelöste Aufzeichnung
  motion:
    days: 30
  # Aufbewahrung von Segmenten, die mit Warnungen/Objekterkennungen verbunden sind
  alerts:
    retain:
      days: 30
      mode: motion
  detections:
    retain:
      days: 30
      mode: motion

# Globale Bewegungserkennung
motion:
  threshold: 30
  improve_contrast: true

# Global verfolgte Objekte — Begrenzung der Erkennung und Versorgung der MQTT
# Status-Topics pro Objekt: frigate/<cam>/<objekt> (AN/AUS) + frigate/<cam>/<objekt>/snapshot
objects:
  track:
    - person


# Kameras
cameras:
  pi3-cam:
    ffmpeg:
      inputs:
        - path: rtsp://10.15.10.155:8554/cam
          roles: [detect, record]
    detect:
      enabled: true            # Objekterkennung standardmäßig aktiviert
      width: 1536
      height: 864
      fps: 5
    # Bewegungsmaske: Ausschluss der OSD-Zone (Datum/Uhrzeit/Hostname graviert
    # über MediaMTX) — andernfalls löst der laufende Text Bewegung und Erkennung aus.
    # Normalisierte Koordinaten 0-1, Polygon "x1,y1,x2,y2,...".
    motion:
      mask:
        - 0,0,0.33,0,0.33,0.07,0,0.07
    record:
      enabled: true
    snapshots:
      enabled: true
      timestamp: true          # Zeitstempel auf Snapshots graviert
      bounding_box: true
      retain:
        default: 30
  
version: 0.17-0

Für eine Kamera am Eingang mit wenig Bewegung: