Empecemos con un poco de contexto: estoy alojando Gladys y Frigate en un Rock64 (ROCK64 - PINE64), es un CPU bastante básico respaldado por 4GB de memoria. Para Gladys, « hace el trabajo ». Para Frigate, en cambio, parece bastante comprometido. Aquí está el estado de carga cuando Frigate está en modo « detección »:
Además, Frigate no detecta nada, y es ahí donde me pregunto si mi configuración de Frigate es correcta. Las instrucciones relativas a la instalación y configuración de la integración son muy precisas (aunque lo admito, siguen siendo un poco complejas para un principiante), en cambio, he seguido las instrucciones básicas de Claude para configurar una cámara de prueba…
Voy a empezar por intentar encontrar un Coral USB, configurarlo y reducir la carga de la CPU antes de seguir adelante…
Lo que está claro es que Coral podrá aliviar enormemente tu CPU. ¡Es importante, especialmente porque ya tienes Gladys, que sufre por esta carga alta durante las detecciones de Frigate!
Si puede ayudarte, aquí está la configuración de Frigate en mi servidor, sin TPU.
El truco es hacer la detección en una imagen de menor calidad y en un número limitado de imágenes por segundo. No he inventado nada, Claude lo hizo por mí.
Extracto en cuestión:
detect:
enabled: true # detección de objetos activada por defecto
width: 1536
height: 864
fps: 5
Configuración completa:
# Gestionado por Ansible — rol frigate
# Documentación: https://docs.frigate.video/configuration/
mqtt:
enabled: true
host: IP_GLADYS_AQUÍ
port: 1883
topic_prefix: frigate
client_id: frigate
user: gladys
password: ELIMINADO
# Aceleración de hardware para mi CPU que es un iGPU Intel UHD 770 (i5-13500T)
ffmpeg:
hwaccel_args: preset-intel-qsv-h264
output_args:
record: preset-record-generic-audio-aac
# Detector de objetos
# https://docs.frigate.video/configuration/object_detectors
detectors:
ov:
type: openvino
device: GPU # iGPU Intel via OpenVINO
# Modelo de detección (requerido para OpenVINO) — SSDLite MobileNet v2 proporcionado
# en la imagen en /openvino-model (rápido, ligero).
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 de los flujos de cámaras (Mis cámaras son Raspberry Pi)
go2rtc:
streams:
pi3-cam: rtsp://10.15.10.155:8554/cam
# Grabación — esquema Frigate 0.16+
# https://docs.frigate.video/configuration/record
record:
enabled: true
# Grabación continua (0 = desactivada, guarda solo motion/alertas)
continuous:
days: 0
# Grabación activada por movimiento
motion:
days: 30
# Conservación de los segmentos relacionados con las alertas / detecciones de objetos
alerts:
retain:
days: 30
mode: motion
detections:
retain:
days: 30
mode: motion
# Detección de movimiento global
motion:
threshold: 30
improve_contrast: true
# Objetos seguidos globalmente — limita la detección y alimenta los topics MQTT
# de estado por objeto: frigate/<cam>/<objeto> (ON/OFF) + frigate/<cam>/<objeto>/snapshot
objects:
track:
- person
# Cámaras
cameras:
pi3-cam:
ffmpeg:
inputs:
- path: rtsp://10.15.10.155:8554/cam
roles: [detect, record]
detect:
enabled: true # detección de objetos activada por defecto
width: 1536
height: 864
fps: 5
# Máscara de movimiento: excluye la zona del OSD (fecha/hora/hostname grabados
# en MediaMTX) — de lo contrario, el texto que desfilaba activaba movimiento + detección.
# Coordenadas normalizadas 0-1, polígono "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 # marca de tiempo grabada en los snapshots
bounding_box: true
retain:
default: 30
version: 0.17-0