OpenMV
Boucliers
Lentille
Robotique
Livre
Vidéo
Télécharger
Documents
Forum
OpenMV.io
GitHubEn avril dernier, notre nouveau produit OpenMV4 H7 Plus a été lancé. Aujourd'hui, je vais vous présenter une nouvelle fonctionnalité de l'OpenMV4 H7 Plus : l'entraînement autonome de réseaux neuronaux pour la classification et la reconnaissance via le site web en ligne EdgeImpulse.
Dans ce tutoriel, vous utiliserez l'apprentissage automatique pour construire un système de reconnaissance qui, grâce à la caméra intelligente OpenMV4 H7 Plus, identifiera si un visage porte un masque, réalisant ainsi une classification d'images.

EdgeImpulse est un site web qui fournit des services de formation en ligne de modèles de réseaux neuronaux pour les appareils embarqués. Il est notre partenaire OpenMV et également un partenaire officiel de STMicroelectronics. Actuellement, EdgeImpulse est gratuitement accessible à nos utilisateurs OpenMV, qui peuvent utiliser gratuitement la plateforme pour former en ligne des modèles de réseaux neuronaux adaptés à OpenMV.
L'ajout de réseaux neuronaux aux dispositifs embarqués OpenMV permet de distinguer les braconniers des éléphants, d'assurer le contrôle qualité sur les lignes de production industrielles et de permettre aux modèles de voitures télécommandées de conduire de manière autonome.
Dans ce tutoriel, vous apprendrez comment collecter des images pour constituer un ensemble de données de haute qualité, comment appliquer l'apprentissage par transfert pour entraîner un réseau neuronal, et comment déployer le système sur OpenMV.
Par ailleurs, nous proposons également un tutoriel vidéo, que vous pouvez visionner en recherchant "OpenMV4 Plus : entraînement d'un réseau neuronal pour la reconnaissance des masques" sur le site officiel.
Vous pouvez consulter l'intégralité du projet à l'adresse suivante, incluant tous les codes et modèles : https://book.openmv.cc/project/mask.html
L'utilisation d'EdgeImpulse pour entraîner en ligne un modèle de réseau neuronal adapté à OpenMV se décompose principalement en quatre étapes : collecte des données, téléchargement, entraînement et déploiement.
01、Collecte de données
Dans ce tutoriel, nous allons construire un modèle capable de distinguer si un visage porte un masque ou non. Vous pouvez également choisir de classer d'autres objets. Pour que le modèle d'apprentissage automatique fonctionne, vous devez collecter un grand nombre d'images d'exemples de visages avec et sans masque. Pendant l'entraînement, ces images d'exemples sont utilisées pour exercer la capacité de distinction du modèle.
Nous devons utiliser OpenMV IDE pour collecter notre ensemble de données. Les étapes pour capturer les images sont les suivantes :
Créer deux catégories :
Ouvrez l'onglet "Outils" dans la barre de menu de l'IDE OpenMV, sélectionnez "Éditeur de jeu de données", cliquez sur "Nouveau jeu de données", puis créez un nouveau dossier et ouvrez-le. À l'intérieur du jeu de données, créez deux nouveaux dossiers nommés respectivement "mask" (pour enregistrer les photos de visages portant un masque) et "face" (pour enregistrer les photos de visages sans masque).


Acquisition d'images avec OpenMV
Tout d'abord, nous connectons l'OpenMV, cliquons sur "Connecter" dans l'IDE, puis sur "Exécuter". Dans le tampon d'images Framebuffer, nous pouvons voir l'image en temps réel de l'OpenMV. En cliquant sur le bouton photo dans la barre de menu de gauche, l'OpenMV enregistre automatiquement cette image, ce qui constitue une donnée dans l'ensemble de données.
Tout d'abord, nous devons enregistrer les visages portant un masque. En cliquant sur le bouton photo, l'IDE prendra une image en bas, qui sera automatiquement nommée 00000, puis la suivante 00001, et ainsi de suite.
Utilisez OpenMV pour collecter respectivement 200 photos de visages portant un masque (100 hommes et 100 femmes) et 200 photos de visages sans masque (100 hommes et 100 femmes).


* Remarque : Veillez à capturer des photos sous différents angles pour garantir la diversité de notre apprentissage d'entraînement.
Si, lors de la collecte, vous constatez qu'une image n'est pas parfaitement capturée, vous pouvez faire un clic droit sur cette image et sélectionner "Supprimer".
02、Téléchargement
Après avoir capturé les images avec OpenMV, vous devez créer un compte et vous connecter sur le site officiel d'EdgeImpulse (https://edgeimpulse.com/) pour commencer à télécharger les images. Les étapes pour télécharger les images sont les suivantes :
Créez un nouveau projet sur EdgeImpulse, cliquez sur "keys", sélectionnez "API Key" et copiez-la. Utilisez cette clé API pour établir la connexion entre OpenMV IDE et Edge Impulse.

Sélectionnez "Outils" – "Éditeur de données" – "Exporter" – "Téléverser" – "Téléverser via clé API" dans la barre de menu supérieure de l'IDE OpenMV, puis copiez et téléversez la "Clé API".
Lors du téléchargement, les données sont automatiquement divisées en un ensemble d'entraînement et un ensemble de test. Nous recommandons de conserver les proportions par défaut de "80 % et 20 %". Nous avons collecté plus de 400 images faciales, où 80 % des données (Training Date) sont utilisées par défaut pour l'entraînement, et les 20 % restants servent d'ensemble de test.


