Verwenden des Modells mit der Vorhersage-APIUse your model with the prediction API

Nachdem Sie Ihr Modell trainiert haben, können Sie Bilder programmgesteuert testen, indem Sie sie an den Endpunkt der Vorhersage-API senden.After you've train your model, you can test images programmatically by submitting them to the Prediction API endpoint.

Hinweis

Dieser Artikel veranschaulicht, wie Sie mit C# ein Bild an die Vorhersage-API senden.This document demonstrates using C# to submit an image to the Prediction API. Weitere Informationen und Beispiele finden Sie in der Vorhersage-API-Referenz.For more information and examples, see the Prediction API reference.

Veröffentlichen der trainierten IterationPublish your trained iteration

Wählen Sie auf der Custom Vision-Webseite Ihr Projekt und dann die Registerkarte Leistung aus.From the Custom Vision web page, select your project and then select the Performance tab.

Um Bilder an die Vorhersage-API zu senden, müssen Sie zuerst Ihre Iteration für die Vorhersage veröffentlichen. Dazu wählen Sie Veröffentlichen aus und geben einen Namen für die veröffentlichte Iteration an.To submit images to the Prediction API, you will first need to publish your iteration for prediction, which can be done by selecting Publish and specifying a name for the published iteration. Auf diese Weise wird Ihr Modell für die Vorhersage-API Ihrer Azure-Ressource von Custom Vision zugänglich.This will make your model accessible to the Prediction API of your Custom Vision Azure resource.

Die Registerkarte „Leistung“ wird mit einem roten Rechteck um die Schaltfläche „Veröffentlichen“ angezeigt.

Sobald das Modell erfolgreich veröffentlicht wurde, wird neben der Iteration in der linken Seitenleiste die Bezeichnung „Veröffentlicht“ angezeigt. Ihr Name wird in der Beschreibung der Iteration angezeigt.Once your model has been successfully published, you'll see a "Published" label appear next to your iteration in the left-hand sidebar, and its name will appear in the description of the iteration.

Die Registerkarte „Leistung“ wird mit einem roten Rechteck um die Bezeichnung „Veröffentlicht“ und den Namen der veröffentlichten Iteration angezeigt.

Abrufen der Vorhersage-URL und des Vorhersage-SchlüsselsGet the URL and prediction key

Nachdem das Modell veröffentlicht wurde, können Sie die erforderlichen Informationen abrufen, indem Sie Vorhersage-URL auswählen.Once your model has been published, you can retrieve the required information by selecting Prediction URL. Dadurch wird ein Dialogfeld mit Informationen zur Verwendung der Vorhersage-API geöffnet, einschließlich Vorhersage-URL und Vorhersage-Schlüssel.This will open up a dialog with information for using the Prediction API, including the Prediction URL and Prediction-Key.

Die Registerkarte „Leistung“ wird mit einem roten Rechteck um die Schaltfläche „Vorhersage-URL“ angezeigt.

Die Registerkarte „Leistung“ wird mit einem roten Rechteck um den Wert „Vorhersage-URL“ für die Verwendung einer Bilddatei und um den Wert „Vorhersage-Schlüssel“ angezeigt.

In dieser Anleitung verwenden Sie ein lokales Bild, also kopieren Sie die URL unter Wenn eine Bilddatei vorliegt an einen temporären Speicherort.In this guide, you will use a local image, so copy the URL under If you have an image file to a temporary location. Kopieren Sie auch den entsprechenden Vorhersage-Schlüssel-Wert.Copy the corresponding Prediction-Key value as well.

Erstellen der AnwendungCreate the application

  1. Erstellen Sie in Visual Studio eine neue C#-Konsolenanwendung.In Visual Studio, create a new C# console application.

  2. Verwenden Sie den folgenden Code als Textkörper der Datei Program.cs.Use the following code as the body of the Program.cs file.

    using System;
    using System.IO;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Threading.Tasks;
    
    namespace CVSPredictionSample
    {
        public static class Program
        {
            public static void Main()
            {
                Console.Write("Enter image file path: ");
                string imageFilePath = Console.ReadLine();
    
                MakePredictionRequest(imageFilePath).Wait();
    
                Console.WriteLine("\n\nHit ENTER to exit...");
                Console.ReadLine();
            }
    
            public static async Task MakePredictionRequest(string imageFilePath)
            {
                var client = new HttpClient();
    
                // Request headers - replace this example key with your valid Prediction-Key.
                client.DefaultRequestHeaders.Add("Prediction-Key", "<Your prediction key>");
    
                // Prediction URL - replace this example URL with your valid Prediction URL.
                string url = "<Your prediction URL>";
    
                HttpResponseMessage response;
    
                // Request body. Try this sample with a locally stored image.
                byte[] byteData = GetImageAsByteArray(imageFilePath);
    
                using (var content = new ByteArrayContent(byteData))
                {
                    content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                    response = await client.PostAsync(url, content);
                    Console.WriteLine(await response.Content.ReadAsStringAsync());
                }
            }
    
            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);
            }
        }
    }
    
  3. Ändern Sie die folgenden Angaben:Change the following information:

    • Legen Sie für das Feld namespace den Namen Ihres Projekts fest.Set the namespace field to the name of your project.
    • Ersetzen Sie den Platzhalter <Your prediction key> durch den Schlüsselwert, den Sie zuvor abgerufen haben.Replace the placeholder <Your prediction key> with the key value you retrieved earlier.
    • Ersetzen Sie den Platzhalter <Your prediction URL> durch die URL, die Sie zuvor abgerufen haben.Replace the placeholder <Your prediction URL> with the URL you retrieved earlier.

Ausführen der AnwendungRun the application

Wenn Sie die Anwendung ausführen, werden Sie aufgefordert, einen Pfad zu einer Bilddatei in der Konsole einzugeben.When you run the application, you are prompted to enter a path to an image file in the console. Das Bild wird dann an die Vorhersage-API übergeben und die Ergebnisse der Vorhersage werden als Zeichenfolge im JSON-Format zurückgegeben.The image is then submitted to the Prediction API, and the prediction results are returned as a JSON-formatted string. Hier sehen Sie eine Beispielantwort.The following is an example response.

{
    "id":"7796df8e-acbc-45fc-90b4-1b0c81b73639",
    "project":"8622c779-471c-4b6e-842c-67a11deffd7b",
    "iteration":"59ec199d-f3fb-443a-b708-4bca79e1b7f7",
    "created":"2019-03-20T16:47:31.322Z",
    "predictions":[
        {"tagId":"d9cb3fa5-1ff3-4e98-8d47-2ef42d7fb373","tagName":"cat", "probability":1.0},
        {"tagId":"9a8d63fb-b6ed-4462-bcff-77ff72084d99","tagName":"dog", "probability":0.1087869}
    ]
}

Nächste SchritteNext steps

In dieser Anleitung haben Sie erfahren, wie Sie Bilder an Ihren benutzerdefinierten Bildklassifizierer bzw. an die Bilderkennung senden und eine programmgesteuerte Antwort mit dem C# SDK erhalten.In this guide, you learned how to submit images to your custom image classifier/detector and receive a response programmatically with the C# SDK. Als Nächstes erfahren Sie, wie Sie End-to-End-Szenarien mit C# abschließen oder die ersten Schritte mit einem SDK für eine andere Sprache durchführen können.Next, learn how to complete end-to-end scenarios with C#, or get started using a different language SDK.