Partager via


Entraîner votre modèle avec Custom Vision

Dans la phase précédente de ce tutoriel, nous avons abordé les conditions préalables à la création de votre propre modèle et application Windows Machine Learning, puis nous avons téléchargé un ensemble d’images à utiliser. Dans cette étape, nous allons apprendre à utiliser l’interface Custom Vision web pour transformer notre jeu d’images en modèle de classification d’images.

Azure Custom Vision est un service de reconnaissance d’images qui vous permet de créer, déployer et améliorer vos propres identificateurs d’image. Le service Custom Vision est disponible sous la forme d’un ensemble de kits SDK natifs, ainsi que par le biais d’une interface web sur le site web Custom Vision.

Créer des ressources et un projet Custom Vision

Créer une ressource Custom Vision

Pour utiliser le service Custom Vision, vous devez créer des ressources Custom Vision dans Azure.

  1. Accédez à la page principale de votre compte Azure, puis sélectionnez Create a resource.

Sélection des ressources Azure

  1. Dans la zone de recherche, recherchez Custom Vision, et vous accéderez à la Place de marché Azure. Sélectionnez cette option Create Custom Vision pour ouvrir la fenêtre de boîte de dialogue dans la page Créer une vision personnalisée.

Sélection des packages

  1. Dans la page de la boîte de dialogue Custom Vision, choisissez les éléments suivants :
  • Sélectionnez les ressources Training et Prediction.
  • Sélectionnez l’abonnement pour gérer les ressources déployées. Si vous ne voyez pas votre abonnement Azure dans le menu, déconnectez-vous et rouvrez votre compte Azure à l’aide des mêmes informations d’identification que celles avec lesquelles vous avez ouvert votre compte.
  • Créez un groupe de ressources et donnez-lui un nom. Dans ce tutoriel, nous avons appelé le nôtre MLTraining, mais n’hésitez pas à choisir votre propre nom ou à utiliser le groupe de ressources existant si vous en avez un.
  • Donnez un nom à votre projet. Dans ce tutoriel, nous avons appelé le nôtre classificationApp, mais vous pouvez utiliser n’importe quel nom de votre choix.
  • Pour les deux ressources Training et Prediction, définissez l’emplacement en tant que (US) Est des États-Unis et le niveau tarifaire en tant que Free FO.
  1. Appuyez Review + create pour déployer vos ressources Custom Vision. Le déploiement de vos ressources peut prendre quelques minutes.

Déployer une nouvelle ressource Custom Vision

Créer un projet dans Custom Vision

Maintenant que vous avez créé votre ressource, il est temps de créer votre projet de formation dans Custom Vision.

  1. Dans votre navigateur web, accédez à la page Custom Vision , puis sélectionnez Sign in. Connectez-vous avec le même compte que celui que vous avez utilisé pour vous connecter au portail Azure.

  2. Sélectionnez cette option New Project pour ouvrir une nouvelle boîte de dialogue de projet.

Créer un projet

  1. Créez un projet comme suit :
  • Name: Classification des Aliments.
  • Description: Classification de différents types d’aliments.
  • Resource: conservez la même ressource que celle que vous avez ouverte précédemment : ClassificationApp [F0].
  • Project Types : classification
  • Classification Types : Multilabel (Multiple tags per image)
  • Domains : Food (compact).
  • Export Capabilities : Basic platforms (Tensorflow, CoreML, ONNX, ...)

Remarque

Pour exporter au format ONNX, veillez à choisir le Food (compact) domaine. Les domaines non compacts ne peuvent pas être exportés vers ONNX.

Important

Si votre compte connecté est associé à un compte Azure, la liste déroulante Groupe de ressources affiche tous vos groupes de ressources Azure qui incluent une ressource de service Custom Vision. Si aucun groupe de ressources n’est disponible, vérifiez que vous vous êtes connecté à customvision.ai avec le même compte que vous avez utilisé pour vous connecter au portail Azure.

  1. Une fois que vous avez rempli la boîte de dialogue, sélectionnez Create project.

Finaliser votre projet

Charger le jeu de données d’entraînement

Maintenant que vous avez créé votre projet, vous allez charger un jeu de données précédemment préparé d’images alimentaires à partir de Kaggle Open Datasets.

  1. Sélectionnez votre FoodClassification projet pour ouvrir l’interface web du site web Custom Vision.

  2. Sélectionnez le Add images bouton et choisissez Browse local files.

Boîte de dialogue Ajouter des images

  1. Accédez à l’emplacement du jeu de données d’image et sélectionnez le dossier d’entraînement : vegetable-fruit. Sélectionnez toutes les images dans le dossier, puis sélectionnez open. L’option d’étiquetage s’ouvre.

  2. Entrez vegetable-fruit dans le champ My Tags et appuyez sur Upload.

Charger des images

Attendez que le premier groupe d’images soit chargé sur votre projet, puis appuyez donesur . La sélection d’étiquettes sera appliquée à l’ensemble du groupe d’images que vous avez sélectionné pour le chargement. C’est pourquoi il est plus facile de charger des images à partir de groupes déjà prédéfini d’images. Vous pouvez toujours modifier les étiquettes des images individuelles une fois qu’elles ont été chargées.

