Appeler l’API de prédiction

Après avoir entraîné votre modèle, vous pouvez le tester programmatiquement en envoyant les images au point de terminaison de l’API de prédiction. Dans ce guide, vous allez apprendre à appeler l’API de prédiction pour noter une image. Vous découvrirez les différentes façons dont vous pouvez configurer le comportement de cette API pour répondre à vos besoins.

Notes

Ce document illustre l’utilisation de la bibliothèque cliente .NET pour C# afin d’envoyer une image à l’API de prédiction. Pour en savoir plus et obtenir des exemples, consultez la référence sur l’API Prediction.

Programme d’installation

Publier votre itération formée

À partir de la page Web Custom Vision, sélectionnez votre projet, puis sélectionnez l’onglet Performance.

Pour envoyer des images à l’API de prédiction, vous devez d’abord publier votre itération pour la prédiction, ce que vous pouvez faire en sélectionnant Publier et en spécifiant un nom pour l’itération publiée. Cela rend votre modèle accessible à l’API de prédiction de votre ressource Azure Custom Vision.

The performance tab is shown, with a red rectangle surrounding the Publish button.

Une fois votre modèle publié avec succès, vous verrez une étiquette « Publié » s’afficher à côté de votre itération dans la barre latérale gauche, et son nom s’affiche dans la description de l’itération.

The performance tab is shown, with a red rectangle surrounding the Published label and the name of the published iteration.

Obtenir l’URL et la clé de prédiction

Une fois que votre modèle a été publié, vous pouvez récupérer les informations requises en sélectionnant URL de prédiction. Cela ouvrira une boîte de dialogue avec les informations sur l’utilisation de l’API de prédiction, y compris l’URL de prédiction et la Prediction-Key.

The performance tab is shown with a red rectangle surrounding the Prediction URL button.

The performance tab is shown with a red rectangle surrounding the Prediction URL value for using an image file and the Prediction-Key value.

Envoyer des données au service

Ce guide suppose que vous avez déjà construit un objet CustomVisionPredictionClient , nommé predictionClient, avec votre URL de point de terminaison et votre clé d’abonnement Custom Vision. Pour obtenir des instructions sur la configuration de cette fonctionnalité, suivez un des guides de démarrage rapide.

Dans ce guide, vous allez utiliser une image locale. Par conséquent, téléchargez une image que vous souhaitez envoyer à votre modèle formé. Le code suivant invite l’utilisateur à spécifier un chemin d’accès local et obtient le flux d’octets du fichier sur ce chemin d’accès.

Console.Write("Enter image file path: ");
string imageFilePath = Console.ReadLine();
byte[] byteData = GetImageAsByteArray(imageFilePath);

Incluez la méthode d’assistance suivante :

private static byte[] GetImageAsByteArray(string imageFilePath)
{
    FileStream fileStream = new FileStream(imageFilePath, FileMode.Open, FileAccess.Read);
    BinaryReader binaryReader = new BinaryReader(fileStream);
    return binaryReader.ReadBytes((int)fileStream.Length);
}

La méthode ClassifyImageAsync prend l’ID de projet et l’image stockée localement, et évalue l’image par rapport au modèle donné.

// Make a prediction against the new project
Console.WriteLine("Making a prediction:");
var result = predictionApi.ClassifyImageAsync(project.Id, publishedModelName, byteData);

Déterminer le mode de traitement des données

Vous pouvez éventuellement configurer la manière dont le service effectue l’opération de notation en choisissant d’autres méthodes (consultez les méthodes de la classe CustomVisionPredictionClient ).

Vous pouvez utiliser une version non asynchrone de la méthode ci-dessus pour des raisons de simplicité, mais cela peut entraîner le blocage du programme pendant un certain temps.

Les méthodes -WithNoStore requièrent que le service ne conserve pas l’image de prédiction une fois la prédiction terminée. Normalement, le service conserve ces images, ce qui vous donne la possibilité de les ajouter en tant que données d’apprentissage pour les prochaines itérations de votre modèle.

Les méthodes -WithHttpMessages retournent la réponse HTTP brute de l’appel d’API.

Obtenir les résultats du service

Le service retourne les résultats sous la forme d’un objet ImagePrediction . La propriété Predictions contient une liste d’objets PredictionModel , chacun représentant une prédiction d’objet unique. Ils incluent le nom de l’étiquette et les coordonnées du cadre englobant où l’objet a été détecté dans l’image. Votre application peut ensuite analyser ces données pour, par exemple, afficher l’image avec des champs d’objet étiquetés sur un écran.

Étapes suivantes

Dans ce guide, vous avez appris à envoyer des images sur votre détecteur/classifieur d’images personnalisé et recevoir une réponse par programmation avec le SDK C#. Nous allons maintenant apprendre à exécuter des scénarios de bout en bout avec C#, ou commencer à utiliser une autre langue de SDK.