Qui voit tout.

Il y a quelques années, suite à un cambriolage, l'acquisition rapide d'un système de caméras vidéos s'est imposée, vu que nous partions pour quelques jours très (trop) peu de temps après.

Nous voilà donc avec deux caméras à piles et une base de la marque Arlo. C'est là qu'on découvre que la base DOIT être connectée à internet parce qu'on ne peut la contrôler que via les serveurs Arlo... grosse déception. De plus les vidéo prises lors de la détection de mouvements sont stockées dans ce même cloud (il serait possible de conserver une copie locale en branchant un stick USB sur la base, mais c'est quand même uploadé).

Malgré tout, nous aurions pu tomber plus mal. Contrairement à certaines marques de matériel, les fonctions de bases sont assurées "gratuitement" lorsqu'on s'inscrit sur le cloud. (vidéos visionnables et téléchargeables pendant une semaine, alarme sur le téléphone, visionnage en direct) Toutes les options sont bien évidemment payantes...

J'ai aussi récupéré gratuitement un kit de vidéosurveillance chinois (dont la marque me fait légèrement glousser : Tonton) un NVR équipé d'un HDD de 2To avec 8 ports PoE pour les caméras, un port LAN et 4 caméras IP avec IR et détecteur PIR. J'ai testé le système, l'appli pour y accéder depuis mon smartphone n'arrive pas à se connecter, mais même pour accéder au truc depuis le réseau local, il faut installer un plugin NPAPI. Donc pas compatible avec les navigateurs modernes.
Dans ce système, il n'existe pas de moyen d'armer ou de désarmer la détection de mouvements de manière globale (d'autant plus avec l'application android foireuse), donc tout est basé sur la planification. Autant pour une installation de locaux pro aux horaires fixes, c'est OK, autant pour une habitation, ça ne convient pas.

Et donc, pendant une phase intensive de trainage sur le net, une question s'est posée. N'y aurait-il pas moyen de monter un système de caméras de sécurité soi-même ? Genre soit sur un pc, soit à base de SBC comme le raspberry. Après tout, il faut que l'ordinateur soit capable de décoder plusieurs flux vidéo, d'analyser des images pour détecter les mouvements si les camera ne sont pas équipées de détecteurs PIR, et il faut au moins un port réseau pour connecter les caméras à la machine et la machine au moins à un réseau interne de la maison et la possibilité de connecter un HDD prévu pour la vidéosurveillance. Ça ne semble pas impossible même pour des SBC avec une puissance limitée.

Bien entendu, je suis très très loin d'être le premier à me poser la question... Parce qu'évidemment y a pas mal de gens bien plus doués et patients que moi qui se sont amusés à créer des systèmes de caméras de surveillance maison !


Les différents softwares

Motion(Eye)

Motion est le logiciel de base pour transformer un SBC en caméra IP. Pour rendre tout ça simple et convivial, une interface web permettant de gérer une ou plusieurs caméras a été créée. Et pour encore simplifier, des images disque sous le nom de MotionEye OS, prêtes à l'usage pour un certain nombre de SBC sont disponibles !

Frigate

Les créateurs de frigate ont souhaité pousser l'analyse vidéo pour la détection de mouvement plus loin que les autres systèmes. Ils ont donc utilisé les systèmes "d'IA" actuels pour aller jusqu'à pouvoir reconnaitre les objets, les visages, ou même les plaques d'immatriculation sur les flux vidéo. Mais comme ça tire grave sur le cpu, ils ont déchargé l'analyse des images vers un ou plusieurs "modules IA" google coral. La charge cpu est très faible (surtout si l'ordi est équipé d'un encodeur/décodeur vidéo hardware), le module Coral chauffe peu et consomme bien moins qu'un CPU généraliste pour le même travail, c'est tout bénèf.

Shinobi

D'après mes lectures, shinobi a été très populaire pendant un temps. Une jolie interface graphique et open source, jusqu'ici, c'est vendeur. Mais à priori, depuis quelques temps, toutes les options qui m'intéressent (client pour smartphones, etc), sont toutes derrières des abonnements qui s'élèvent rapidement à quasi 30€ mensuels. Le dev qui s'occupait de maintenir le plugin pour home assistant en a carrément abandonné son plugin.

Mon choix (pas final du tout)

Va se porter sur Frigate, le GUI est relativement simple et assez standard. Mais surtout l'intégration à Home Assistant (le serveur domotique que j'utilise à l'heure actuelle) semble bien faite. Elle permet justement d'armer et désarmer le système, par exemple.

Le matos

Caméras IP :

Je vais bien entendu récupérer celles fournies avec le NVR chinois. Elles sont équipées de filtre IR-cut, de leds IR, d'un capteur PIR et sont étanches. Largement suffisantes pour ce qu'on veut en faire.

Stockage vidéos :

Je peux probablement faire des économies en récupérant le HDD "surveillance vidéo" de 2To du NVR pour le coller dans la machine que j'utiliserai.

Machine :

Il est possible de faire tourner Frigate sur un raspi avec un faible nombre de caméra et en se contenant de performances pas fabuleuses, malgré l'utilisation de Coral. Ca ne semble pas être la solution idéale.

Les autres options étant d'utiliser mon lenovo tiny restant ou la vieille tour de madame. La vieille tour permet d'éventuellement y coller une carte graphique pour l'encodage / décodage vidéo hardware et de mettre le HDD dans la tour en SATA3 sans passer par un boitier USB3.

Réseau :

N'ayant pas un switch réseau équipé de ports PoE, il sera nécessaire de m'en procurer un. Je pense qu'il faut être prévoyant, mini 8 ports PoE pour les caméras +1 pour le NVR +1 pour le réseau local.

Autres :

Le dernier point, le plus sensible, c'est de réussir à trouver un module Google Coral. Avec la pénurie de composants électroniques post covid, les prix ont flambés et la disponibilité est faible.

Je vais donc mettre en pause ce projet jusqu'à ce que j'aie soit un stick USB soit un module M.2 key E avec son adaptateur PCI-E. Parce que même si je ne conserve pas frigate sur le long terme, ça pourra toujours me permettre de faire joujou avec tensorflow lite sur du hardware natif.

J'vais attendre que la disponibilité remonte, les prix sont vraiment trop abusés.