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 en ligne EdgeImpulse pour entraîner soi-même un réseau de neurones 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 à ces derniers d'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 réduits télécommandés de conduire de manière autonome, entre autres fonctionnalités.
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 visionner en recherchant "OpenMV4 Plus Training Neural Network for Mask Recognition" 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
使用EdgeImpulse在线训练适用于OpenMV的神经网络模型主要分为以下四个步骤:数据集采集、上传、训练以及部署。
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 permettre au modèle de s'exercer à la distinction.
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 de la photo, l'IDE prendra une photo en bas, qui sera automatiquement nommée 00000, puis la suivante sera 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é des 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".
Les données seront automatiquement divisées en un ensemble d'entraînement et un ensemble 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 au total. Les 80 % de données d'entraînement (Training Date) signifient que 80 % des données sont utilisées pour l'entraînement, tandis que 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 désormais 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églez le taux d'apprentissage Learning rate à 0,0005
3. Vous pouvez cocher ou non l'option "Augmentation des données Data augmentation
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 la formation, nous utiliserons les données de test pour vérifier le modèle.
Sélectionnez "Test de modèle", cochez la case à côté de "Nom de l'échantillon", puis cliquez sur "Classer la sélection". 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 indiquer des 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é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é
SingTown * 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 trois 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 de réseaux neuronaux à 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 trop longtemps et en informe sans délai.

Alerte immédiate en cas de franchissement non autorisé d’une zone par une personne – OpenMV incarne la « sensation de limite sécurisée ».
Détection des comportements de franchissement de la ligne de délimitation virtuelle par des personnes ou des équipements.

« Agent IA de gestion urbaine » lancé : 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 de soutenir la gestion quotidienne des villes.

Des 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 les travailleurs, afin d’assister les opérations sécurisées.

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