Frigate NVR con Raspberry Pi 5
Introducción
Frigate NVR es un grabador de video en red de código abierto diseñado para la detección de objetos en tiempo real con modelos de IA. Emparejado con la Raspberry Pi 5, permite una vigilancia de video eficiente en el borde, potenciada por YOLOv8n. Esta guía te guiará a través del proceso de instalación y configuración para una configuración óptima.
Preparar el Hardware
Componentes recomendados
reComputer AI R2130 |
---|
![]() |
Alternativamente, también necesitarás al menos una cámara para la transmisión de video. Puedes consultar Hardware recomendado para ver las cámaras recomendadas.
Instalar 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 Opciones avanzadas y luego A8 Velocidad PCIe.
Elige "Sí" para habilitar el modo PCIe Gen 3.
Luego, haz clic en "Finalizar" para salir.
Edita /boot/firmware/config.txt
y agrega 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 PCIe de Hailo desde GitHub.
$ git clone --depth 1 https://github.com/hailo-ai/hailort-drivers
$ git checkout 24e7ff2fb58fab7029024c1a1d3f2d1914f56d7b
$ cd hailort-drivers/linux/pcie
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 max_desc_page_size
de PCIe, 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 los cambios surtan efecto.
$ sudo reboot
Después de reiniciar el sistema, el controlador PCIe de Hailo estará instalado correctamente. 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 ya tienes tu cámara configurada y lista para transmitir con el protocolo RTSP en resolución 1920x1080.
- Ejemplo de URL RTSP:
rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
Paso 1: Preparar el entorno
Actualizar el sistema:
$ sudo apt update
Instalar Docker:
$ curl -fsSL get.docker.com | bash
$ sudo usermod -aG docker $USERReiniciar el sistema:
$ sudo reboot
Paso 2: Desplegar Frigate
Obtener la imagen de Frigate:
Ve a Paquete de 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 dispositivohailo0
es el que creaste en el paso anterior, los archivos de configuración están en el directorio./config
y los archivos de datos 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:5000Descargar el modelo:
Ve a Modelos preentrenados públicos para descargar el modelo que deseas usar. Aquí un ejemplo usando el modelo YOLOv8n:
yolov8n
.$ mkdir -p ./config/model_cache
$ sudo wget https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.14.0/hailo8/yolov8n.hef -O ./config/model_cache/yolov8n.hefEditar configuración de Frigate:
Aquí tienes un ejemplo del archivo
config/config.yml
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_path: /config/model_cache/yolov8n.hef
model:
width: 640
height: 640
input_tensor: nhwc
input_pixel_format: bgr
version: 0.15-1Iniciar la instancia de Docker:
$ docker compose -f frigate.yml up -d
Después de que Frigate esté en funcionamiento, puedes acceder a la interfaz web de Frigate en
http://<tu-ip-de-raspberry-pi>:5000
para ver la transmisión de la cámara.
Soporte técnico y discusión de productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte el soporte necesario y asegurarnos de que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.