Поделиться через


Вызов API прогнозирования

После обучения модели его можно протестировать программным способом, отправив изображения в конечную точку API прогнозирования. В этом руководстве вы узнаете, как вызвать API прогнозирования для оценки изображения. Вы узнаете о различных способах настройки поведения этого API в соответствии с вашими потребностями.

Примечание.

В этом документе показано использование клиентской библиотеки.NET для C# в целях отправки изображения в API прогнозирования. Дополнительные сведения и примеры см. на странице справочника по API прогнозирования.

Настройка

Опубликуйте обученную итерацию

На веб-сайте Пользовательское визуальное распознавание выберите проект и перейдите на вкладку "Производительность".

Чтобы отправить изображения в API прогнозирования, сначала необходимо опубликовать итерацию для прогнозирования, что можно сделать, выбрав "Опубликовать " и указав имя опубликованной итерации. Это делает модель доступной для API прогнозирования Пользовательское визуальное распознавание ресурсе Azure.

Снимок экрана: вкладка производительности с красным прямоугольником, окружающим кнопку

После успешной публикации модели опубликованная метка появится рядом с итерацией на левой боковой панели, а ее имя отображается в описании итерации.

Снимок экрана: вкладка производительности с красным прямоугольником, окружающим опубликованную метку и имя опубликованной итерации.

Получение URL-адреса и ключа прогнозирования

После публикации модели можно получить необходимые сведения, выбрав URL-адрес прогнозирования. Откроется диалоговое окно с информацией об использовании API прогнозирования, включая URL-адрес прогнозирования и ключ прогнозирования.

Снимок экрана: вкладка производительности с красным прямоугольником, окружающим кнопку

Снимок экрана: вкладка производительности с красным прямоугольником, окружающим значение URL-адреса прогнозирования для использования файла изображения и значения

Отправка данных на устройство

В этом руководстве предполагается, что вы уже сконструировали объект CustomVisionPredictionClient с именем predictionClient и ключом прогнозирования пользовательского визуального распознавания и URL-адресом конечной точки. Инструкции по настройке этой функции приведены в одном из кратких руководств.

В этом руководстве используется локальный образ, поэтому скачайте образ, который вы хотите отправить в обученную модель. В следующем коде пользователю предлагается указать локальный путь и направить поток байтов файла по этому пути.

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

Включите следующий вспомогательный метод:

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);
}

Метод ClassifyImageAsync принимает идентификатор проекта и локально сохраненное изображение и оценивает изображение в соответствии с заданной моделью.

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

Определение способа обработки данных

При необходимости можно настроить, как служба выполняет операцию оценки, выбрав альтернативные методы. Дополнительные сведения см. в методе CustomVisionPredictionClient .

Для простоты можно использовать несинхронную версию предыдущего метода, но это может привести к блокировке программы в течение заметного периода времени.

Для -WithNoStore методов требуется, чтобы служба не сохраняла изображение прогнозирования после завершения прогнозирования. Как правило, служба сохраняет эти изображения, поэтому их можно добавлять в качестве данных обучения для будущих итераций модели.

Методы -WithHttpMessages возвращают необработанный HTTP-ответ вызова API.

Получение результатов из службы

Служба возвращает результаты в виде объекта ImagePrediction. Свойство Predictions содержит список объектов PredictionModel , каждый из которых представляет один прогноз объекта. В них входят имя метки и координаты ограничивающего прямоугольника, где объект был обнаружен на изображении. После этого приложение может проанализировать эти данные, например, отобразить изображение с помеченными полями объекта на экране.

Следующий шаг

В этом руководстве вы узнали, как отправлять изображения в классификатор или детектор пользовательского изображения, а также как получить ответ программным способом с помощью пакета SDK C#. Далее вы узнаете, как выполнять комплексные сценарии в C# или приступить к работе с пакетом SDK для другого языка.