Frigate NVR con Raspberry Pi 5
Introducción
Frigate NVR es un grabador de video en red de código abierto diseñado para detección de objetos en tiempo real con modelos de IA. Emparejado con la Raspberry Pi 5, permite una videovigilancia eficiente en el borde. Esta guía te llevará a través del proceso de instalación y configuración para una configuración óptima.
Frigate Oficial
Preparar Hardware
Componentes Recomendados
| reComputer AI R2130 | 
|---|
|  | 
Alternativamente, también necesitas al menos una cámara para transmisión de video. Puedes consultar Hardware recomendado para ver las cámaras recomendadas.
Instalar el Controlador PCIe de Hailo
Paso 1: Habilitar PCIe Gen 3
Abre una terminal y ejecuta el siguiente comando.
sudo apt update
sudo raspi-config
En el diálogo, selecciona 6 Advanced Options y luego A8 PCIe Speed.
 

Elige "Yes" para habilitar el modo PCIe Gen 3.

Después, haz clic en "Finish" para salir.
Edita /boot/firmware/config.txt, añade la siguiente línea al final del archivo.
dtoverlay=pciex1-compat-pi5,no-mip
Paso 2: Instalar el Controlador PCIe de Hailo
Instala el paquete dkms. Este paquete es necesario para instalar el controlador PCIe de Hailo.
sudo apt update
sudo apt install dkms
Obtén el controlador Hailo PCIe desde GitHub.
git clone https://github.com/hailo-ai/hailort-drivers
cd hailort-drivers/linux/pcie
git checkout 24e7ff2fb58fab7029024c1a1d3f2d1914f56d7b
Luego, instala el controlador PCIe de Hailo.
sudo make install_dkms
Después de la instalación, descarga el firmware para Hailo y cópialo al directorio /lib/firmware/hailo.
cd ../..
./download_firmware.sh
sudo mkdir -p /lib/firmware/hailo
sudo cp hailo8_fw*.bin /lib/firmware/hailo/hailo8_fw.bin
Para evitar el problema de PCIe max_desc_page_size, también necesitamos crear una regla en /etc/modprobe.d/hailo_pci.conf con el siguiente contenido.
options hailo_pci force_desc_page_size=4096
Reinicia el sistema para que surta efecto.
sudo reboot
Después de reiniciar el sistema, el controlador PCIe de Hailo se instala exitosamente. Se creará el dispositivo /dev/hailo0. Verifica el dispositivo ejecutando el siguiente comando.
$ ls /dev/hailo*
/dev/hailo0
Instalar Frigate NVR
En esta parte, asumimos que tienes tu cámara configurada y lista para transmitir con protocolo RTSP en resolución 1920x1080.
- URL RTSP de ejemplo: rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
Paso 1: Preparar el Entorno
- 
Actualiza tu sistema: sudo apt update
- 
Instalar Docker: curl -fsSL get.docker.com | bash
 sudo usermod -aG docker $USER
- 
Reinicia el sistema: sudo reboot
Paso 2: Desplegando Frigate
- 
Descargar la Imagen de Frigate: Ve a Package frigate, elige una imagen con el sufijo -h8l. En este ejemplo, elegimosghcr.io/blakeblackshear/frigate:0.15.0-rc2-h8l.docker pull ghcr.io/blakeblackshear/frigate:0.15.0-rc2-h8l
- 
Crear Archivo Docker Compose: Aquí tienes un ejemplo del archivo frigate.yml, el dispositivohailo0es el que creaste en el paso anterior, los archivos de configuración están en el directorio./configy los archivos de datos están en el directorio./data.:services:
 frigate-hailo:
 container_name: frigate-hailo
 privileged: true
 restart: unless-stopped
 image: ghcr.io/blakeblackshear/frigate:0.15.0-rc2-h8l
 shm_size: 1024mb
 devices:
 - /dev/hailo0:/dev/hailo0
 volumes:
 - /etc/localtime:/etc/localtime:ro
 - ./config/:/config
 - ./data/db/:/data/db
 - ./data/storage:/media/frigate
 - type: tmpfs
 target: /tmp/cache
 tmpfs:
 size: 1g
 ports:
 - 5000:5000
