>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Go

Come connettere la visione delle reti neurali alle telecamere domestiche con Unblink

Deploy to Render

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.

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