De voorspellings-API aanroepen

Nadat u uw model hebt getraind, kunt u afbeeldingen programmatisch testen door ze naar het voorspellings-API-eindpunt te verzenden. In deze handleiding leert u hoe u de voorspellings-API aanroept om een afbeelding te scoren. U leert de verschillende manieren waarop u het gedrag van deze API kunt configureren om aan uw behoeften te voldoen.

Notitie

In dit document wordt het gebruik van de .NET-clientbibliotheek voor C# gedemonstreerd om een afbeelding te verzenden naar de voorspellings-API. Zie de Prediction API-verwijzing voor meer informatie en voorbeelden.

Instellen

Uw getrainde iteratie publiceren

Op de Custom Vision-webpagina selecteert u uw project en vervolgens selecteert u het tabblad Prestaties.

Als u afbeeldingen wilt verzenden naar de voorspellings-API, moet u eerst uw iteratie voor voorspelling publiceren. Dit kan door Publiceren te selecteren en een naam op te geven voor de gepubliceerde iteratie. Hierdoor wordt uw model toegankelijk voor de voorspellings-API van uw Custom Vision Azure-resource.

Het tabblad Prestaties wordt weergegeven, met een rode rechthoek rond de knop Publiceren.

Zodra uw model is gepubliceerd, wordt het label Gepubliceerd weergegeven naast uw iteratie in de zijbalk aan de linkerkant. De naam wordt weergegeven in de beschrijving van de iteratie.

Het tabblad Prestaties wordt weergegeven, met een rode rechthoek rond het label Gepubliceerd en de naam van de gepubliceerde iteratie.

De URL en voorspellingssleutel ophalen

Zodra uw model is gepubliceerd, kunt u de vereiste gegevens ophalen door Voorspellings-URL te selecteren. Hiermee opent u een dialoogvenster met informatie over het gebruik van de voorspellings-API, met inbegrip van de voorspellings-URL en voorspellingssleutel.

Het tabblad Prestaties wordt weergegeven met een rode rechthoek rond de knop Voorspellings-URL.

Het tabblad Prestaties wordt weergegeven met een rode rechthoek rond de waarde van de voorspellings-URL voor het gebruik van een afbeeldingsbestand en Prediction-Key waarde.

Gegevens verzenden naar de service

In deze handleiding wordt ervan uitgenomen dat u al een CustomVisionPredictionClient-object met de naam hebt gemaakt met uw Custom Vision voorspellingssleutel en predictionClient eindpunt-URL. Volg een van de quickstartsvoor instructies over het instellen van deze functie.

In deze handleiding gebruikt u een lokale afbeelding, dus download een afbeelding die u wilt verzenden naar uw getrainde model. De volgende code vraagt de gebruiker om een lokaal pad op te geven en haalt de bytestream van het bestand op dat pad op.

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

Neem de volgende helpermethode op:

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

De classifyImageAsync-methode neemt de project-id en de lokaal opgeslagen afbeelding en scoort de afbeelding op het opgegeven model.

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

Bepalen hoe de gegevens moeten worden verwerkt

U kunt desgewenst configureren hoe de service de scoring-bewerking moet uitvoeren door alternatieve methoden te kiezen (zie de methoden van de klasse CustomVisionPredictionClient).

U kunt een niet-asynsyntatische versie van de bovenstaande methode gebruiken voor het gemak, maar dit kan ertoe leiden dat het programma voor een merkbare hoeveelheid tijd wordt vergrendeld.

De -WithNoStore-methoden vereisen dat de service de voorspellingsafbeelding niet behoudt nadat de voorspelling is voltooid. Normaal gesproken behoudt de service deze afbeeldingen, zodat u ze kunt toevoegen als trainingsgegevens voor toekomstige iteraties van uw model.

De methoden -WithHttpMessages retourneren het onbewerkte HTTP-antwoord van de API-aanroep.

Resultaten van de service krijgen

De service retourneert resultaten in de vorm van een ImagePrediction-object. De eigenschap Predictions bevat een lijst met PredictionModel-objecten, die elk één objectvoorspelling vertegenwoordigen. Ze bevatten de naam van het label en de coördinaten van het begrensingsvak waar het object in de afbeelding is gedetecteerd. Uw app kan deze gegevens vervolgens parseren om bijvoorbeeld de afbeelding met gelabelde objectvelden op een scherm weer te geven.

Volgende stappen

In deze handleiding hebt u geleerd hoe u afbeeldingen naar uw aangepaste afbeeldingsclassificeerder/detector kunt verzenden en een antwoord via een programma kunt ontvangen met de C# SDK. Hierna leert u hoe u end-to-end-scenario's met C# voltooit of aan de slag gaat met een andere taal-SDK.