>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Go

Cómo conectar visión de redes neuronales a cámaras domésticas con Unblink

Una historia conocida: tienes dos o tres cámaras RTSP en casa o en la oficina, grabando gigabytes de video en disco, pero para encontrar el momento en que un mensajero dejó un paquete en la puerta, tienes que revisar manualmente la línea de tiempo a 8x. Un detector de movimiento tradicional no ayuda mucho aquí. Se activa con insectos voladores, sombras de árboles y faros que pasan, creando cientos de marcadores falsos en el archivo.

Hace poco me encontré con el repositorio Unblink (versión V2). Los desarrolladores de zapdos-labs intentaron resolver este dolor usando modelos de visión-lenguaje multimodales (VLM). La idea es simple: el flujo de video se alimenta a una red neuronal, y el usuario se comunica con sus cámaras a través de un chat normal o busca clips específicos usando texto.

El proyecto está construido sobre una combinación de un agente local, un servidor de gestión y el modelo Qwen3-VL. Esto es lo que hace el sistema en la práctica:

  • Búsqueda de archivos basada en texto. Puedes escribir una consulta como "una persona con chaqueta roja entró al edificio" o "mensajero con un paquete", y el sistema devolverá marcas de tiempo de frames coincidentes en lugar de ver manualmente cinco horas de grabación.
  • Chat con las cámaras. Funciona como una interfaz de preguntas y respuestas al flujo de video. Preguntas "¿hubo invitados después de las 6 PM?", el modelo analiza los frames guardados y responde con texto coherente.
  • Análisis y resumen de frames. La red neuronal comprime el metraje de video en descripciones de texto de lo que está sucediendo, ahorrando tiempo en la revisión inicial de incidentes.
  • Operación a través de relay sin reenvío de puertos. Un nodo compacto se ejecuta en la red local y mantiene su propia conexión al servidor de gestión.

Cómo funciona la arquitectura

Arquitectónicamente, Unblink se divide en dos partes: un servidor de gestión y un nodo ligero que se coloca junto a las cámaras.

+-------------------------------------------------------+
|                     Public Server                     |
|  (Auth, DB PostgreSQL, Web UI SolidJS, VLM Analysis)  |
+-------------------------------------------------------+
                           
                            Безопасный туннель
                           
+-------------------------------------------------------+
|                   Local Network Node                  |
|                   (unblink-node CLI)                  |
+-------------------------------------------------------+
                                            
         RTSP                                MJPEG
   [ Камера 1 ]                         [ Камера 2 ]

El lado del servidor maneja autorización, almacenamiento de datos y la interfaz web. El frontend está escrito en SolidJS usando TypeScript, Vite y componentes Ark UI. PostgreSQL a través de pgx se usa como base de datos. Para trabajar con flujos de video, los desarrolladores eligieron el probado motor go2rtc, que maneja la conversión de RTSP y WebRTC para el navegador de manera excelente.

El nodo unblink-node está escrito en Go. Se ejecuta dentro de tu red local, se conecta a flujos RTSP o MJPEG de las cámaras y los envía como proxy al servidor. Esto significa que no necesitas abrir puertos en tu router ni exponer las cámaras directamente a internet.

Inicio rápido del nodo

Si ya tienes un servidor en ejecución (o estás usando el despliegue en la nube), puedes conectar cámaras locales en un par de minutos.

Binarios precompilados

Los lanzamientos de GitHub contienen archivos compilados para Linux y Windows (tanto x86_64 como ARM64). Descarga el archivo, extráelo y ejecuta:

# Для Linux
tar -xzf unblink-node_linux_amd64.tar.gz
./unblink-node

En Windows, el inicio es similar a través de PowerShell:

.\unblink-node.exe

En el primer inicio, la utilidad mostrará una URL en la terminal. Ábrela en tu navegador para autorizar el nodo en el panel de control.

Compilación desde el código fuente

Si tienes Go instalado en tu máquina, la forma más fácil de instalar la utilidad es con el comando go install:

go install github.com/zapdos-labs/unblink/cmd/unblink-node@main
unblink-node

Desarrollo local de toda la pila

Para quienes quieran profundizar o desplegar el lado del servidor localmente, el repositorio incluye un Makefile conveniente. Necesitarás tmux, ya que levanta el servidor, nodo e interfaz web en una ventana:

# Ставим зависимости
make install

# Копируем конфиг окружения
cp .env.example .env

# Запускаем все компоненты в dev-режиме
make dev

El repositorio también tiene comandos make typecheck para verificación de tipos del frontend y make proto para regenerar archivos Protobuf cuando cambian los contratos de red.

Dónde resulta útil

El proyecto apunta claramente al nicho de vigilancia de video doméstica avanzada y configuraciones de oficinas pequeñas donde los NVR estándar como Frigate o Shinobi son deficientes específicamente en capacidades de búsqueda semántica.

Un buen ejemplo: monitorear un estacionamiento frente a tu casa. En lugar de configurar zonas de detección, puedes simplemente preguntar al chat "¿cuándo se fue el auto azul?". Otro escenario es controlar un área de almacén donde es importante encontrar rápidamente momentos de carga sin ver terabytes de footage vacío.

La mancha en el expediente y conclusiones

La documentación del README aún es mínima. No hay una descripción detallada de los requisitos del sistema para ejecutar inferencia de Qwen3-VL en tu propio hardware, por lo que los modelos pesados probablemente necesitarán moverse a un servidor con una buena GPU o conectarse a través de APIs externas.

Sin embargo, el código en Go y SolidJS se ve limpio, y la elección de go2rtc como motor de medios habla de un entendimiento sólido de las specifics del procesamiento de video. Si has estado buscando una forma de adjuntar VLM a tus cámaras domésticas y no quieres escribir el wrapper desde cero, Unblink definitivamente vale la pena echarle un vistazo. El código fuente es abierto bajo la licencia AGPL-3.0.

Proyectos relacionados