IA et apprentissage automatique

Un guide étape par étape pour l'AutoML de Computer Vision dans Microsoft Azure

arrow_circle_right INTELLIGENCE ARTIFICIELLE ET APPRENTISSAGE AUTOMATIQUE

À propos du projet

L'apprentissage automatique automatisé – AutoML en abrégé – est devenu, ces dernières années, à la fois un sujet de recherche très prisé et un moyen pratique pour les entreprises de démarrer leurs opérations d'IA. Il offre souvent de très bons résultats prêts à l'emploi. Tous les principaux fournisseurs de cloud disposent de leurs propres implémentations AutoML de vision par ordinateur (CV). Pour Azure, il s'agit de Custom Vision, Google Cloud propose Cloud AutoML Vision et AWS propose Amazon Recognition.

Nous présentons ici la facilité avec laquelle il est possible de configurer, entraîner et déployer un modèle de vision par ordinateur pour la détection d'objets dans le cloud.

Technologies

Azure
Google Cloud
AWS

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_rightContactez-nous

Parlons de votre projet d'IA

Tomasz Smolarczyk

Tomasz Smolarczyk

Directrice de l'Intelligence Artificielle