Volání rozhraní API pro predikce

Po natrénování modelu ho můžete programově otestovat odesláním obrázků do koncového bodu rozhraní API pro predikce. V této příručce se dozvíte, jak volat rozhraní API pro predikce k určení skóre obrázku. Dozvíte se různé způsoby, jak můžete nakonfigurovat chování tohoto rozhraní API tak, aby vyhovovalo vašim potřebám.

Poznámka:

Tento dokument ukazuje použití klientské knihovny .NET pro jazyk 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í vytré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 predikci, kterou můžete provést výběrem možnosti Publikovat a zadáním názvu publikované iterace. Díky tomu bude váš model přístupný pro rozhraní API pro predikce vašeho prostředku Azure Custom Vision.

The performance tab is shown, with a red rectangle surrounding the Publish button.

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

The performance tab is shown, with a red rectangle surrounding the Published label and the name of the published iteration.

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 adresy URL předpovědi. Otevře se dialogové okno s informacemi pro použití rozhraní API pro predikce, včetně adresy URL predikce a prediktivního klíče.

The performance tab is shown with a red rectangle surrounding the Prediction URL button.

The performance tab is shown with a red rectangle surrounding the Prediction URL value for using an image file and the Prediction-Key value.

Odeslání dat do služby

V této příručce se předpokládá, že jste už vytvořili objekt CustomVisionPredictionClient s názvem predictionClient, s klíčem pro predikci služby Custom Vision a adresou 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í image, takže si stáhněte obrázek, který chcete odeslat do vytrénovaného modelu. Následující kód vyzve uživatele k zadání místní cesty a získá bajtstream souboru v této cestě.

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

Zahrňte následující pomocnou metodu:

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 přebírá ID projektu a místně uloženou image a vyhodnotí obrázek podle daného 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 nakonfigurovat, jak služba provede operaci bodování výběrem alternativních metod (viz metody CustomVisionPredictionClient třídy).

Pro zjednodušení můžete použít nesynchronní verzi výše uvedené metody, ale může způsobit, že se program uzamkne po znatelnou dobu.

Metody -WithNoStore vyžadují, aby služba po dokončení předpovědi nezachovává obrázek předpovědi. Za normálních okolností si služba tyto image uchovává, takže máte možnost je přidat jako trénovací data pro budoucí iterace modelu.

Metody -WithHttpMessages vrací nezpracovanou odpověď HTTP volání rozhraní API.

Získání výsledků ze služby

Služba vrátí výsledky ve formě ImagePrediction objektu. Predictions vlastnost obsahuje seznam PredictionModel objekty, které každý představuje jednu predikci objektu. Zahrnují název popisku a souřadnice ohraničujícího rámečku, kde byl objekt zjištěn na obrázku. Vaše aplikace pak může tato data analyzovat, například zobrazit obrázek s poli označenými objekty 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 dozvíte, jak dokončit kompletní scénáře pomocí jazyka C# nebo začít používat jinou jazykovou sadu SDK.