HuskyLens

La carte HuskyLens est un capteur de vision doté d’une IA (artificielle artificielle). Elle est capable de reconnaître des objets, des visages, des couleurs ou des symboles. Il est donc possible d’ajouter le sens la vue à un robot (pour suivre une ligne ou un objet).
HuskyLens possède un processeur (spécialisé dans le traitement des images), une caméra de 2 à 5 Mégapixel (suivant la version), un écran 2 pouces (320 x 240 pixels), un lecteur de carte microSD et une interface composée de 2 boutons (1 bouton poussoir classique et 1 bouton 3 positions). La carte nécessite une alimentation comprise entre 3,3 et 5 V. Elle peut communiquer avec l’ordinateur ou les cartes de développements compatibles (Arduino, micro:bit, Raspberry Pi etc…) par ses ports UART (série), I2C ou microUSB.

Carte HuskyLens (recto)

Cette carte m’a été fournie gratuitement par DFRobot, mais je ne suis pas payé pour en parler ou en faire la publicité. Je n’ai pas non plus de lien d’affiliation (si vous cliquez sur un lien ou si vous achetez ce produit, je ne touche aucune commission).

Mise à jour du firmware

Avant toute chose, il faut s’assurer que le firmware est à jour. Branchez le câble microUSB à une alimentation quelconque (ordinateur ou chargeur de téléphone). Utilisez le bouton de fonctions (à 3 positions) et faites défiler les menus sur la droite jusqu’à « General Settings« . Entrez dans le menu en appuyant sur le même bouton et repartez sur la droite pour afficher la version du firmware (0.1.9Beta, dans cet exemple).

Carte HuskyLens (verso)

Téléchargez le logiciel HuskyLens Firmware Uploader ainsi que la dernière version du firmware. Connectez la carte à l’ordinateur (toujours avec la prise microUSB). Normalement la carte est reconnue par Windows 10 (si ce n’est pas le cas, il faudra installer les drivers).

La carte est bien reconnue par Windows 10

Lancez l’utilitaire de mise à jour, sélectionnez le firmware et cliquez sur le bouton « Upload« .

Mise à jour du firmware de la carte HuskyLens

Au bout de quelques minutes, la carte redémarre et vous pouvez vérifier que la version du firmware a bien été modifiée. Un nouveau menu a fait son apparition, il est désormais possible de choisir la langue (mais seulement entre l’anglais et le chinois).

Le fimware a été mis à jour

Paramètres généraux

La navigation est plutôt intuitive, appuyez sur le bouton de fonctions vers la droite jusqu’à ce que « General Settings » s’affiche et sélectionnez le menu en appuyant sur le bouton de fonction. Modifiez les différents paramètres (toujours avec le bouton de fonction) et enregistrez les paramètres en sélectionnant « Save & Return« . Lorsque le message « Do you save data? » apparaît, validez simplement en répondant « Yes« .

  • Protocol Type : Mode et vitesse de connexion (UART à 9600, 115200 ou 1000000 baud ) ou I2C. Il est conseillé de laisser la valeur par défaut sur « auto-detection« .
  • Screen Brightness : Luminosité de l’écran (de 1 à 100). Par défaut, la valeur est de 80.
  • Menu Auto-hide : Durée d’affichage des menus à l’écran avant qu’ils disparaissent (de 1à 100 secondes). Par défaut, la valeur est de 10 secondes.
  • LED Light : Allume ou éteins les 2 LED d’éclairage. Par défaut, la valeur est « OFF« .
  • LED Brightness : Luminosité des 2 LED (de 1 à 100). Par défaut, la valeur est de 50.
  • RGB Light : Allume ou éteins la LED RGB. Par défaut, la valeur est « ON« .
  • RGB Brightness : Luminosité de la LED RGB (de 1 à 100). Par défaut, la valeur est de 20.
  • Factory Reset : Restauration des paramètres d’origine (d’usine).
  • Version : Version du firmware.
  • Language : Langue de l’interface (Anglais ou Chinois)

Couleurs et coordonnées

Les couleurs du cadre et du symbole « + » (au centre de l’écran) permettent de connaître l’état de HuskyLens :

  • D’orange à jaune, puis de jaune à orange : Cet objet n’a pas encore été appris
  • Jaune : Apprentissage d’un nouvel objet
  • Bleu : L’objet a été appris et reconnu

La LED RGB sert à la reconnaissance des visages :

  • Bleu : Le visage a été détecté, mais pas encore appris.
  • Jaune : Apprentissage d’un nouveau visage
  • Vert : Le visage a été reconnu

Lorsque HuskyLens détecte un visage ou un objet, il est automatiquement encadré à l’écran. Les coordonnées x et y de sa position sont attribuées selon le système de coordonnées suivant :

Coordonnées d'un objet

