Saltar al contenido principal

Primeros pasos

tip

Si ya tienes un entorno con Linux y Docker instalados, puedes continuar en Instalando SecureVu a continuación.

Si ya tienes SecureVu instalado mediante Docker o a través de una aplicación de Home Assistant, puedes continuar en Configurando SecureVu a continuación.

Configuración del hardware

Esta sección te guía a través de la configuración de un servidor con Debian Bookworm y Docker.

Instalar Debian 12 (Bookworm)

Existen muchas guías sobre cómo instalar Debian Server, por lo que esta será una guía abreviada. Conecta un monitor y teclado temporales a tu dispositivo para poder instalar un servidor mínimo sin entorno de escritorio.

Preparar los medios de instalación

  1. Descarga la imagen de instalación pequeña desde el sitio web de Debian
  2. Graba la ISO en un dispositivo USB (una herramienta popular es balena Etcher)
  3. Inicia tu dispositivo desde USB

Instalar y configurar Debian para acceso remoto

  1. Asegúrate de que tu dispositivo esté conectado a la red para que se puedan instalar actualizaciones y opciones de software
  2. Elige la opción de instalación no gráfica si no tienes un ratón conectado, aunque cualquier método de instalación funciona bien
  3. Se te pedirá que establezcas la contraseña del usuario root y que crees un usuario con contraseña
  4. Instala el software mínimo. Menos dependencias implican menos mantenimiento.
    1. Desmarca "Entorno de escritorio Debian" y "GNOME"
    2. Marca "Servidor SSH"
    3. Mantén marcadas las "utilidades estándar del sistema"
  5. Tras el reinicio, inicia sesión como root en el símbolo del sistema para añadir el usuario a sudoers
    1. Instala sudo
      apt update && apt install -y sudo
    2. Añade el usuario que creaste al grupo sudo (cambia blake por tu propio usuario)
      usermod -aG sudo blake
  6. Apaga el sistema ejecutando poweroff

En este punto, puedes instalar el dispositivo en una ubicación permanente. Los pasos restantes pueden realizarse mediante SSH desde otro dispositivo. Si no tienes un cliente SSH, puedes instalar una de las opciones que se listan en la documentación de Visual Studio Code.

Finalizar la configuración mediante SSH

  1. Conéctate mediante SSH e inicia sesión con el usuario no root que creaste durante la instalación

  2. Configura sudo sin contraseña para que no tengas que escribir tu contraseña en cada comando sudo (cambia blake en el comando siguiente por tu usuario)

    echo 'blake    ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/user
  3. Cierra la sesión y vuelve a iniciarla para activar sudo sin contraseña

  4. Configura las actualizaciones de seguridad automáticas del sistema operativo (opcional)

    1. Asegúrate de que todo esté actualizado ejecutando
      sudo apt update && sudo apt upgrade -y
    2. Instala las actualizaciones desatendidas
      sudo apt install -y unattended-upgrades
      echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean true | sudo debconf-set-selections
      sudo dpkg-reconfigure -f noninteractive unattended-upgrades

Ahora tienes un servidor Debian mínimo que requiere muy poco mantenimiento.

Instalar Docker

  1. Instala Docker Engine (no Docker Desktop) siguiendo la documentación oficial
    1. Específicamente, sigue los pasos de la sección Instalar usando el repositorio apt
  2. Añade tu usuario al grupo docker tal como se describe en los pasos de postinstalación en Linux

Instalando SecureVu

Esta sección muestra cómo crear una estructura de directorios mínima para una instalación Docker en Debian. Si has instalado SecureVu como aplicación de Home Assistant o de otra forma, puedes continuar en Configurando SecureVu.

Configurar directorios

SecureVu creará un archivo de configuración si no existe en el inicio inicial. La siguiente estructura de directorios es el mínimo indispensable para comenzar. Una vez que SecureVu esté en ejecución, puedes utilizar el editor de configuración integrado, que soporta validación de la configuración.

.
├── docker-compose.yml
├── config/
└── storage/

Esto creará la estructura anterior:

mkdir storage config && touch docker-compose.yml

