OpenMV
Boucliers
Lentille
Robotique
Livre
Vidéo
Télécharger
Documents
Forum
OpenMV.io
GitHubIl existe deux tâches très courantes de l’intelligence artificielle dans le domaine de la vision : la classification et la détection d’objets.
Catégorie :Déterminer à quelle catégorie appartient l’image, par exemple chat ou chien.
Détection d’objets :Permet de déterminer la position, le nombre et les dimensions de plusieurs objets distincts présents dans une image.
Dans les précédents tutoriels vidéo, nous avons expliqué comment entraîner en ligne un réseau de neurones à l’aide d’OpenMV4 Plus afin de classifier différents objets. Ce système est capable de déterminer en temps réel si une image située dans le champ de vision d’OpenMV correspond à un objet donné, par exemple s’un visage porte ou non un masque ; toutefois, il ne permet pas d’obtenir les coordonnées de localisation du visage ou du masque, ni le nombre de visages détectés.
La détection d’objets étant nettement plus complexe et gourmande en ressources calculatoires que la classification, elle est très rare dans le domaine des microcontrôleurs. Le microcontrôleur principal d’OpenMV est le STM32H7 ; nous avons désormais ajouté à OpenMV une nouvelle fonctionnalité permettant d’exécuter des tâches similaires à la détection d’objets directement sur microcontrôleur, avec des performances remarquables.

Aujourd’hui, nous allons vous expliquerEntraînement démontrant la détection des panneaux de signalisation dans un environnement routier réel, détectant les panneaux de signalisation présents sur nos routes réellespar exemple l’interdiction de klaxonner, l’interdiction de stationner ou la limitation de vitesse à 80 km/h, et non pas dans un environnement de laboratoire exempt d’interférences.
Vous pouvez consulter l’intégralité du projet, y compris tous les codes et modèles, à l’adresse suivante : https://book.openmv.cc/project/traffic-sign.html
Il est bien connu que l’environnement réel est très complexe, en particulier l’environnement routier, où de nombreux facteurs perturbateurs sont présents. Nous avons capturé des images de panneaux de signalisation dans des environnements réels à l’aide de smartphones et d’autres appareils, puis nous avons entraîné notre modèle sur le site en ligne EdgeImpulse, partenaire d’OpenMV, en étiquetant approximativement 270 images. Le temps d’entraînement nécessaire n’était que de 10 minutes, ce qui a permis d’obtenir un modèle dont le score F1 atteint 92 %. Sur OpenMV, le débit d’exécution du modèle s’élève à 10 images par seconde, offrant ainsi une fluidité excellente ainsi qu’une précision élevée.
Vous pouvez former le système à détecter n’importe quel objet souhaité en suivant nos tutoriels vidéo, par exemple différents chiffres, divers fruits, différentes balises, différentes pièces ou encore n’importe quel objet irrégulier spécifique. Le système est ainsi capable d’identifier le nombre d’objets, leurs coordonnées ainsi que leur catégorie.
Remarque :Cette vidéo tutorielle présente la fonction de détection de points cibles basée sur un réseau neuronal, qui est compatible non seulement avec l’OpenMV4 H7 Plus, mais aussi avec l’OpenMV4 H7. En effet, les modèles entraînés de détection de points cibles FOMO sont peu volumineux, offrent d’excellents résultats et ne pèsent que quelques dizaines de ko. Ainsi, même si la mémoire vive de l’OpenMV4 H7 est inférieure à celle de la version Plus, il est possible d’entraîner un modèle légèrement plus petit afin de l’exécuter sur l’OpenMV4.
Voici ci-dessous une brève présentation du principe :
Les principales décisions de conception relatives à la détection de points cibles FOMO sur OpenMV reposent sur l’idée suivante : de nombreux problèmes de détection d’objets ne nécessitent pas la taille des objets, mais uniquement leur position dans l’image. Une fois la position des objets connue, des opérations ultérieures peuvent être effectuées, telles que le contrôle d’un véhicule par OpenMV afin qu’il se déplace vers la cible détectée, l’atterrissage précis d’un drone ou encore le contrôle d’un bras robotique pour saisir un objet cible spécifique.
Le modèle FOMO est un modèle spécialement conçu par EdgeImpulse pour les environnements à base de microcontrôleurs ; contrairement aux détections d’objets classiques, il permet uniquement de détecter la position et le nombre de plusieurs objets, sans toutefois fournir leurs dimensions précises.
Le principe fondamental du modèle FOMO est très simple et souple. Il commence par diviser l’image en blocs de 8 × 8 pixels. Pour une image de résolution 96 × 96, cela donne une grille de 12 × 12 cellules ; pour une image de résolution 360 × 360, cela donne une grille de 40 × 40 cellules. Ensuite, une classification d’image est effectuée indépendamment sur chaque cellule.
Par rapport à YOLO V5 ou MobileNet SSD, FOMO offre de bien meilleures performances lors de la détection d’un grand nombre de petits objets. La détection de points cibles par FOMO est 30 fois plus rapide que celle par MobileNet SSD.
Si les objets à détecter sont de tailles similaires, par exemple si les dimensions des repères à identifier ne varient que peu, plutôt que de comporter à la fois un objet très grand et un objet très petit, les performances de FOMO seront meilleures.
OpenMV utilise EdgeImpulse pour l’entraînement en ligne de réseaux neuronaux destinés à la détection de points cibles, ce qui comprend principalement les étapes suivantes : acquisition et téléchargement du jeu de données d’images, annotation des cibles, entraînement, test du modèle et déploiement.
* Acquisition d’un jeu de données d’images : prise de photographies d’objets spécifiques présents dans l’environnement réel à identifier. Nous effectuons la capture d’images réelles dans le même environnement que celui dans lequel l’identification doit être réalisée, de sorte que l’environnement réel d’entraînement et l’environnement réel de détection soient pratiquement identiques, ce qui améliore les performances.
* Objectif de l’annotation : encadrer chaque objet à détecter dans notre jeu de données et associer à chacun son nom, afin de faciliter l’entraînement ultérieur ainsi que la détection de la position et du nom des objets.
* Modèle d’entraînement : une fois l’annotation terminée, le modèle est entraîné selon les paramètres du réseau de neurones convolutifs que nous avons conçus.
* Modèle de test : Nous procédons à des tests sur la base du modèle entraîné. Si les résultats ne sont pas satisfaisants, nous augmentons respectivement l’ensemble de données d’entraînement ou ajustons les paramètres d’entraînement, puis poursuivons l’entraînement jusqu’à l’obtention d’un modèle satisfaisant.
* Déploiement : Il suffit de placer les fichiers du modèle entraîné sur la clé USB intégrée à OpenMV pour les exécuter.
Voici une démonstration du processus concret :
01. Collecte et téléchargement du jeu de données d’images
I. Tout d’abord, connectez-vous au site web edgeimpulse.com, sélectionnez « Connexion », saisissez le nom du nouveau projet, puis choisissez « Images » — « Classifier plusieurs objets »

