Come connettere la visione delle reti neurali alle telecamere domestiche con Unblink
Una storia familiare: hai due o tre telecamere RTSP a casa o in ufficio, che registrano gigabyte di video su disco, ma per trovare il momento in cui un corriere ha lasciato un pacco alla porta, devi scorrere manualmente la timeline a 8x. Un tradizionale rilevatore di movimento non è di grande aiuto qui. Si attiva per insetti volanti, ombre di alberi e fari che passano, creando centinaia di falsi marker nell'archivio.
Recentemente mi sono imbattuto nel repository Unblink (versione V2). Gli sviluppatori di zapdos-labs hanno cercato di risolvere questo problema utilizzando modelli visione-linguaggio multimodali (VLM). L'idea è semplice: lo stream video viene inviato a una rete neurale, e l'utente comunica con le proprie telecamere attraverso una normale chat o cerca clip specifiche usando il testo.
Cosa può fare Unblink
Il progetto è costruito su una combinazione di un agent locale, un server di gestione e il modello Qwen3-VL. Ecco cosa fa il sistema in pratica:
- Ricerca testuale dell'archivio. Puoi digitare una query come "una persona con una giacca rossa è entrata nell'edificio" oppure "corriere con un pacco", e il sistema restituirà i timestamp dei frame corrispondenti invece di guardare manualmente cinque ore di footage.
- Chat con le telecamere. Funziona come un'interfaccia domanda-risposta allo stream video. Chiedi "ci sono stati ospiti dopo le 18?", il modello analizza i frame salvati e risponde con testo coerente.
- Analisi e riepilogo dei frame. La rete neurale comprime il footage video in descrizioni testuali di ciò che sta accadendo, risparmiando tempo sulla revisione iniziale degli incidenti.
- Funzionamento tramite relay senza port forwarding. Un nodo compatto gira sulla rete locale e mantiene la propria connessione al server di gestione.
Come funziona l'architettura
A livello architetturale, Unblink è suddiviso in due parti: un server di gestione e un nodo leggero che si posiziona accanto alle telecamere.
+-------------------------------------------------------+
| Public Server |
| (Auth, DB PostgreSQL, Web UI SolidJS, VLM Analysis) |
+-------------------------------------------------------+
▲
│ Безопасный туннель
▼
+-------------------------------------------------------+
| Local Network Node |
| (unblink-node CLI) |
+-------------------------------------------------------+
│ │
▼ RTSP ▼ MJPEG
[ Камера 1 ] [ Камера 2 ]
Il lato server gestisce l'autorizzazione, l'archiviazione dei dati e l'interfaccia web. Il frontend è scritto in SolidJS usando TypeScript, Vite e componenti Ark UI. PostgreSQL tramite pgx viene utilizzato come database. Per lavorare con gli stream video, gli sviluppatori hanno scelto il collaudato motore go2rtc, che gestisce eccellentemente la conversione RTSP e WebRTC per il browser.
Il nodo unblink-node è scritto in Go. Gira all'interno della tua rete locale, si connette agli stream RTSP o MJPEG delle telecamere e li proxyza al server. Questo significa che non devi aprire porte sul router o esporre le telecamere direttamente a internet.
Avvio rapido del nodo
Se hai già un server in esecuzione (o stai usando il deployment cloud), puoi connettere le telecamere locali in un paio di minuti.
Binari precompilati
Le release GitHub contengono file compilati per Linux e Windows (sia x86_64 che ARM64). Scarica l'archivio, estrailo ed esegui:
# Для Linux
tar -xzf unblink-node_linux_amd64.tar.gz
./unblink-node
Su Windows, l'avvio è simile tramite PowerShell:
.\unblink-node.exe
Al primo avvio, l'utility emetterà un URL nel terminale. Aprilo nel browser per autorizzare il nodo nel pannello di controllo.
Build dal codice sorgente
Se hai Go installato sulla tua macchina, il modo più semplice per installare l'utility è con il comando go install:
go install github.com/zapdos-labs/unblink/cmd/unblink-node@main
unblink-node
Sviluppo locale dell'intero stack
Per chi vuole approfondire o eseguire il deployment del lato server in locale, il repository include un comodo Makefile. Avrai bisogno di tmux, poiché avvia server, nodo e interfaccia web in una finestra:
# Ставим зависимости
make install
# Копируем конфиг окружения
cp .env.example .env
# Запускаем все компоненты в dev-режиме
make dev
Il repository ha anche comandi make typecheck per il type-checking del frontend e make proto per rigenerare i file Protobuf quando cambiano i contratti di rete.
Dove può tornare utile
Il progetto si rivolge chiaramente alla nicchia della videosorveglianza domestica avanzata e delle configurazioni per piccoli uffici dove gli NVR standard come Frigate o Shinobi sono carenti specificamente nelle capacità di ricerca semantica.
Un buon esempio: monitorare un parcheggio davanti a casa. Invece di configurare zone di rilevamento, puoi semplicemente chiedere alla chat "quando è andata via l'auto blu?". Un altro scenario è controllare un'area di magazzino dove è importante trovare rapidamente i momenti di carico senza guardare terabyte di footage vuoto.
La mosca nel barattolo e conclusioni
La documentazione README è ancora minima. Non c'è una descrizione dettagliata dei requisiti di sistema per eseguire l'inferenza Qwen3-VL sul proprio hardware, quindi i modelli pesanti probabilmente dovranno essere spostati su un server con una buona GPU o connessi tramite API esterne.
Nevertheless, the codebase in Go and SolidJS looks clean, and the choice of go2rtc as the media engine speaks to a solid understanding of video processing specifics. If you've been looking for a way to attach VLM to your home cameras and don't want to write the wrapper from scratch, Unblink is definitely worth a look. The source code is open under the AGPL-3.0 license.
Progetti correlati