Udostępnij za pośrednictwem


Wywoływanie interfejsu API przewidywania

Po wytrenowania modelu można go przetestować programowo, przesyłając obrazy do punktu końcowego interfejsu API przewidywania. W tym przewodniku dowiesz się, jak wywołać interfejs API przewidywania, aby ocenić obraz. Poznasz różne sposoby konfigurowania zachowania tego interfejsu API w celu spełnienia Twoich potrzeb.

Uwaga

W tym dokumencie przedstawiono użycie biblioteki klienta platformy .NET dla języka C# do przesyłania obrazu do interfejsu API przewidywania. Aby uzyskać więcej informacji i przykładów, zobacz dokumentację interfejsu API przewidywania.

Ustawienia

Publikowanie wytrenowanego iteracji

W witrynie internetowej usługi Custom Vision wybierz projekt, a następnie wybierz kartę Wydajność .

Aby przesłać obrazy do interfejsu API przewidywania, należy najpierw opublikować iterację na potrzeby przewidywania, co można zrobić, wybierając pozycję Publikuj i określając nazwę opublikowanej iteracji. Dzięki temu model jest dostępny dla interfejsu API przewidywania zasobu usługi Custom Vision platformy Azure.

Zrzut ekranu przedstawiający kartę wydajności z czerwonym prostokątem otaczającym przycisk Publikuj.

Po pomyślnym opublikowaniu modelu etykieta Opublikowana pojawi się obok iteracji na pasku bocznym po lewej stronie, a jego nazwa zostanie wyświetlona w opisie iteracji.

Zrzut ekranu przedstawiający kartę wydajności z czerwonym prostokątem otaczającym etykietę Opublikowano i nazwą opublikowanej iteracji.

Pobieranie adresu URL i klucza predykcyjnego

Po opublikowaniu modelu możesz pobrać wymagane informacje, wybierając pozycję Adres URL przewidywania. Zostanie otwarte okno dialogowe z informacjami dotyczącymi korzystania z interfejsu API przewidywania, w tym adresu URL przewidywania i klucza przewidywania.

Zrzut ekranu przedstawiający kartę wydajności z czerwonym prostokątem otaczającym przycisk Adres URL przewidywania.

Zrzut ekranu przedstawiający kartę wydajności z czerwonym prostokątem otaczającym wartość adresu URL przewidywania dla używania pliku obrazu i wartości Prediction-Key.

Przesyłanie danych do usługi

W tym przewodniku założono, że utworzono już obiekt CustomVisionPredictionClient o nazwie predictionClient, z kluczem przewidywania usługi Custom Vision i adresem URL punktu końcowego. Aby uzyskać instrukcje dotyczące konfigurowania tej funkcji, postępuj zgodnie z jednym z przewodników Szybki start.

W tym przewodniku użyjesz obrazu lokalnego, więc pobierz obraz, który chcesz przesłać do wytrenowanego modelu. Poniższy kod monituje użytkownika o określenie ścieżki lokalnej i pobranie strumienia bajtowego pliku w tej ścieżce.

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

Uwzględnij następującą metodę pomocnika:

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 przyjmuje identyfikator projektu i lokalnie przechowywany obraz oraz ocenia obraz względem danego modelu.

// Make a prediction against the new project
Console.WriteLine("Making a prediction:");
var result = predictionApi.ClassifyImageAsync(project.Id, publishedModelName, byteData);

Określanie sposobu przetwarzania danych

Opcjonalnie możesz skonfigurować sposób wykonywania operacji oceniania przez wybranie alternatywnych metod. Aby uzyskać szczegółowe informacje, zobacz metodę CustomVisionPredictionClient .

Dla uproszczenia można użyć innej niż asynchronicznej wersji poprzedniej metody, ale może to spowodować zablokowanie programu przez zauważalny czas.

-WithNoStore Metody wymagają, aby usługa nie zachowywała obrazu przewidywania po zakończeniu przewidywania. Zwykle usługa zachowuje te obrazy, dzięki czemu można dodawać je jako dane szkoleniowe dla przyszłych iteracji modelu.

Metody -WithHttpMessages zwracają nieprzetworzone odpowiedzi HTTP wywołania interfejsu API.

Pobieranie wyników z usługi

Usługa zwraca wyniki w postaci obiektu ImagePrediction. Właściwość Predictions zawiera listę obiektów PredictionModel , z których każda reprezentuje jedno przewidywanie obiektu. Zawierają one nazwę etykiety i współrzędnych pola ograniczenia, w których obiekt został wykryty na obrazie. Aplikacja może następnie przeanalizować te dane, aby na przykład wyświetlić obraz z polami obiektów oznaczonymi etykietami na ekranie.

Następny krok

W tym przewodniku przedstawiono sposób przesyłania obrazów do niestandardowego klasyfikatora/narzędzia do wykrywania obrazów i programowego odbierania odpowiedzi przy użyciu zestawu SDK języka C#. Następnie dowiesz się, jak ukończyć kompleksowe scenariusze w języku C#, lub rozpocząć korzystanie z innego zestawu SDK języka.