Delen via


De voorspellings-API aanroepen

Nadat u uw model hebt getraind, kunt u het programmatisch testen door afbeeldingen in te dienen bij het eindpunt van de voorspellings-API. 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.

Instellingen

Uw getrainde iteratie publiceren

Selecteer uw project op de Custom Vision-website en selecteer vervolgens 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.

Schermopname van het tabblad Prestaties, met een rode rechthoek rond de knop Publiceren.

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

Schermopname van het tabblad Prestaties, met een rode rechthoek rond het gepubliceerde label en de naam van de gepubliceerde iteratie.

De URL en voorspellingssleutel ophalen

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

Schermopname van het tabblad Prestaties, met een rode rechthoek rond de knop Voorspellings-URL.

Schermopname van het tabblad Prestaties, met een rode rechthoek rond de voorspellings-URL-waarde voor het gebruik van een afbeeldingsbestand en de waarde voorspellingssleutel.

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 methode CustomVisionPredictionClient voor meer informatie.

U kunt een niet-gesynchroniseerde versie van de voorgaande methode gebruiken om het eenvoudig te maken, maar dit kan ertoe leiden dat het programma gedurende een merkbare hoeveelheid tijd wordt vergrendeld.

Voor de -WithNoStore methoden 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 -WithHttpMessages methoden 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 Predictions eigenschap 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 stap

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.