Frigate NVR - Videoanalyse mit AI

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

Frigate NVR - Videoanalyse mit AI
Frigate NVR - Videoanalyse mit AI
  • Matthias Kleine
  • 18.01.2024
  • Linux

Spätestens, wenn Du Netzwerkkameras hast, möchtest Du diese auch zur Überwachung einsetzen (auf privatem Gelände natürlich). Hierfür biete viele Hersteller All-In-One Lösungen mit einem Zentralen Recorder an, welcher dann die eigenen Kameras einbinden kann und bei Bildveränderungen Aufzeichnungen auf eine Festplatte ablegt. Da heutzutage aber eh nur noch IP-Kameras verwendet werden, kann man das Thema auch selbst in die Hand nehmen. Eventuell sagt Dir MotionEye oder Shinobi etwas. Eine etwas modernere Lösung ist Frigate. Hier werden verschiedene Kamera-Streams live analysiert und Objekte mit künstlicher Intelligenz erkannt.

Voraussetzungen

  • Debian (12) nativ - z.B. auf einem Mini PC
  • Docker
  • Portainer (optional)

Video

Hausbau-Kurs

Grundsystem

Wie in der Dokumentation empfohlen, nutze ich hier ein natives Linux-System mit Docker. Wie man so ein System aufsetzt, habe ich hier erklärt.

Portainer

Um Dir die Arbeit mit Docker etwas leichter zu machen, kannst Du Portainer nutzen. Dieses Stück Open Source Software läuft ebenfalls als Container und hilft Dir dabei, Deine Container und Images auf einer grafischen (Web-)Oberfläche zu verwalten. Zwingend notwendig ist das natürlich nicht für dieses Video.

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
sudo mkdir -p /media/frigate/storage/
sudo touch /media/frigate/config.yml

Hier meine Beispiel-Datei für docker-compose:

version: "3.9"
services:
  frigate:
    container_name: frigate
    privileged: true # this may not be necessary for all setups
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "128mb"
    devices:
      - /dev/bus/usb:/dev/bus/usb # passes the USB Coral, needs to be modified for other versions
      - /dev/dri/renderD128 # for intel hwaccel, needs to be updated for your hardware
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /media/frigate/config.yml:/config/config.yml
      - /media/frigate/storage/:/media/frigate
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "8554:8554" # RTSP feeds
      - "8555:8555/tcp" # WebRTC over tcp
      - "8555:8555/udp" # WebRTC over udp
    environment:
      FRIGATE_RTSP_PASSWORD: "test1234"

Meine Beispiel-Config

Im ersten Schritt wird die Erkennung deaktiviert, um zu testen ob der Stream läuft.

mqtt:
  enabled: False

cameras:
  cam1:
    ffmpeg:
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://admin:geheimpasswort@10.10.9.90:554/11
          roles:
            - detect
    detect:
      enabled: False # <---- disable detection until you have a working camera feed
      width: 1920
      height: 1080

Am Ende des Videos habe ich dann noch Aufzeichnungen konfiguriert:

mqtt:
  enabled: False

detectors:
  coral:
    type: edgetpu
    device: usb

objects:
  track:
    - person
    - dog
    - cup
    - eye_glasses
  filters:
    person:
      min_score: 0.6

record:
  enabled: True
  events:
    pre_capture: 5
    post_capture: 5
    objects:
      - person
      - dog

cameras:
  cam1:
    ffmpeg:
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://admin:geheimpasswort@10.10.9.90:554/11
          roles:
            - detect
            - record
    detect:
      enabled: True
      width: 1920
      height: 1080
  cam2:
    ffmpeg:
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://streamer:geheimpasswort@10.10.9.91:554/h264_stream
          roles:
            - detect
            - record
    detect:
      enabled: True
      width: 640
      height: 480
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos