Un guide étape par étape pour l'AutoML de Computer Vision dans Microsoft Azure
Technologies
Création du projet
Nous commençons par le jeu de données. Nous avons décidé d'utiliser un jeu de données sur les défauts de l'acier appelé NEU-DET [1]. Le jeu de données contient 1800 images annotées de 6 classes de défauts de l'acier. Vous pouvez voir ces défauts dans la figure ci-dessous.
Fig.1. Classes NEU-DET (source : [1])
Actuellement, Azure Custom Vision prend en charge les tâches de classification d'images et de détection d'objets. Lors de la création du projet, nous avons choisi Général domaine. Si le modèle devait être déployé en périphérie, nous aurions choisi le Général (compact) domaine à la place. L'entraînement d'un modèle compact nous permet d'exporter le modèle après l'entraînement et de le déployer sur un appareil en périphérie (c'est-à-dire dans une usine, un magasin, etc.).
Le jeu de données peut être téléchargé directement dans Azure Custom Vision via l'interface web ou à l'aide du SDK. Nous avons opté pour le SDK car il offre la possibilité de télécharger des images par lots. Pour cela, nous avons suivi la documentation de Custom Vision Démarrage rapide : Créer un projet de détection d'objets avec la bibliothèque cliente Custom Vision. Nous avons également appliqué quelques transformations d'images afin de rester conformes aux exigences de Custom Vision. Nous avons redimensionné les images et les cadres de délimitation à 256×256 pixels et les avons convertis en RGB. Nous avons téléchargé 400 images aléatoires représentant 3 des 6 classes disponibles : inclusions, taches et rayures.
Une fois le téléchargement terminé, nous pouvons voir les images dans le portail :
Fig. 2. Images téléchargées dans l'interface utilisateur de Custom Vision
Après avoir sélectionné une seule image, nous pouvons voir les boîtes englobantes :
Fig. 3. Boîtes englobantes pour une image unique dans l'interface utilisateur de Custom Vision
Formation et optimisation
Une fois que nous avons confirmé que tout semble correct, nous pouvons passer à l'entraînement du modèle. Deux options sont disponibles dans l'outil Custom Vision. La première est la méthode d'entraînement rapide (Quick Training) et la seconde est l'entraînement avancé (Advanced Training), qui nous permet de spécifier le budget d'entraînement, c'est-à-dire le nombre d'heures pendant lesquelles le modèle sera entraîné.
Nous avons décidé de tester le modèle après seulement 1h d'entraînement. Les résultats sont les suivants :
Fig. 4. Métriques de performance du modèle avec seuils de prédiction par défaut
Détecter tous les défauts possibles, au prix d'un plus grand nombre de faux positifs, peut être plus important que d'avoir davantage de confiance dans les prédictions. Custom Vision offre un ajustement fluide des seuils de prédiction pour améliorer les performances du modèle. Dans notre cas, nous privilégions un Recall élevé plutôt qu'une Precision élevée. Il est important de ne pas abaisser ces seuils trop fortement, car les performances du modèle en souffriraient considérablement. Par exemple, un seuil de probabilité faible entraînera une augmentation du nombre de faux positifs. Si le modèle doit être déployé en environnement de production, nous ne pouvons pas arrêter la ligne de production pour chaque faux positif détecté par le modèle. Trouver un équilibre est essentiel.
Pour le problème sur lequel nous travaillons actuellement, nous avons décidé de définir nos KPI comme suit :
- La principale métrique à optimiser est le mAP – il ne peut pas être inférieur à 85 %
- Le Recall et la Precision sont tout aussi importants, et tous deux doivent rester au-dessus de 80 %
Après quelques minutes à ajuster les seuils et à examiner les prédictions du modèle, nous aboutissons aux seuils suivants :
Fig. 5. Seuils de prédiction par défaut (à gauche) et ajustés (à droite)
La réduction des deux seuils à 25 % a donné les résultats suivants :
Fig. 6. Métriques de performance du modèle après ajustement des seuils de prédiction
Notre principal indicateur est satisfaisant – le mAP est égal à 86,8 %. La précision et le rappel sont tous deux supérieurs à 80 %, ce qui est également excellent. Pour aller plus loin, une analyse approfondie des données de test peut être réalisée en téléchargeant de nouvelles images dans l'outil Custom Vision et en examinant les prédictions.
Fig. 7. Prédictions du modèle sur des données inédites
Déploiement
Le modèle semble fonctionner comme prévu. Il est temps pour nous de déployer un point de terminaison de prédiction.
Fig. 8. L'option de publication dans l'interface utilisateur de Custom Vision
Une fois le processus de publication terminé, nous pouvons commencer à utiliser notre modèle pour obtenir des prédictions sur de nouvelles données. Nous pouvons constater qu'un libellé « Published » est apparu à côté de notre itération dans la barre latérale gauche, et son nom est désormais visible dans la description de l'itération. Nous pouvons récupérer les informations nécessaires à l'exécution des prédictions en sélectionnant Prediction URL et Prediction-Key.
Résumé
Dans cet article, nous avons montré combien il est simple et rapide de construire un modèle de vision par ordinateur pour la détection d'objets. Azure Custom Vision nous a fourni un modèle pouvant être rapidement évalué par nos clients, sans nécessiter d'ingénieurs MLOps. Il nous a également offert une base solide pour tester nos propres modèles.
arrow_circle_right Nos réalisations
Découvrez les réussites de nos clients
arrow_circle_rightContactez-nous