- 
Editar Configuración de Frigate: Aquí tienes un ejemplo del archivo config/config.yml, que es para la aplicación Frigate:database:
 path: /data/db/frigate.db
 go2rtc:
 streams:
 home:
 - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
 cameras:
 home:
 ffmpeg:
 inputs:
 - path: rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
 roles:
 - record
 - detect
 mqtt:
 enabled: False
 objects:
 track:
 - person
 - cat
 detectors:
 hailo8l:
 type: hailo8l
 device: PCIe
 model:
 width: 300
 height: 300
 model_type: ssd
 path: /config/model_cache/h8l_cache/ssd_mobilenet_v1.hef
 version: 0.15-1
- 
Iniciar Instancia de Docker: docker compose -f frigate.yml up -dDespués de que Frigate esté funcionando, puedes acceder a la interfaz web de Frigate en http://<tu-raspberry-pi-ip>:5000para verificar la transmisión de la cámara. 
Seeed Frigate
Modificar configuración PCIe
Abrir config.txt
sudo nano /boot/firmware/config.txt 
Añade el siguiente texto a config.txt
dtparam=pciex1_gen=3
dtoverlay=pciex1-compat-pi5,no-mip
Luego usa Ctrl+x para guardar el archivo y reiniciar la caja de IA
Instalar docker y hailo-all
sudo apt update
sudo apt install hailo-all
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
sudo apt install docker-compose-plugin
Crear archivo yml
Crear frigate.yml para docker compose para ejecutar frigate
cd ~
sudo nano frigate.yml
Aquí tienes un ejemplo de frigate.yml
version: "3.9"
services:
    frigate-hailo:
        container_name: frigate-hailo
        privileged: true
        restart: unless-stopped
        image: frigate_seeed:latest
        shm_size: 1024mb
        environment:
            - HAILO_MONITOR=1
        devices:
            - /dev/hailo0:/dev/hailo0
        volumes:
            - /etc/localtime:/etc/localtime:ro
            - ./config/:/config
            - ./data/db/:/data/db
            - ./data/storage:/media/frigate
            - type: tmpfs
              target: /tmp/cache
              tmpfs:
                  size: 1000000000
        ports:
            - 5000:5000
            - 1984:1984
            - 5002:5002
            - 5003:5003
Descarga el modelo yolo y crea config.yml.
mkdir config && cd config && mkdir model_cache
cd model_cache && wget https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.14.0/hailo8/yolov8n.hef
cd .. && nano config.yml
Aquí hay un ejemplo de config.yml
database:
  path: /data/db/frigate.db
go2rtc:
  streams:
    home:
      - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1
    home1:
      - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1
    yard:
      - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1
    yard1:
      - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1
cameras:
  home:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/home
          roles:
            - detect
    motion:
      threshold: 45
      contour_area: 60
      improve_contrast: true
  yard:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/yard
          roles:
            - detect
    motion:
      threshold: 45
      contour_area: 60
      improve_contrast: true
      
  home1:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/home1
          roles:
            - detect
    motion:
      threshold: 45
      contour_area: 60
      improve_contrast: true
      
  yard1:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/yard1
          roles:
            - detect
    motion:
      threshold: 45
      contour_area: 60
      improve_contrast: true
mqtt:
  enabled: false
objects:
  track:
    - person
    - cat
detectors:
  hailo8l:
    type: hailo8l
    device: PCIe
model:
  width: 640
  height: 640
  path: /config/model_cache/yolov8n.hef
version: 0.16-0
camera_groups:
  test:
    order: 1
    icon: LuAlignEndHorizontal
    cameras:
      - home
      - home1
      - yard
      - yard1
Descargar imagen de docker y ejecutar frigate
Descargar imagen frigate_seeed
cd ~
docker pull mjqx2023/frigate_seeed
docker compose -f frigate.yml start 
Luego abre localhost:5000 en el navegador web de tu AI box:

Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.