Review: Caméra AI alimentée par Linux Vizy

Vizy est une « caméra AI » basée sur Linux basée sur le Raspberry Pi 4 qui utilise l’apprentissage automatique et la vision artificielle pour réaliser quelques astuces intéressantes, et a une conception centrée sur la capacité de piratage. J’ai trouvé qu’il était ridiculement simple d’être opérationnel, et il était tout aussi facile d’apporter des modifications par moi-même et de commencer à avoir des idées.

Personne et chat avec des étiquettes générées par machine les identifiant
Prêt à l’emploi, Vizy n’est qu’à quelques lignes de Python d’être un projet Cat Detector fonctionnel.

J’exécutais des exemples préinstallés écrits en Python en quelques minutes et je modifiais ce même code en environ 30 secondes de plus. Mieux encore, j’ai tout fait sans installer d’environnement de développement, ni même quitter mon navigateur Web, d’ailleurs. Je dois dire que cela a créé une expérience très conviviale pour les hackers.

Vizy vient des gens de Charmed Labs ; ce n’est pas leur premier coup sur les caméras intelligentes, et ça se voit. Ils ont également créé les caméras Pixy et Pixy 2, dont j’en possède plusieurs. J’ai toujours dévoré tout ce qui rend la vision artificielle plus accessible et plus facile à intégrer dans les projets, alors quand Charmed Labs a gentiment proposé de m’envoyer l’un de leurs appareils les plus récents, j’étais impatient de voir ce qu’il y avait de nouveau.

J’ai trouvé que Vizy était une plate-forme hautement perfectionnée avec un certain nombre de fonctionnalités matérielles et logicielles vraiment utiles, et un accent mis sur l’accessibilité et la facilité d’utilisation que j’espère vraiment voir davantage dans les futurs produits intégrés. Regardons de plus près.

Regarder à l’intérieur

Vizy est basé sur le Raspberry Pi 4, ce qui le distingue quelque peu de la plupart des autres plates-formes de vision industrielle embarquées. Comme de nombreuses autres plates-formes, tout le traitement du code et de la vision pour Vizy s’exécute localement. Cependant, fonctionner sur un Raspberry Pi 4 signifie également avoir accès à un environnement Linux familier, et cette fonctionnalité apporte quelques avantages que nous explorerons dans un instant.

Caméra intelligente avec dessus ouvert, vue latérale
Vizy est par défaut un appareil d’intérieur, mais pour les environnements plus exigeants, il existe un boîtier extérieur en option.

À l’intérieur du boîtier se trouve un Raspberry Pi 4, un ventilateur, l’ensemble d’objectif et la caméra (qui utilise le même capteur Sony IMX477 que la caméra Raspberry Pi High Quality), et une petite carte de gestion d’alimentation et d’E/S fixée au sommet de l’en-tête GPIO à 40 broches du Pi. Cette carte gère la mise sous tension et hors tension, contrôle le filtre IR commutable, accepte une entrée 12 V CC, fournit un retour avec un bipeur et une LED RVB, et dispose d’un en-tête d’E/S avec bornes à vis pour une interface facile avec d’autres appareils.

Vizy peut presque être considéré comme un boîtier en forme de caméra pour un Raspberry Pi, car il offre un accès complet à tous les ports du Raspberry Pi 4, qui fonctionnent tous comme on pourrait s’y attendre. On peut brancher un moniteur et un clavier et voir un environnement de bureau Linux, et ajouter une fonctionnalité comme la connectivité sans fil cellulaire est aussi simple que de brancher et de configurer un modem cellulaire USB. L’interface avec d’autres systèmes ou matériels – une tâche attendue pour une caméra intelligente – devient plus facile grâce à la possibilité d’utiliser des interfaces et des méthodes familières.

Fonctionnalités adaptées aux pirates

L’une des choses que j’ai le plus aimé dans l’exploration de Vizy était la rapidité avec laquelle j’ai commencé à modifier des exemples de code sans même avoir à quitter mon navigateur Web, grâce aux interfaces de terminal Web intégrées. Les exemples et les applications sont tous écrits en Python, et bien qu’il soit certainement possible d’utiliser la méthode que l’on souhaite pour modifier le code Python et apporter des modifications à l’appareil, il est également très simple de lancer un éditeur dans un nouvel onglet du navigateur.

Voici quelques-unes des fonctionnalités les plus intéressantes que j’ai trouvées dans Vizy, chacune ayant quelque chose d’utile à offrir. Leur utilité est renforcée par une excellente documentation.

Caractéristiques matérielles

Filtre IR commutable commandé par logiciel qui est indépendant de la lentille elle-même. Un filtre IR est généralement intégré à la plupart des objectifs car il fournit de meilleures photos. Cependant, il y a des moments où il est souhaitable de se passer d’un filtre IR (une caméra a tendance à mieux voir la nuit sans filtre, par exemple.) Vizy permet d’activer (ou de désactiver) le filtre IR avec une simple commande logicielle.

La monture d’objectif est compatible M12 et C/CS. La plupart des caméras acceptent un type d’objectif ou l’autre, mais Vizy permet d’utiliser l’un ou l’autre (bien qu’il soit recommandé d’utiliser des objectifs sans filtres IR, car Vizy fournit les siens.)

Connecteur E/S avec bornes à vis permet à la caméra de s’interfacer directement avec d’autres matériels et appareils. Les broches permettent une entrée et une sortie numériques robustes, y compris la communication série, et des sorties 5 V et 12 V à courant élevé commutables par logiciel sont disponibles pour contrôler les appareils externes (plus de détails sur le brochage sont ici.)