Si estás configurando SecureVu en un dispositivo Linux mediante SSH, puedes utilizar nano para editar los siguientes archivos. Si prefieres editar archivos remotos con un editor completo en lugar de una terminal, te recomiendo usar Visual Studio Code con la extensión Remote SSH.

nota

Este archivo docker-compose.yml es solo un punto de partida para dispositivos amd64. Deberás personalizarlo para tu configuración según se detalla en la documentación de Instalación.

docker-compose.yml

services:
securevu:
container_name: securevu
restart: unless-stopped
stop_grace_period: 30s
image: ghcr.io/securecorp-mexico/securevu2:stable
volumes:
- ./config:/config
- ./storage:/media/securevu
- type: tmpfs # 1GB de sistema de archivos en memoria para almacenamiento de segmentos de grabación
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "8971:8971"
- "8554:8554" # Flujos RTSP

Ahora deberías poder iniciar SecureVu ejecutando docker compose up -d desde la carpeta que contiene docker-compose.yml. Al iniciarse, se creará un usuario administrador con contraseña y se mostrará en los registros. Puedes verlo ejecutando docker logs securevu. SecureVu ahora debería ser accesible en https://ip_del_servidor:8971, donde puedes iniciar sesión con el usuario admin y finalizar la configuración usando el editor de configuración integrado.

Configurando SecureVu

Esta sección asume que ya tienes un entorno configurado como se describe en Instalación. También debes configurar tus cámaras según la guía de configuración de cámaras. Presta especial atención a la sección sobre cómo elegir una resolución de detección.

Paso 1: Iniciar SecureVu

En este punto deberías poder iniciar SecureVu y se creará automáticamente una configuración básica.

Paso 2: Agregar una cámara

Puedes hacer clic en el botón Agregar cámara para usar el asistente de configuración de cámaras y añadir tu primera cámara a SecureVu.

Paso 3: Configurar la aceleración por hardware (recomendado)

Ahora que tienes una configuración de cámara funcional, conviene configurar la aceleración por hardware para minimizar el CPU necesario para decodificar tus flujos de vídeo. Consulta la referencia de configuración de aceleración por hardware para ver ejemplos aplicables a tu hardware.

Aquí hay un ejemplo de configuración con aceleración por hardware configurada para funcionar con la mayoría de los procesadores Intel con GPU integrada usando el preset:

docker-compose.yml (después de modificar, deberás ejecutar docker compose up -d para aplicar los cambios)

services:
securevu:
...
devices:
- /dev/dri/renderD128:/dev/dri/renderD128 # para hwaccel de intel y amd, debe actualizarse según tu hardware
...

config.yml

mqtt: ...

cameras:
name_of_your_camera:
ffmpeg:
inputs: ...
hwaccel_args: preset-vaapi
detect: ...

Paso 4: Configurar detectores

De forma predeterminada, SecureVu utilizará un único detector CPU.

En muchos casos, los gráficos integrados de los CPUs Intel proporcionan un rendimiento suficiente para las configuraciones típicas de SecureVu. Si tienes un procesador Intel, puedes seguir la configuración que se muestra a continuación.

Usar el detector Intel OpenVINO

Debes consultar Configurar la aceleración por hardware más arriba para habilitar el contenedor y usar la GPU.

mqtt: ...

detectors: # <---- agregar detectores
ov:
type: openvino # <---- usar detector openvino
device: GPU

# Usaremos el modelo MobileNet_v2 predeterminado de OpenVINO.
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

cameras:
name_of_your_camera:
ffmpeg: ...
detect:
enabled: True # <---- activar detección
...

Si tienes un Coral USB, deberás añadir una sección de detectores a tu configuración.

Usar el detector Coral USB

docker-compose.yml (después de modificar, deberás ejecutar docker compose up -d para aplicar los cambios)

services:
securevu:
...
devices:
- /dev/bus/usb:/dev/bus/usb # pasa el Coral USB, debe modificarse para otras versiones
- /dev/apex_0:/dev/apex_0 # pasa un Coral PCIe, sigue las instrucciones del driver aquí https://github.com/jnicolson/gasket-builder
...
mqtt: ...

