De voorspellings-API aanroepen

Nadat u uw model hebt getraind, kunt u het programmatisch testen door afbeeldingen in te dienen bij het voorspellings-API-eindpunt. 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# gedemonstreert om een afbeelding naar de voorspellings-API te verzenden. Zie de naslaginformatie over de voorspellings-API voor meer informatie en voorbeelden.

Instelling

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 publiceren voor voorspelling. Dit kan worden gedaan door Publiceren te selecteren en een naam op te geven voor de gepubliceerde iteratie. Hierdoor is uw model toegankelijk voor de voorspellings-API van uw Custom Vision Azure-resource.

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

Zodra uw model is gepubliceerd, ziet u dat er naast de iteratie in de zijbalk aan de linkerkant een gepubliceerd label wordt weergegeven. De naam wordt weergegeven in de beschrijving van de iteratie.

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

De URL en voorspellingssleutel ophalen

Zodra uw model is gepubliceerd, kunt u de vereiste gegevens ophalen door de 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 de voorspellingssleutel.

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.

Gegevens verzenden naar de service

In deze handleiding wordt ervan uitgegaan dat u al een CustomVisionPredictionClient-object met de naam predictionClienthebt gemaakt met uw Custom Vision-voorspellingssleutel en eindpunt-URL. Volg een van de quickstarts voor instructies over het instellen van deze functie.

In deze handleiding gebruikt u een lokale installatiekopieën, dus download een afbeelding die u wilt verzenden naar uw getrainde model. Met de volgende code wordt de gebruiker gevraagd een lokaal pad op te geven en de bytestream van het bestand op dat pad op te vragen.

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 methode ClassifyImageAsync neemt de project-id en de lokaal opgeslagen installatiekopie en beoordeelt de afbeelding op basis van 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 eventueel configureren hoe de service de scorebewerking doet door alternatieve methoden te kiezen (zie de methoden van de klasse CustomVisionPredictionClient).

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

Voor de methoden -WithNoStore is vereist 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 ophalen van de service

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

Volgende stappen

In deze handleiding hebt u geleerd hoe u afbeeldingen verzendt naar uw aangepaste afbeeldingsclassificatie/detector en programmatisch een antwoord ontvangt met de C#-SDK. Leer vervolgens hoe u end-to-end-scenario's met C# voltooit of aan de slag gaat met een andere taal-SDK.