Como conectar visão de rede neural a câmeras domésticas com Unblink
Uma história familiar: você tem duas ou três câmeras RTSP em casa ou no escritório, gravando gigabytes de vídeo em disco, mas para encontrar o momento em que um entregador deixou um pacote na porta, você tem que navegar manualmente pela linha do tempo em velocidade 8x. Um detector de movimento tradicional não ajuda muito aqui. Ele é acionado por insetos voadores, sombras de árvores e faróis de carros passando, criando centenas de marcadores falsos no arquivo.
Recentemente encontrei o repositório Unblink (versão V2). Os desenvolvedores da zapdos-labs tentaram resolver esse problema usando modelos de visão-linguagem multimodais (VLM). A ideia é simples: o fluxo de vídeo é alimentado para uma rede neural, e o usuário se comunica com suas câmeras através de um chat regular ou pesquisa clipes específicos usando texto.
O que o Unblink pode fazer
O projeto é construído em uma combinação de um agente local, um servidor de gerenciamento e o modelo Qwen3-VL. Veja o que o sistema faz na prática:
- Pesquisa de arquivo baseada em texto. Você pode digitar uma consulta como "uma pessoa de jaqueta vermelha entrou no prédio" ou "entregador com um pacote", e o sistema retornará timestamps de frames correspondentes em vez de assistir manualmente cinco horas de filmagem.
- Chat com câmeras. Funciona como uma interface de perguntas e respostas para o fluxo de vídeo. Você pergunta "houve algum convidado depois das 18h?", o modelo analisa os frames salvos e responde com texto coerente.
- Análise e resumo de frames. A rede neural compacta as filmagens em descrições textuais do que está acontecendo, economizando tempo na revisão inicial de incidentes.
- Operação via relay sem port forwarding. Um nó compacto é executado na rede local e mantém sua própria conexão com o servidor de gerenciamento.
Como a arquitetura funciona
Arquiteturalmente, o Unblink é dividido em duas partes: um servidor de gerenciamento e um nó leve que fica ao lado das câmeras.
O lado do servidor lida com autorização, armazenamento de dados e a interface web. O frontend é escrito em SolidJS usando TypeScript, Vite e componentes Ark UI. PostgreSQL via pgx é usado como banco de dados. Para trabalhar com fluxos de vídeo, os desenvolvedores escolheram o motor go2rtc, que lida com conversão RTSP e WebRTC para o navegador de forma excelente.
O nó unblink-node é escrito em Go. Ele é executado dentro da sua rede local, conecta-se a fluxos RTSP ou MJPEG das câmeras e faz proxy para o servidor. Isso significa que você não precisa abrir portas no seu roteador ou expor as câmeras diretamente à internet.
Inicialização rápida do nó
Se você já tem um servidor em execução (ou está usando a implantação na nuvem), pode conectar câmeras locais em poucos minutos.
Binários pré-compilados
As versões do GitHub contêm arquivos compilados para Linux e Windows (ambos x86_64 e ARM64). Baixe o arquivo, extraia-o e execute:
No Windows, a inicialização é semelhante via PowerShell:
Na primeira inicialização, o utilitário produzirá uma URL no terminal. Abra-a no navegador para autorizar o nó no painel de controle.
Compilando a partir do código-fonte
Se você tem o Go instalado em sua máquina, a maneira mais fácil de instalar o utilitário é com o comando go install:
Desenvolvimento local de toda a pilha
Para quem deseja aprofundar ou implantar o lado do servidor localmente, o repositório inclui um Makefile conveniente. Você precisará do tmux, pois ele inicia o servidor, nó e interface web em uma janela:
O repositório também tem comandos make typecheck para verificação de tipos do frontend e make proto para regenerar arquivos Protobuf quando contratos de rede mudam.
Onde isso será útil
O projeto claramente visa o nicho de vigilância de vídeo doméstica avançada e configurações de pequenos escritórios onde NVRs padrão como Frigate ou Shinobi ficam aquém especificamente em capacidades de busca semântica.
Um bom exemplo: monitorar um estacionamento na frente da sua casa. Em vez de configurar zonas de detecção, você pode simplesmente perguntar ao chat "quando o carro azul partiu?". Outro cenário é controlar uma área de armazém onde é importante encontrar rapidamente momentos de carregamento sem assistir terabytes de filmagem vazia.
A mosca na pomada e conclusões
A documentação README ainda é mínima. Não há descrição detalhada dos requisitos do sistema para executar inferência Qwen3-VL em seu próprio hardware, então modelos pesados provavelmente precisarão ser movidos para um servidor com uma boa GPU ou conectados via APIs externas.
No entanto, a base de código em Go e SolidJS parece limpa, e a escolha do go2rtc como motor de mídia demonstra uma compreensão sólida das especificidades de processamento de vídeo. Se você estava procurando uma maneira de conectar VLM às suas câmeras domésticas e não quer escrever o wrapper do zero, o Unblink definitivamente vale a pena explorar. O código-fonte é aberto sob a licença AGPL-3.0.
Projetos relacionados