Aufrufen der Vorhersage-API

Nachdem Sie Ihr Modell trainiert haben, können Sie es programmgesteuert testen, indem Sie Images an den Endpunkt der Vorhersage-API senden. In diesem Leitfaden erfahren Sie, wie Sie die Vorhersage-API zum Bewerten eines Bilds aufrufen. Sie erfahren mehr über die verschiedenen Möglichkeiten für die Konfiguration dieser API entsprechend Ihren Anforderungen.

Hinweis

Dieses Dokument veranschaulicht die Verwendung der .NET-Clientbibliothek für C#, um ein Bild an die Vorhersage-API zu übermitteln. Weitere Informationen und Beispiele finden Sie in der Vorhersage-API-Referenz.

Einrichten

Veröffentlichen der trainierten Iteration

Wählen Sie auf der Custom Vision-Webseite Ihr Projekt und dann die Registerkarte Leistung aus.

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. Auf diese Weise wird Ihr Modell für die Vorhersage-API Ihrer Azure-Ressource von Custom Vision zugänglich.

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

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.

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

Abrufen der Vorhersage-URL und des Vorhersage-Schlüssels

Nachdem das Modell veröffentlicht wurde, können Sie die erforderlichen Informationen abrufen, indem Sie Vorhersage-URL auswählen. Dadurch wird ein Dialogfeld mit Informationen zur Verwendung der Vorhersage-API geöffnet, einschließlich Vorhersage-URL und Vorhersage-Schlüssel.

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.

Übermitteln von Daten an den Dienst

In diesem Leitfaden wird davon ausgegangen, dass Sie bereits ein CustomVisionPredictionClient -Objekt namens predictionClient mit Ihrem Custom Vision-Vorhersageschlüssel und einer Endpunkt-URL erstellt haben. Anweisungen zum Einrichten dieses Features finden Sie in einem der Schnellstarts.

In diesem Leitfaden verwenden Sie ein lokales Bild. Laden Sie daher ein Bild herunter, das Sie an Ihr trainiertes Modell übermitteln möchten. Der folgende Code fordert den Benutzer auf, einen lokalen Pfad anzugeben, und ruft den Bytestream der Datei unter diesem Pfad ab.

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

Nehmen Sie die folgenden Hilfsmethoden auf:

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);
}

Die Methode ClassifyImageAsync verwendet die Projekt-ID und das lokal gespeicherte Bild und bewertet das Bild anhand des angegebenen Modells.

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

Festlegen, wie die Daten verarbeitet werden sollen

Sie können optional konfigurieren, wie der Dienst den Bewertungsvorgang ausführt, indem Sie alternative Methoden auswählen. (Sehen Sie sich die Methoden der CustomVisionPredictionClient -Klasse an.)

Sie können der Einfachheit halber eine nicht asynchrone Version der oben genannten Methode verwenden. Dies kann jedoch dazu führen, dass das Programm für einen beträchtlichen Zeitraum gesperrt wird.

Bei den Methoden vom Typ -WithNoStore wird vorausgesetzt, dass der Dienst das Vorhersagebild nach Abschluss der Vorhersage nicht beibehält. Normalerweise behält der Dienst diese Bilder bei, sodass Sie sie als Trainingsdaten für zukünftige Iterationen Ihres Modells hinzufügen können.

Mit den Methoden vom Typ -WithHttpMessages wird die unformatierte HTTP-Antwort des API-Aufrufs zurückgegeben.

Abrufen von Ergebnissen aus dem Dienst

Der Dienst gibt Ergebnisse in Form eines ImagePrediction -Objekts zurück. Die Eigenschaft Predictions enthält eine Liste von PredictionModel -Objekten, die jeweils eine einzelne Objektvorhersage darstellen. Sie enthalten den Namen der Bezeichnung und die Koordinaten des Begrenzungsrahmens, an denen das Objekt im Bild erkannt wurde. Ihre App kann diese Daten dann analysieren, um beispielsweise das Bild mit beschrifteten Objektfeldern auf einem Bildschirm anzuzeigen.

Nächste Schritte

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. 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.