Partager via


Appeler l’API Prédiction

Après avoir entraîné votre modèle, vous pouvez le tester par programmation en envoyant des images au point de terminaison de l’API Prédiction. Dans ce guide, vous découvrez comment appeler l’API Prédiction pour attribuer un score à 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

Dans le site web Custom Vision, sélectionnez votre projet, puis sélectionnez l’onglet Performances.

Pour envoyer des images à l’API 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. Ceci rend votre modèle accessible à l’API Prédiction de votre ressource Azure Custom Vision.

Capture d’écran montrant l’onglet Performances, avec un rectangle rouge entourant le bouton Publier.

Une fois votre modèle publié, l’étiquette Publié apparaît en regard de votre itération dans la barre latérale gauche, et son nom apparaît dans la description de l’itération.

Capture d’écran de l’onglet Performances, avec un rectangle rouge autour de l’étiquette Publié et le nom de l’itération publiée.

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. Une boîte de dialogue s’ouvre, avec des informations sur l’utilisation de l’API Prédiction, y compris l’URL de prédiction et la Clé de prédiction.

Capture d’écran de l’onglet Performances avec un rectangle rouge entourant le bouton URL de prédiction.

Capture d’écran de l’onglet Performances avec un rectangle rouge autour de la valeur de l’URL de prédiction pour l’utilisation d’un fichier image et la valeur de la clé de prédiction.

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 utilisez une image locale : téléchargez donc une image que vous voulez envoyer à votre modèle entraîné. 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

Si vous le souhaitez, vous pouvez configurer la façon dont le service effectue l’opération de scoring en choisissant d’autres méthodes. Pour plus d’informations, consultez la méthode 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 effectué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.

Étape suivante

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.