Classification d’images avec Custom Vision et Windows Machine Learning

Image classification flow

Ce guide vous montre comment : entraîner un modèle de réseau neuronal pour classifier les images de nourriture à l’aide du service Azure Custom Vision ; exporter le modèle au format ONNX ; et déployer le modèle dans une application Windows Machine Learning (Windows ML) exécutée localement sur un appareil Windows. Vous n’avez besoin d’aucune expertise en apprentissage automatique ! Nous vous guiderons pas à pas tout au long du processus.

Si vous souhaitez apprendre à créer et à entraîner un modèle avec Custom Vision, vous pouvez passer à Entraîner un modèle.

Si vous avez un modèle et voulez apprendre à créer une application Windows ML à partir de zéro, consulter le tutoriel complet sur l’application Windows ML.

Si vous souhaitez commencer par un projet Visual Studio préexistant pour une application Windows ML, vous pouvez cloner l’exemple d’application du tutoriel Custom Vision et Windows ML et l’utiliser comme point de départ.

Scénario

Dans ce tutoriel, vous allez créer une application de classification de nourriture Machine Learning qui s’exécute sur des appareils Windows. Le modèle est entraîné à la reconnaissance de certains types de modèles pour classer une image de nourriture et, lorsqu’une image lui est donnée, il retourne une étiquette de classification et la valeur de pourcentage de confiance associée de cette classification.

Conditions préalables à l’entraînement du modèle

Pour créer et entraîner un modèle, vous avez besoin d’un abonnement aux services Azure Custom Vision.

Si vous êtes un nouvel utilisateur d’Azure, vous pouvez vous inscrire pour obtenir un compte gratuit Azure. Cela vous donnera la possibilité de créer, d’entraîner et de déployer des modèles Machine Learning avec Azure AI.

Conseil

Voulez-vous en savoir plus sur les options d’inscription à Azure et les comptes gratuits Azure ? Consultez Créer un compte Azure.

Prérequis pour le déploiement d’applications Windows ML

Pour créer et déployer une application Windows ML, vous devez avoir les éléments suivants :

  • Windows 10, version 1809 (version 17763) ou ultérieure. Vous pouvez vérifier votre numéro de version en exécutant winver via la commande Exécuter (touche avec le logo Windows + R).
  • SDK Windows pour la version 17763 ou ultérieure. Pour télécharger, consultez SDK Windows.
  • Visual Studio 2017 version 15.7 ou ultérieure, mais nous vous recommandons d’utiliser Visual Studio 2022 ou version ultérieure. Certaines captures d’écran de ce tutoriel peuvent différer de l’IU que vous verrez. Pour télécharger Visual Studio, consultez Téléchargements et outils pour le développement Windows.
  • Extension Windows ML Code Generator (mlgen) pour Visual Studio. Téléchargez-la pour Visual Studio 2019 ou version ultérieure ou Visual Studio 2017.
  • Si vous décidez de créer une application Universal Windows Platform (UWP), vous devez activer la charge de travail de développement Plateforme Windows universelle dans Visual Studio.
  • Activez le mode développeur sur votre PC ; consultez Activer votre appareil pour le développement.

Remarque

Les API Windows ML sont intégrées aux versions les plus récentes de Windows 10 (1809 ou version ultérieure) et Windows Server 2019. Si votre plateforme cible est une version antérieure de Windows, vous pouvez transférer votre application Windows ML vers le package redistribuable NuGet (Windows 8.1 ou version ultérieure).

Préparer les données

Les modèles Machine Learning doivent être entraînés avec des données existantes. Dans ce guide, vous allez utiliser un jeu de données d’images de nourriture provenant des jeux de données Kaggle Open Datasets. Ce jeu de données est distribué sous la licence de domaine public.

Important

Pour utiliser ce jeu de données, vous devez vous conformer aux conditions d’utilisation du site Kaggle et aux termes du contrat de licence accompagnant le jeu de données Food-11 lui-même. Microsoft n’offre aucune garantie ni représentation relative au site ou à ce jeu de données.

Le jeu de données inclut trois fractionnements : évaluation, entraînement et validation. Il contient 16 643 images de nourriture regroupées dans 11 catégories principales. Les images du jeu de données de chaque catégorie de nourriture sont placées dans un dossier distinct, ce qui rend le processus d’entraînement du modèle plus pratique.

Téléchargez le jeu de données à partir du jeu de données d’image Food-11. La taille du jeu de données est d’environ 1 Go et vous pouvez être invité à créer un compte sur le site Web Kaggle pour télécharger les données.

Food image datasaet

Si vous le préférez, vous pouvez utiliser tout autre jeu de données d’images pertinentes. Nous vous recommandons d’utiliser au moins 30 images par étiquette dans le jeu d’apprentissage initial. Vous allez également collecter quelques images supplémentaires pour tester votre modèle une fois qu’il est entraîné.

En outre, vérifiez que toutes vos images d’entraînement respectent les critères suivants :

  • format .jpg, .png, .bmp ou .gif.
  • Taille ne dépassant pas 6 Mo (4 Mo pour les images de prédiction).
  • La périphérie la plus courte ne doit pas comporter moins de 256 pixels ; les images d’une dimension inférieure sont automatiquement mises à l’échelle par le service Custom Vision.

Étapes suivantes

Maintenant que vous avez défini les conditions préalables et préparé votre jeu de données, vous pouvez passer à la création de votre modèle Windows ML. Dans la partie suivante (Entraîner votre modèle avec Custom Vision), vous allez utiliser l’interface Custom Vision basée sur le Web pour créer et entraîner votre modèle de classification.