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.

Zobrazí se karta Výkon s červeným obdélníkem kolem tlačítka Publikovat.

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.

Zobrazí se karta výkonu s červeným obdélníkem kolem popisku Published (Publikováno) a názvem publikované 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.

Karta výkon se zobrazí s červeným obdélníkem kolem tlačítka Prediction URL (Adresa URL předpovědi).

Karta výkon se zobrazí s červeným obdélníkem kolem hodnoty Prediction URL (Adresa URL předpovědi) pro použití souboru obrázku a hodnoty Prediction-Key hodnoty.

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.