Anropa FÖRUTSÄGELSE-API:et
När du har tränat din modell kan du testa den programmatiskt genom att skicka bilder till slutpunkten förutsägelse-API. I den här guiden får du lära dig hur du anropar FÖRUTSÄGELSE-API:et för att poängsätta 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
Välj ditt projekt på custom vision-webbplatsen 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.
När modellen har publicerats visas etiketten Publicerad bredvid iterationen i det vänstra sidofältet och namnet visas i beskrivningen av 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. En dialogruta öppnas med information om hur du använder förutsägelse-API:et , inklusive förutsägelse-URL:en och förutsägelsenyckeln.
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. Mer information finns i metoden CustomVisionPredictionClient.
Du kan använda en nonasync-version av föregående metod för enkelhetens skull, men det kan leda till att programmet låser sig 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.
Gå vidare
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.