Comment connecter la vision par réseau neuronal à vos caméras domestiques avec Unblink
Une histoire familière : vous avez deux ou trois caméras RTSP à la maison ou au bureau, enregistrant des gigaoctets de vidéo sur disque, mais pour trouver le moment où un livreur a laissé un colis à la porte, vous devez faire défiler manuellement la timeline à 8x. Un détecteur de mouvement classique n'aide pas beaucoup ici. Il se déclenche sur les insectes volants, les ombres des arbres et les phares qui passent, créant des centaines de faux marqueurs dans l'archive.
Récemment, je suis tombé sur le dépôt Unblink (version V2). Les développeurs de zapdos-labs ont tenté de résoudre ce point douloureux en utilisant des modèles vision-langage multimodaux (VLM). L'idée est simple : le flux vidéo est transmis à un réseau neuronal, et l'utilisateur communique avec ses caméras via un chat ordinaire ou recherche des clips spécifiques en utilisant du texte.
Ce que Unblink peut faire
Le projet repose sur une combinaison d'un agent local, d'un serveur de gestion et du modèle Qwen3-VL. Voici ce que le système fait en pratique :
- Recherche textuelle dans les archives. Vous pouvez taper une requête comme « une personne en veste rouge est entrée dans le bâtiment » ou « livreur avec un colis », et le système renverra les horodatages des images correspondantes au lieu de regarder manuellement cinq heures de séquences.
- Discuter avec les caméras. Fonctionne comme une interface de questions-réponses vers le flux vidéo. Vous demandez « y a-t-il eu des invités après 18h ? », le modèle analyse les images enregistrées et répond avec un texte cohérent.
- Analyse et synthèse des images. Le réseau neuronal compresse les séquences vidéo en descriptions textuelles de ce qui se passe, ce qui fait gagner du temps lors de la révision initiale des incidents.
- Fonctionnement via relais sans redirection de port. Un nœud compact s'exécute sur le réseau local et maintient sa propre connexion au serveur de gestion.
Comment fonctionne l'architecture
Architecturalement, Unblink est divisé en deux parties : un serveur de gestion et un nœud léger qui se trouve à côté des caméras.
+-------------------------------------------------------+
| Public Server |
| (Auth, DB PostgreSQL, Web UI SolidJS, VLM Analysis) |
+-------------------------------------------------------+
▲
│ Безопасный туннель
▼
+-------------------------------------------------------+
| Local Network Node |
| (unblink-node CLI) |
+-------------------------------------------------------+
│ │
▼ RTSP ▼ MJPEG
[ Камера 1 ] [ Камера 2 ]
Le côté serveur gère l'autorisation, le stockage des données et l'interface web. Le frontend est écrit en SolidJS avec TypeScript, Vite et les composants Ark UI. PostgreSQL via pgx est utilisé comme base de données. Pour travailler avec les flux vidéo, les développeurs ont choisi le moteur go2rtc éprouvé, qui gère excellemment la conversion RTSP et WebRTC pour le navigateur.
Le nœud unblink-node est écrit en Go. Il s'exécute à l'intérieur de votre réseau local, se connecte aux flux RTSP ou MJPEG des caméras et les proxyfie vers le serveur. Cela signifie que vous n'avez pas besoin d'ouvrir des ports sur votre routeur ou d'exposer les caméras directement à Internet.
Démarrage rapide du nœud
Si vous avez déjà un serveur en cours d'exécution (ou si vous utilisez le déploiement cloud), vous pouvez connecter des caméras locales en quelques minutes.
Binaires précompilés
Les versions GitHub contiennent des fichiers compilés pour Linux et Windows (x86_64 et ARM64). Téléchargez l'archive, extrayez-la et exécutez :
# Для Linux
tar -xzf unblink-node_linux_amd64.tar.gz
./unblink-node
Sous Windows, le démarrage ressemble à quelque chose de similaire via PowerShell :
.\unblink-node.exe
Au premier démarrage, l'utilitaire affichera une URL dans le terminal. Ouvrez-la dans votre navigateur pour autoriser le nœud dans le panneau de contrôle.
Compilation à partir des sources
Si vous avez Go installé sur votre machine, le moyen le plus simple d'installer l'utilitaire est avec la commande go install :
go install github.com/zapdos-labs/unblink/cmd/unblink-node@main
unblink-node
Développement local de la pile complète
Pour ceux qui veulent approfondir ou déployer le côté serveur localement, le dépôt inclut un Makefile pratique. Vous aurez besoin de tmux, car il lance le serveur, le nœud et l'interface web dans une fenêtre :
# Ставим зависимости
make install
# Копируем конфиг окружения
cp .env.example .env
# Запускаем все компоненты в dev-режиме
make dev
Le dépôt contient également des commandes make typecheck pour la vérification des types du frontend et make proto pour régénérer les fichiers Protobuf lorsque les contrats réseau changent.
Où cela s'avère utile
Le projet cible clairement la niche de la vidéosurveillance domestique avancée et des configurations de petits bureaux où les NVR standard comme Frigate ou Shinobi sont spécifiquement insuffisants en termes de capacités de recherche sémantique.
Un bon exemple : la surveillance d'un parking devant votre maison. Au lieu de configurer des zones de détection, vous pouvez simplement demander au chat « quand la voiture bleue est-elle partie ? ». Un autre scénario est le contrôle d'une zone d'entrepôt où il est important de trouver rapidement les moments de chargement sans regarder des téraoctets de séquences vides.
La mouche dans le baume et conclusions
La documentation README est encore minimale. Il n'y a pas de description détaillée des exigences système pour exécuter l'inférence Qwen3-VL sur votre propre matériel, donc les modèles lourds devront probablement être déplacés vers un serveur avec une bonne GPU ou connectés via des API externes.
Néanmoins, la base de code en Go et SolidJS semble propre, et le choix de go2rtc comme moteur multimédia témoigne d'une solide compréhension des spécificités du traitement vidéo. Si vous cherchiez un moyen d'attacher un VLM à vos caméras domestiques et que vous ne voulez pas écrire le wrapper vous-même, Unblink mérite définitivement un coup d'œil. Le code source est ouvert sous la licence AGPL-3.0.
Projets similaires