¡Integración de Frigate!

Buenas noches @lmilcent y @guim31

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 »:

image

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…

¡Buen final de noche,

Jean

¿Cuántas cámaras tienes? ¿Qué resoluciones?

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

Para una cámara en la entrada sin mucho movimiento: