Volání rozhraní API pro predikce
Po vytrénování modelu můžete obrázky testovat programově jejich odesláním do koncového bodu rozhraní API pro predikce. V této příručce se dozvíte, jak volat rozhraní API pro predikce a skóre obrázku. Dozvíte se, jakými různými způsoby můžete nakonfigurovat chování tohoto rozhraní API tak, aby splňovalo vaše potřeby.
Poznámka
Tento dokument ukazuje použití klientské knihovny .NET pro C# k odeslání obrázku do rozhraní API pro predikce. Další informace a příklady najdete v referenčních informacích k rozhraní API pro predikce.
Nastavení
Publikování natrénované iterace
Na webové stránce služby Custom Vision vyberte svůj projekt a pak vyberte kartu Výkon.
Pokud chcete odeslat obrázky do rozhraní API pro predikce, musíte nejprve publikovat iteraci pro předpověď. To můžete udělat tak, že vyberete Publikovat a zadáte název publikované iterace. Díky tomu bude váš model přístupný pro rozhraní API pro predikce vašeho Custom Vision Azure.

Po úspěšném publikování modelu se vedle iterace na levém bočním panelu zobrazí popisek Published (Publikováno) a jeho název se zobrazí v popisu iterace.

Získání adresy URL a klíče předpovědi
Po publikování modelu můžete požadované informace načíst výběrem možnosti Prediction URL (Adresa URL předpovědi). Otevře se dialogové okno s informacemi o použití rozhraní API pro predikce, včetně adresy URL předpovědi a klíče predikce.


Odeslání dat do služby
V této příručce se předpokládá, že jste už sestavíte objekt CustomVisionPredictionClient s názvem , který Custom Vision klíčem predikce a adresou predictionClient URL koncového bodu. Pokyny k nastavení této funkce najdete v jednom z rychlých startů.
V této příručce použijete místní obrázek, takže si stáhněte obrázek, který chcete odeslat do vytrénovaný model. Následující kód vyzve uživatele k zadání místní cesty a získá v této cestě bytestream souboru.
Console.Write("Enter image file path: ");
string imageFilePath = Console.ReadLine();
byte[] byteData = GetImageAsByteArray(imageFilePath);
Zahrřte následující pomocná metoda:
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);
}
Metoda ClassifyImageAsync vezme ID projektu a místně uložený obrázek a vyčíslí obrázek proti danému modelu.
// Make a prediction against the new project
Console.WriteLine("Making a prediction:");
var result = predictionApi.ClassifyImageAsync(project.Id, publishedModelName, byteData);
Určení způsobu zpracování dat
Volitelně můžete výběrem alternativních metod nakonfigurovat, jak služba dělá operaci bodování (viz metody třídy CustomVisionPredictionClient).
Pro zjednodušení můžete použít neasynchronní verzi výše uvedené metody, ale může to způsobit, že se program na znatelné množství času uzamkne.
Metody -WithNoStore vyžadují, aby si služba po dokončení předpovědi nezachová obrázek predikce. Za normálních okolností služba tyto obrázky uchovává, takže máte možnost je přidat jako trénovací data pro budoucí iterace modelu.
Metody -WithHttpMessages vrátí nezpracovanou odpověď HTTP volání rozhraní API.
Získání výsledků ze služby
Služba vrací výsledky ve formě objektu ImagePrediction. Vlastnost Predictions obsahuje seznam objektů PredictionModel, z nichž každý představuje predikci jednoho objektu. Zahrnují název popisku a souřadnice ohraničovacího rámečku, kde byl objekt na obrázku zjištěn. Aplikace pak může tato data parsovat, například na zobrazení obrázku s poli objektů s popiskem na obrazovce.
Další kroky
V této příručce jste zjistili, jak odeslat obrázky do vlastního klasifikátoru nebo detektoru obrázků a získat odpověď prostřednictvím kódu programu pomocí sady C# SDK. Dále se naučíte, jak dokončit kompletní scénáře pomocí jazyka C#, nebo můžete začít používat jinou jazykovou sadu SDK.