Classification d’images avec ML.NET et Windows Machine Learning

Image classification flow

Ce guide vous montre comment effectuer l’entraînement d’un modèle de réseau neuronal pour classifier les images de nourriture à l’aide de ML.NET Model Builder, exporter le modèle au format ONNX et le déployer dans une application Windows Machine Learning exécutée localement sur un appareil Windows. Aucune expertise précédente en Machine Learning n’est requise. Nous vous guiderons pas à pas tout au long du processus.

Si vous souhaitez apprendre à créer et à entraîner un modèle avec ML.NET Model Builder, vous pouvez passer à Entraîner un modèle.

Si vous avez un modèle et que vous voulez apprendre à créer une application WinML à partir de zéro, accédez au tutoriel complet sur l’application WinML.

Si vous souhaitez obtenir la solution prédéfinie pour une application WinML, vous pouvez cloner le fichier solution et le tester immédiatement.

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 votre modèle, vous allez utiliser ML.NET Model Buider dans Visual Studio.

  • Vous avez besoin de Visual Studio 2019 16.6.1 ou version ultérieure pour utiliser ML.NET Model Builder. Vous pouvez obtenir Visual Studio ici.
  • Vous avez besoin d’un compte Azure pour entraîner un modèle avec ML.NET Model Builder dans l’espace de travail Azure ML. Si vous êtes un nouvel utilisateur d’Azure, vous pouvez vous inscrire pour obtenir un compte gratuit Azure.

Remarque

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

ML.NET Model Builder est une extension graphique intuitive de Visual Studio, qui permet de générer, d’entraîner et de déployer des modèles Machine Learning personnalisés. Celle-ci utilise le Machine Learning automatisé (AutoML) pour explorer différents algorithmes et paramètres Machine Learning afin de vous aider à trouver celui qui convient le mieux à votre scénario.

ML.NET Model Builder est fourni avec Visual Studio version 16.6.1 ou ultérieure, lorsque vous installez l’une des charges de travail .NET. Vérifiez que le composant ML.NET Model Builder est activé dans le programme d’installation lorsque vous téléchargez ou modifiez Visual Studio. Pour vérifier si VS contient les composants ML.NET Model Builder, accédez à Extensions et sélectionnez Gérer les extensions. Tapez Model Builder dans la barre de recherche pour passer en revue les extensions proposées.

Model builder extension

ML.NET Model Builder est actuellement une fonctionnalité en préversion. Pour utiliser l’outil, dans Visual Studio, accédez à Outils > Options > Environnement > Fonctionnalités en préversion et activez ML.NET Model Builder :

Enable the model builder extension

Remarque

Vous souhaitez en savoir plus sur ML.NET Model Builder et les différents scénarios qu’il prend en charge ? Consultez la documentation sur Model Builder.

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 :

Remarque

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

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 de 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, formation 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 ici. Notez que la taille du jeu de données est d’environ 1 Go et que vous pouvez être invité à créer un compte sur le site web Kaggle pour télécharger les données.

Food image dataset

Si vous le souhaitez, 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’entraînement 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).
  • Le côté le plus court 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 vérifié les prérequis et préparé le jeu de données, vous pouvez passer à la création de votre modèle WinML. Dans la partie suivante, vous allez utilisez ML.NET Model Builder pour créer et entraîner votre modèle de classification.