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'utilisation du site web EdgeImpulse pour entraîner soi-même un réseau neuronal afin d'effectuer une classification et une reconnaissance.
Dans ce tutoriel, vous utiliserez l'apprentissage automatique pour construire un système de reconnaissance qui, via 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, permettant aux utilisateurs d'OpenMV de former gratuitement des modèles de réseaux neuronaux adaptés à OpenMV en ligne.
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.
De plus, nous fournissons également un tutoriel vidéo, que vous pouvez consulter en recherchant "OpenMV4 Plus Training Neural Network for Mask Recognition" sur le site officiel de SingTown.
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 des modèles de réseaux neuronaux adaptés à OpenMV se divise 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. Bien sûr, 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'outil "Dataset Editor" dans la barre de menu de l'IDE OpenMV, sélectionnez "Nouveau dataset", puis créez un nouveau dossier et ouvrez-le. À l'intérieur du dataset, créez deux dossiers nommés respectivement "mask" (pour enregistrer les photos de visages portant un masque) et "face" (pour enregistrer les photos de visages sans masque).


Capture d'image 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 photo en bas, qui sera automatiquement nommée 00000, puis la suivante sera 00001, et ainsi de suite.
Utiliser 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).


* Note : Assurez-vous de 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 cliquer sur 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 connecter l'IDE OpenMV à Edge Impulse.

Sélectionnez "Outils" dans la barre de menu supérieure d'OpenMV IDE, puis "Éditeur de données", "Exporter", "Télécharger", "Télécharger via clé API", copiez la "Clé API" et téléchargez.
Les données seront automatiquement divisées en ensembles d'entraînement et de test lors du téléchargement, 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 de 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 maintenant entraîner le modèle 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" pour indiquer que nous effectuons un entraînement de classification d'images (vous pouvez également utiliser EdgeImpulse pour classer des sons, des vidéos, etc.)
Choisissez "Apprentissage par transfert (images) Transfer Learning (Images)", configurez le modèle d'apprentissage.
Sélectionnez "Enregistrer l'impulsion Save", l'affichage de "Successfully" indique que la configuration a réussi.

Prétraitement d'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. Vous pouvez cocher ou non "Augmentation des données Data augmentation
4. Définir la note de 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), cela peut être des données qui ne correspondent à aucune catégorie vue précédemment – peut-être en raison de cheveux couvrant une grande partie du visage.
04、Exécuter le 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. Cela crée automatiquement trois fichiers :
trained.tflite modèle de réseau neuronal entraîné
labels.txt deux étiquettes de catégorie (face et mask)
ei_image_classification.py est le code à exécuter sur OpenMV

Connectez OpenMV IDE, enregistrez ces 3 fichiers dans la mémoire Flash intégrée d'OpenMV. Ouvrez le fichier ei_image_classification.py dans OpenMV IDE, vous verrez le code que nous venons de générer dans EdgeImpulse. Cliquez sur Exécuter, 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 stratégique reste ouverte pendant une longue période et en informe immédiatement.

Alerte immédiate en cas de franchissement non autorisé d’une zone par une personne ; OpenMV incarne le « sentiment de sécurité lié aux limites ».
Détection des comportements de franchissement de la ligne de délimitation virtuelle par des personnes ou des équipements.

« AI城管 » est arrivé : système automatisé de détection des activités commerciales illégales sur la voie publique basé sur OpenMV
Identification automatique des activités commerciales illégales sur la voie publique, afin d’assister la gestion quotidienne des villes.

Gaz butane mal rangé ? 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 à l’avance les risques liés au gaz.

Travaux sous tension sans gants isolants ? OpenMV émet immédiatement une alerte !
Détection automatique du port des gants isolants par le personnel travaillant, afin de faciliter les opérations sécurisées.

Utilisation de la caméra intelligente OpenMV pour détecter en temps réel les 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é.