Dela via


Anropa förutsägelse-API:et

När du har tränat din modell kan du testa den programmatiskt genom att skicka bilder till förutsägelse-API-slutpunkten. I den här guiden får du lära dig hur du anropar förutsägelse-API:et för att bedöma en bild. Du får lära dig de olika sätt som du kan konfigurera beteendet för det här API:et för att uppfylla dina behov.

Kommentar

Det här dokumentet visar hur .NET-klientbiblioteket för C# används för att skicka en bild till FÖRUTSÄGELSE-API:et. Mer information och exempel finns i referensen för FÖRUTSÄGELSE-API.

Ställ in

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.

Fliken Prestanda visas med en röd rektangel som omger 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.

Fliken Prestanda visas med en röd rektangel som omger etiketten Publicerad 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.

Fliken Prestanda visas med en röd rektangel som omger knappen Förutsägelse-URL.

Fliken Prestanda visas med en röd rektangel som omger värdet förutsägelse-URL för att använda en bildfil och värdet Prediction-Key.

Skicka data till tjänsten

Den här guiden förutsätter att du redan har skapat ett CustomVisionPredictionClient-objekt med namnet predictionClient, med din Custom Vision-förutsägelsenyckel och slutpunkts-URL. Anvisningar om hur du konfigurerar den här funktionen finns i någon av snabbstarterna.

I den här guiden använder du en lokal avbildning, så ladda ned en bild 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 bilden och poängsätter 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);

Fastställa hur data ska bearbetas

Du kan också konfigurera hur tjänsten utfö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 leda till att programmet låses under en märkbar tid.

Metoderna -WithNoStore kräver att tjänsten inte behåller förutsägelsebilden när förutsägelsen är klar. 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 enda objektförutsägelse. De innehåller namnet på etiketten och avgränsningsrutans koordinater där objektet identifierades i bilden. Appen kan sedan parsa dessa data till 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 bildklassificerare/detektor och får ett svar programmatiskt med C# SDK. Lär dig sedan att slutföra scenarier från slutpunkt till slutpunkt med C# eller komma igång med ett annat språk-SDK.