Les normes de caméra habituelles sont présentes comme un support de trépied, un sabot de montage pour les accessoires de caméra et un boîtier extérieur en option.

Toutes les interfaces habituelles du Raspberry Pi sont exposées ce qui signifie que Vizy ne gêne rien de ce qu’un Raspberry Pi serait normalement capable de faire. Il est même possible de brancher un clavier et un moniteur (ou de se connecter via VNC, d’ailleurs) et de travailler sur Vizy à partir d’un environnement de bureau Linux normal.

Fonctionnalités du logiciel

Configuration simple. Il ne faut pratiquement aucun temps pour être opérationnel ou configurer l’appareil pour se connecter à un réseau local. Chaque partie de la fonctionnalité de Vizy est accessible via un navigateur Web.

Les applications et exemples intégrés sont faciles à modifier. Deux applications et un certain nombre d’exemples sont préinstallés et prêts à fonctionner : Birdfeeder détecte et identifie automatiquement différentes espèces d’oiseaux, et MotionScope détecte les objets en mouvement, mesure l’accélération et la vitesse de chacun et présente les données sous forme de graphiques interactifs. Les exemples incluent des éléments tels que la détection d’objets TensorFlow, qui s’exécute localement et fournit un cadre simple pour les projets.

Le développement peut se faire entièrement dans le navigateuret tout exemple ou application peut être lancé dans un éditeur Python dans un nouvel onglet de navigateur en quelques clics, sans avoir besoin d’un environnement de développement séparé (bien que Vizy permette également le partage de fichiers basé sur SMB/CIFS sur le réseau local.)

Partage Web à distance pour un accès depuis l’extérieur de son réseau est une fonctionnalité pratique qui crée une URL personnalisée à travers laquelle on peut accéder à distance à l’appareil. Une URL générée de cette manière n’est valide que pendant une heure, mais les sessions à distance établies ne seront pas terminées ; une URL générée cesse tout simplement d’être valide. Toutes les fonctionnalités habituelles sont accessibles via le partage Web – y compris les fenêtres de terminal Web et l’édition de fichiers – et le système gère avec élégance l’accès simultané de plusieurs utilisateurs.

Alimentation de la caméra

Vizy est normalement alimenté par l’adaptateur mural 12 V inclus, mais il existe un certain nombre d’options pour alimenter l’appareil, ce qui offre une certaine flexibilité au pirate informatique typique. Par exemple, il est possible d’alimenter l’appareil en appliquant 5 V au connecteur USB-C, bien que cela signifie que la sortie 12 V sur le connecteur I/O ne sera pas fonctionnelle. En parlant de cela, cette sortie 12 V peut également fonctionner comme une entrée, permettant d’alimenter la caméra à partir d’une source externe 12 V appliquée aux bornes à vis droites. L’alimentation par Ethernet (PoE) est également une option.

La consommation d’énergie reflète les composants internes du Raspberry Pi 4 de l’appareil, consommant environ 3 W à 5 W selon ce qu’il fait. J’ai mesuré entre 500 mA et 600 mA à 5 V au repos, passant à environ 1 A tout en diffusant activement les résultats de la détection d’objets TensorFlow dans la vue de la caméra.

Dans le navigateur… Tout

C’est une chose de pouvoir visionner des vidéos en direct ou de modifier les paramètres matériels à partir d’un navigateur, mais ce qui est encore mieux, c’est de pouvoir modifier le code Python directement à partir d’un onglet de navigateur, avec la sortie de la console d’application. C’est un système astucieux qui rend vraiment la modification ou l’écriture de code pour la caméra beaucoup plus accessible. Besoin de créer de nouveaux fichiers, ou même d’ouvrir une fenêtre de terminal sur le Pi lui-même ? Cela peut également être lancé dans un nouvel onglet.

Bien entendu, on peut utiliser n’importe quelle méthode que l’on souhaite développer sur l’appareil. Partage de fichiers, sshet le bureau à distance (via VNC) sont toutes des options, tout comme le simple fait de brancher un clavier et un moniteur.

Aimer cette direction

J’étais opérationnel en un rien de temps avec Vizy, et l’application par défaut est un observateur de mangeoires d’oiseaux qui détecte les oiseaux, identifie leur espèce et télécharge leurs photos dans un album photo Google. Il est capable de plus que cela, cependant. Vous voulez une idée de ce qui se passe dans le développement de votre propre application ? Voici un tutoriel sur le roulement de votre propre compagnon pour animaux de compagnie, avec un distributeur de friandises.

Vizy est livré avec un certain nombre d’exemples utiles prêts à être modifiés, et le développement ne nécessite rien de plus qu’un navigateur Web. Cela contribue à le rendre plus accessible tout en offrant au pirate moyen un bon départ pour implémenter des éléments tels que la détection d’objets dans un projet. En fait, grâce aux exemples TensorFlow préinstallés, Vizy n’est qu’à quelques lignes de code d’être un détecteur de chat fonctionnel comme celui-ci.

Vizy a un niveau de finition et un ensemble de fonctionnalités que j’espère vraiment voir davantage dans les futurs produits comme celui-ci. Un appareil comme celui-ci vous donne-t-il des idées pour un nouveau projet, ou peut-être insuffle-t-il la vie à un ancien ? Nous voulons vraiment en entendre parler, alors faites-le nous savoir dans les commentaires.