Anropa förutsägelse-API:et

När du har tränat din modell kan du testa bilder programmatiskt genom att skicka dem till slutpunkten för API:et för förutsägelse. I den här guiden lär du dig att anropa förutsägelse-API:et för att poängse en bild. Du lär dig olika sätt att konfigurera beteendet för det här API:et för att uppfylla dina behov.

Anteckning

Det här dokumentet visar hur du använder .NET-klientbiblioteket för C# för att skicka en bild till förutsägelse-API:et. Mer information och exempel finns i Förutsägelse-API-referensen.

Installation

Publicera din tränade iteration

Från Custom Vision-webbsidan, markera projektet och välj sedan fliken prestanda.

Om du vill skicka bilder till Förutsägelse-API:et måste du först publicera iterationen för förutsägelse, vilket kan göras genom att välja Publicera och ange ett namn för den publicerade iterationen. Detta gör din modell tillgänglig för FÖRUTSÄGELSE-API:et för din Custom Vision Azure-resurs.

Prestandafliken visas med en röd rektangel runt knappen Publicera.

När modellen har publicerats visas etiketten "Publicerad" bredvid iterationen i det vänstra sidofältet och dess namn visas i beskrivningen av iterationen.

Prestandafliken visas med en röd rektangel runt den publicerade etiketten och namnet på den publicerade iterationen.

Hämta URL och förutsägelsenyckel

När din modell har publicerats kan du hämta nödvändig information genom att välja Förutsägelse-URL. Då öppnas en dialogruta med information om hur du använder förutsägelse-API:et, inklusive förutsägelse-URL:en och förutsägelsenyckeln.

Prestandafliken visas med en röd rektangel runt knappen Förutsägelse-URL.

Prestandafliken visas med en röd rektangel runt värdet för förutsägelse-URL:en för att använda en bildfil och Prediction-Key värdet.

Skicka data till tjänsten

Den här guiden förutsätter att du redan har konstruerat ett CustomVisionPredictionClient-objekt med namnet , med Custom Vision predictionClient förutsägelsenyckel och slutpunkts-URL. Följ en av snabbstarternaför instruktioner om hur du ställer in den här funktionen.

I den här guiden använder du en lokal avbildning, så ladda ned en avbildning som du vill skicka till din tränade modell. Följande kod uppmanar användaren att ange en lokal sökväg och hämtar filens byteström på den sökvägen.

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

Inkludera följande hjälpmetod:

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

Metoden ClassifyImageAsync tar projekt-ID:t och den lokalt lagrade avbildningen och poänglägger bilden mot den angivna modellen.

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

Bestäm hur data ska bearbetas

Du kan också konfigurera hur tjänsten gör bedömningsåtgärden genom att välja alternativa metoder (se metoderna för klassen CustomVisionPredictionClient).

Du kan använda en icke-asynkron version av metoden ovan för enkelhetens skull, men det kan göra att programmet låser sig under en märkbar tidsperiod.

Metoderna -WithNoStore kräver att tjänsten inte behåller förutsägelsebilden när förutsägelsen har slutförts. Normalt behåller tjänsten dessa bilder så att du kan lägga till dem som träningsdata för framtida iterationer av din modell.

Metoderna -WithHttpMessages returnerar DET råa HTTP-svaret för API-anropet.

Hämta resultat från tjänsten

Tjänsten returnerar resultat i form av ett ImagePrediction-objekt. Egenskapen Predictions innehåller en lista över PredictionModel-objekt som var och en representerar en enskild objektförutsägelse. De innehåller namnet på etiketten och koordinaterna för markeringsrutan där objektet identifierades i bilden. Din app kan sedan parsa dessa data för att till exempel visa bilden med märkta objektfält på en skärm.

Nästa steg

I den här guiden har du lärt dig hur du skickar bilder till din anpassade bild klassificerare/detektor och får ett svar programmatiskt med C# SDK. Härnäst får du lära dig hur du slutför scenarier från början till slut med C# eller hur du kommer igång med ett annat språk-SDK.