Deuxièmement, sélectionnez une image à télécharger. Il existe plusieurs façons d’obtenir un jeu de données d’images :
1. Acquisition d’images en temps réel à l’aide de l’IDE OpenMV. Utilisez l’outil « Éditeur de jeux de données » intégré à l’IDE OpenMV pour créer un nouveau jeu de données et acquérir des images en temps réel. Pour plus de détails, veuillez consulter notre tutoriel vidéo précédent sur la classification d’objets et la détection de masques.

2. Des images téléchargées depuis Internet ou prises directement avec un smartphone. Il est préférable qu’elles correspondent à l’environnement réel dans lequel vous effectuez la détection. Nous avons préparé quatre à cinq cents images de panneaux de signalisation routière, notamment des panneaux « Stationnement interdit », « Klaxonner interdit » et « Vitesse maximale 80 km/h ». Chaque image a été capturée sur une route réelle. Ce jeu de données est disponible en téléchargement sur notre site GitHub ainsi que sur notre site de tutoriels.
02. Objectif de l’annotation
Pour chaque catégorie, environ 100 images sont téléchargées ; une fois le téléchargement des images terminé, celles-ci doivent être annotées afin d’indiquer la position et la catégorie des objets à identifier.


03. Entraînement du modèle
Définissez les paramètres de l’entraînement de conception, modifiez la résolution en 128 × 128 et conservez tous les paramètres par défaut ; cliquez ensuite sur « Enregistrer ».

Génération des fonctionnalités : les trois couleurs représentent respectivement les trois symboles.

Définir les paramètres d’entraînement pour la détection d’objets. Le nombre d’époques d’entraînement est par défaut de 60, le taux d’apprentissage de 0,001 et la proportion de l’ensemble de validation de 20 %. Cocher la case « Activation de l’augmentation des données ». Pour le modèle d’apprentissage par transfert, vous pouvez choisir par défaut MobileNetV2 0,35 ou MobileNetV2 0,1. (Remarque : SSD ne peut pas être utilisé, car il n’est pas pris en charge par OpenMV.)
Sélectionnez « Démarrer l’entraînement ». Une fois l’entraînement terminé, le modèle de réseau neuronal obtenu présente un score F1 de 91,2 % ; nous pouvons enregistrer la version actuelle.

Sélectionnez un emplacement de stockage, saisissez une description, puis cliquez sur « Enregistrer ».

04. Déploiement du modèle
Exporter le fichier du modèle entraîné. Il suffit d’exporter la bibliothèque ; sélectionnez OpenMV, puis cliquez sur « Build » pour lancer le déploiement et l’exportation du modèle.

Il télécharge automatiquement le modèle que nous avons exporté, ici le modèle entraîné sur nos 300 images, ce qui achève ainsi l’intégralité de notre processus d’entraînement.

05. Exécuter le modèle
Exécuter le modèle sur OpenMV :
Connectez l’OpenMV Plus, enregistrez les trois fichiers entraînés sur la clé USB intégrée de l’OpenMV, puis ouvrez le fichier ei_object_detection.py dans l’IDE OpenMV. Cliquez sur « Exécuter » ; les résultats de l’exécution s’afficheront dans le terminal série.


Cette fonctionnalité est également compatible avec la OpenMV4. Comme la OpenMV4 ne dispose pas de SDRAM externe, sa mémoire est plus limitée ; nous pouvons donc réduire la taille du modèle afin de permettre son exécution sur la OpenMV4.
Il existe deux méthodes permettant de réduire la taille du modèle :
I. Réduire la résolution d’entraînement en passant d’une résolution de 128 × 128 à une résolution de 96 × 96.
Deuxièmement, modifier le modèle d’apprentissage par transfert utilisé en remplaçant MobileNetV2 0.35 par MobileNetV2 0.1.
Enfin, le nouveau fichier entraîné peut être déployé et exécuté sur la carte OpenMV4.
Voici notre tutoriel sur la détection des points cibles. 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é.