La position de l’objets peut ensuite être consultée par une carte de développement (micro:bit, Arduino, Raspberry…) à l’aide des ports UART ou I2C.

Reconnaissance de visages

Cette fonction permet de reconnaitre (et de suivre) les visages (par défaut, il n’est possible d’apprendre qu’un seul visage à la fois).

Sélectionnez « Face recognition » avec le bouton de fonctions et pointez la caméra vers un visage. S’il est détecté, il est automatiquement encadré en blanc avec les mots « Face » sur l’écran.

Le visage a bien été détecté par la carte HuskyLens

Petit truc : Si vous voulez que HuskyLens reconnaisse votre visage (en mode selfie), fiez-vous à la couleur de la LED RGB, puisse que vous ne pouvez pas voir l’écran pendant que la caméra vous filme.

Pour apprendre un visage, pointez le symbole « + » sur un visage, puis appuyez brièvement sur le bouton d’apprentissage (le bouton poussoir classique). Ensuite, quand le visage est détecté, il est encadré en bleu avec les mots « Face : ID1« , ce qui signifie que le visage est reconnu.

Reconnaissance de visage avec la carte HuskyLens

Mais là, HuskyLens n’a pas appris une représentation en tridimensionnelle du visage. Si l’angle change, le visage n’est plus reconnu.

Il faut donc apprendre les autres angles du visage. Tout d’abord, il faut effacer le visage précédemment enregistré en réappuyant sur le bouton d’apprentissage, puis une nouvelle fois pour valider lorsque le message « Click again to Forget! » s’affiche avec un compte à rebours. Ensuite, recommencez l’apprentissage en laissant cette fois-ci le doigt appuyé sur le bouton pendant que vous filmez le visage sous différents angles. Pendant l’apprentissage, le visage est encadré en jaune avec les mots « Face : ID1« . Lorsque le processus achevé, vous pouvez relâcher le bouton. Le visage est maintenant détecté sous plusieurs angles et il est encadré en bleu avec les mots « Face : ID1« .

Comme vous l’avez certainement remarqué, lorsqu’un visage est reconnu, la taille du cadre change en fonction de la taille du visage, et le visage est suivi automatiquement. Pour apprendre un nouveau visage, vous pouvez effacer le précédent en répétant la procédure décrite dans le paragraphe précédent.

Il est également possible d’apprendre à HuskyLens à reconnaitre plusieurs visages. Le processus d’apprentissage est grosso-modo le même qu’avec un seul visage, mais il faut au préalable activer l’option « Learn Multiple » dans les options du menu « Face recognition« .

Suivi d’objets

Il n’est possible d’apprendre et de suivre qu’un seul objet à la fois, ce qui est un plutôt logique puisqu’un robot ne pourra pas suivre plusieurs objets en même temps.

Sélectionnez « Object Tracking » avec le bouton de fonctions et activer ensuite la fonction « Learn Enable » (toujours avec le bouton de fonction. Ensuite, c’est le même principe qu’avec la reconnaissance des visages. Vous pouvez apprendre un objet avec le bouton d’apprentissage et l’oublier pour en apprendre un nouveau. Il est également possible d’ajuster la taille du cadre en jouant avec les options « Frame Ratio » et « Frame Size ».

Suivi d'objet avec la carte HuskyLens

Je n’ai malheureusement pas eu le temps de tester le suivi d’objets, mais le principe est qu’une foi l’objet détecté, HuskyLens envoie ses coordonnées au microcontrôleur, pour qu’il puisse corriger la position d’un robot (et/ou d’un servomoteur) afin que l’objet reste toujours dans le champ de vision de la caméra.

Reconnaissance d’objets

Actuellement, HuskyLens est capable de reconnaître 20 objets ou animaux courants (train, avion, vélo, moto, voiture, bateau, bus, table, chaise, canapé, télévision, bouteille, chaise, personne, oiseau, chat, chien, vache, cheval, mouton, plante en pot). Pour cela, il suffit de sélectionner « Object Recognition » avec la touche de fonction.

Reconnaissance d'objets avec la carte HuskyLens

Reconnaissance de couleurs

HuskyLens peut aussi reconnaitre et suivre une couleur qu’il a apprise (en sélectionnant « Color Recognition »).

Reconnaissance de couleur avec la carte HuskyLens

Reconnaissance d’AprilTag

Ou sur le même principe, un AprilTag (en sélectionnant « Tag Recognition »).

Reconnaissance d'AprilTag avec la carte HuskyLens

Suivi de ligne

La fonction qui m’intéresse plus, c’est bien sûr c’est la possibilité de programmer un robot pour qu’il puisse suivre une ligne en utilisant les informations envoyées par la caméra de l’HuskyLens.

Robot Maqueen équipé de la carte HuskyLens

Mais ce sera le sujet du prochain article.

Sources et liens utiles


2 réflexions sur “HuskyLens

Laisser un commentaire