detectors: # <---- agregar detectores
coral:
type: edgetpu
device: usb

cameras:
name_of_your_camera:
ffmpeg: ...
detect:
enabled: True # <---- activar detección
...

Puedes encontrar más detalles sobre los detectores disponibles aquí.

Reinicia SecureVu y deberías empezar a ver detecciones para person. Si quieres rastrear otros objetos, deberán añadirse según la referencia del archivo de configuración.

Paso 5: Configurar máscaras de movimiento

Ahora que has optimizado tu configuración para decodificar el flujo de vídeo, querrás verificar dónde implementar máscaras de movimiento. Para ello, navega hasta la cámara en la interfaz de usuario, selecciona "Depurar" en la parte superior y activa "Cuadros de movimiento" en las opciones debajo del feed de vídeo. Observa las áreas que continuamente activan movimiento no deseado. Las áreas comunes para enmascarar incluyen marcas de tiempo de la cámara y árboles que se mueven frecuentemente con el viento. El objetivo es evitar desperdiciar ciclos de detección de objetos mirando estas áreas.

Ahora que sabes dónde necesitas enmascarar, usa el "Creador de máscaras y zonas" en el panel de opciones para generar las coordenadas necesarias para tu archivo de configuración. Puedes encontrar más información sobre las máscaras aquí.

aviso

Ten en cuenta que las máscaras de movimiento no deben usarse para marcar áreas donde no deseas que se detecten objetos ni para reducir falsos positivos. No alteran la imagen enviada a la detección de objetos, por lo que aún puedes obtener objetos rastreados, alertas y detecciones en áreas con máscaras de movimiento. Estas solo evitan que el movimiento en dichas áreas inicie la detección de objetos.

Tu configuración ahora debería verse similar a esta.

mqtt:
enabled: False

detectors:
coral:
type: edgetpu
device: usb

cameras:
name_of_your_camera:
ffmpeg:
inputs:
- path: rtsp://10.0.10.10:554/rtsp
roles:
- detect
motion:
mask:
- 0,461,3,0,1919,0,1919,843,1699,492,1344,458,1346,336,973,317,869,375,866,432

Paso 6: Habilitar grabaciones

Para revisar la actividad en la interfaz de usuario de SecureVu, las grabaciones deben estar habilitadas.

Para habilitar la grabación de vídeo, añade el rol record a un flujo y habilítalo en la configuración. Si la grabación está deshabilitada en la configuración, no será posible habilitarla desde la interfaz.

mqtt: ...

detectors: ...

cameras:
name_of_your_camera:
ffmpeg:
inputs:
- path: rtsp://10.0.10.10:554/rtsp
roles:
- detect
- path: rtsp://10.0.10.10:554/high_res_stream # <----- Añade el flujo que quieres grabar
roles:
- record
detect: ...
record: # <----- Habilitar grabación
enabled: True
motion: ...

Si no tienes flujos separados para detect y record, simplemente añade el rol record a la lista del primer input.

nota

Si solo defines un flujo en tus inputs y no le asignas el rol detect, SecureVu le asignará automáticamente el rol detect. SecureVu siempre decodificará un flujo para soportar la detección de movimiento, Birdseye, los endpoints de imagen de la API y otras funciones, incluso si has desactivado la detección de objetos con enabled: False en la sección detect de tu configuración.

Si solo planeas usar SecureVu para grabaciones, aún se recomienda definir un rol detect para un flujo de baja resolución con el fin de minimizar el uso de recursos derivado de la decodificación obligatoria del flujo.

De forma predeterminada, SecureVu conservará el vídeo de todos los objetos rastreados durante 10 días. El conjunto completo de opciones para grabación se puede encontrar aquí.

Paso 7: Configuración completa

En este punto tienes una configuración completa con funcionalidad básica.

Próximos pasos

Ahora que tienes una instalación funcional, puedes utilizar la siguiente documentación para características adicionales:

  1. Configurando go2rtc - Opciones adicionales de vista en vivo y retransmisión RTSP
  2. Zonas
  3. Revisión
  4. Máscaras
  5. Integración con Home Assistant - Integrar con Home Assistant