03、Ensemble de données d'entraînement
Le jeu de données étant prêt, vous pouvez procéder à l'entraînement sur l'interface web d'EdgeImpulse.
Module de traitement de configuration :
Tout d'abord, sélectionnez « Impulse Design » et configurez le module de traitement :
* Définir les dimensions par défaut de l'image sur "96 x 96" ;
* Sélectionnez le module « Images », ce qui signifie que nous effectuons un entraînement de classification d'images (vous pouvez également utiliser EdgeImpulse pour classer des sons, des vidéos, etc.) ;
* Sélectionnez « Apprentissage par transfert (images) Transfer Learning (Images) », configurez le modèle d'apprentissage ;
Sélectionnez "Enregistrer l'impulsion", l'affichage de "Succès" indique que la configuration a réussi.

Prétraitement de l'image :
Cliquez sur "Image" dans le menu de gauche, définissez le format de couleur sur "RGB", puis cliquez sur "Enregistrer".

Ensuite, sélectionnez "Générer les caractéristiques" pour lancer le processus. Le prétraitement des images sera effectué sur plus de 400 données, et une visualisation 3D de l'ensemble complet des données sera affichée à droite.

Configuration du modèle d'apprentissage par transfert
Cliquez sur "Apprentissage par transfert Transfer learning" dans le menu de gauche, sélectionnez tous les paramètres par défaut ou modifiez-les selon vos besoins :
1. Définir le nombre de cycles d'entraînement Number of training cycles par défaut à 10
2. Régler le taux d'apprentissage Learning rate à 0,0005
3. Il est possible de cocher ou non l’option « Augmentation des données »
4. Définir la confiance minimale Minimum confidence rating par défaut à 0.8.
Cliquez sur « Commencer l'entraînement Start training », le processus d'entraînement dure environ 4 à 5 minutes.
Une fois l'entraînement du modèle terminé, vous pouvez consulter la précision, la matrice de confusion et les performances attendues de l'appareil.

Test du modèle :
Après l'entraînement, nous utiliserons les données de test pour évaluer le modèle.
Sélectionnez "Test de modèle Model testing", cochez la case à côté de "Nom de l'échantillon Sample name", puis cliquez sur "Classer la sélection Classify selected". La précision affichée ici atteint 97 %, ce qui est remarquable pour un modèle disposant de si peu de données.

La découverte indique que cette image affichée en rouge est incertaine. Cliquez sur les trois points à droite de cette image, sélectionnez "Afficher la classification Show classification", et vous accéderez à l'interface "Classification en temps réel", qui contient plus de détails sur le fichier. Cette interface vous aidera à déterminer la raison de l'erreur de classification de l'image.

Si les données se situent en dehors de tous les clusters connus (avec/sans masque), il peut s'agir de données ne correspondant à aucune catégorie observée précédemment – peut-être en raison d'un visage largement couvert par les cheveux.
04. Exécution du modèle sur OpenMV
Après avoir terminé les étapes de conception de l'entraînement, de l'entraînement du modèle et de la validation du modèle, vous pouvez exporter ce modèle vers votre OpenMV. Sélectionnez "OpenMV", puis "Build" pour générer. Trois fichiers sont automatiquement créés :
trained.tflite Modèle de réseau neuronal entraîné
* labels.txt deux catégories d'étiquettes (face et mask)
* ei_image_classification.py est le code à exécuter sur OpenMV

Connectez OpenMV IDE et enregistrez ces trois fichiers dans la mémoire Flash intégrée d'OpenMV. Ouvrez le fichier ei_image_classification.py dans OpenMV IDE pour voir le code que nous venons de générer dans EdgeImpulse. Cliquez sur Exécuter, et les résultats de l'exécution s'afficheront dans le terminal série.


Très bien, vous avez réussi à ajouter la fonctionnalité d'entraînement autonome du réseau neuronal à OpenMV.
Nous attendons vos résultats avec impatience !

Sentinelle IA basée sur OpenMV : rappel automatique en cas de non-fermeture des lieux sensibles
Détecte automatiquement si la porte d’un lieu sensible reste ouverte pendant une durée prolongée et en informe sans délai.

Alerte en cas de franchissement non autorisé d’une zone par une personne ; OpenMV interprète la « sensation de sécurité liée aux limites ».
Détection des comportements de franchissement de la ligne de délimitation virtuelle par des personnes ou des équipements.

« AI-Gestionnaire municipal » : système automatisé de détection des activités commerciales illégales sur la voie publique basé sur OpenMV
Détection automatique des activités commerciales illégales sur la voie publique, afin de soutenir la gestion quotidienne des villes.

Bouteilles de gaz mal rangées ? Déclenchez automatiquement une alerte de danger à l’aide d’OpenMV
Détection automatique des emplacements non conformes des bouteilles de gaz afin d’identifier préalablement les risques liés au gaz.

Travaux sous tension sans gants isolants ? OpenMV émet immédiatement une alerte !
Détection automatique du port de gants isolants par le personnel effectuant les travaux, afin de faciliter l’exécution sécurisée des opérations.

Utilisation de la caméra intelligente OpenMV pour la détection en temps réel des défauts à la surface des plaques d’aluminium
Détection en ligne des défauts tels que les rayures et les déformations sur la surface des plaques d’aluminium, afin de soutenir la maîtrise de la qualité.