Progression du chargement d’image

  1. Après le premier groupe d’images correctement chargés, répétez le processus deux fois plus pour charger les images du dessert et de la soupe. Veillez à les étiqueter avec les balises appropriées.

À la fin, vous aurez trois groupes d’images différents prêts pour l’entraînement.

Affichage des balises d’image

Entraîner le classifieur de modèle

Vous allez maintenant entraîner le modèle pour classifier les légumes, la soupe et les desserts à partir de l’ensemble d’images que vous avez téléchargées dans la partie précédente.

  1. Pour démarrer le processus d’entraînement, sélectionnez le Train bouton dans le coin supérieur droit. Le classifieur utilise les images pour créer un modèle qui identifie les qualités visuelles de chaque balise.

Bouton Entraîner

Il existe une option permettant de modifier le seuil de probabilité à l’aide du curseur situé dans le coin supérieur gauche. Le seuil de probabilité définit le niveau de confiance qu’une prédiction doit avoir pour être considérée comme correcte. Si le seuil de probabilité est trop élevé, vous obtiendrez une classification plus correcte, mais moins seront détectés. En revanche, si le seuil de probabilité est trop faible, vous détecterez de nombreuses classifications supplémentaires, mais avec une confiance inférieure ou plus de faux résultats positifs.

Dans ce tutoriel, vous pouvez conserver un seuil de probabilité à 50%.

  1. Ici, nous allons utiliser le Quick Training processus. Advanced Training a plus de paramètres et vous permet de définir spécifiquement le temps utilisé pour l’entraînement, mais nous n’avons pas besoin de ce niveau de contrôle ici. Appuyez Train pour lancer le processus d’entraînement.

Choisir un type d’entraînement

Un processus d’apprentissage rapide ne prendra que quelques minutes. Pendant ce temps, les informations sur le processus d’entraînement s’affichent sous l’onglet Performance .

Processus de formation

Évaluer et tester

Évaluer les résultats

Une fois l’entraînement terminé, vous verrez le résumé de la première itération d’entraînement. Il inclut l’estimation des performances du modèle : précision et rappel.

  • La précision indique la fraction des classifications identifiées qui étaient correctes. Dans notre modèle, la précision est de 98,2%. Par conséquent, si notre modèle classifie une image, il est très probable qu’il soit prédit correctement.
  • Rappel indique la fraction des classifications réelles qui ont été correctement identifiées. Dans notre modèle, le rappel est de 97,5 %, ce qui signifie que notre modèle classifie correctement la grande majorité des images qui lui sont présentées.
  • AP signifie « Additional Performance » (Performances supplémentaires). Cela fournit une métrique supplémentaire qui résume la précision et le rappel à différents seuils.

Évaluation de l’entraînement du modèle

Tester le modèle

Avant d’exporter le modèle, vous pouvez tester ses performances.

  1. Sélectionnez Quick Test dans le coin supérieur droit de la barre de menus supérieure, pour ouvrir une nouvelle fenêtre de test.

Bouton de Test

Dans cette fenêtre, vous pouvez fournir une URL de l’image à tester ou sélectionner Browse local files pour utiliser une image stockée localement.

Sélectionner une image pour les tests

  1. Choisissez Browse local files, accédez au jeu de données d’alimentation et ouvrez un dossier de validation. Choisissez une image aléatoire dans le fruit-vegetable dossier et appuyez opensur .

Le résultat du test s’affiche à l’écran. Dans notre test, le modèle a correctement classé l’image avec une certitude de 99,8%.

Résultats de la classification des tests

Vous pouvez utiliser la prédiction pour l’entraînement dans l’onglet Predictions , ce qui peut améliorer les performances du modèle. Pour plus d’informations, consultez Comment améliorer votre classifieur.

Remarque

Vous souhaitez en savoir plus sur les API Azure Custom Vision ? La documentation du service Custom Vision contient plus d’informations sur le portail web Custom Vision et le Kit de développement logiciel (SDK).

Exporter le modèle vers ONNX

Maintenant que nous avons entraîné notre modèle, nous pouvons l’exporter vers ONNX.

  1. Sélectionnez l’onglet Performance , puis choisissez Export d’ouvrir une fenêtre d’exportation.

Bouton d'exportation

  1. Sélectionnez cette option ONNX pour exporter votre modèle au format ONNX.

Choisir votre format

  1. Vous pouvez choisir l’option ONNX 16 float si nécessaire, mais dans ce didacticiel, nous n’avons pas besoin de modifier les paramètres. Sélectionnez Export and Download.

Choisir votre plateforme

  1. Ouvrez le fichier .zip téléchargé et extrayez-le model.onnx à partir de celui-ci. Ce fichier contient votre modèle de classifieur.

Félicitations! Vous avez correctement créé et exporté le modèle de classification.

Étapes suivantes

Maintenant que nous avons un modèle de classification, l’étape suivante consiste à générer une application Windows et à l’exécuter localement sur votre appareil Windows.