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

Это важно

Корпорация Майкрософт объявляет о плановом выходе из службы Пользовательского визуального распознавания Azure. Корпорация Майкрософт предоставит полную поддержку всем существующим клиентам Пользовательского визуального распознавания Azure до 9.25.2028. В этом окне поддержки клиентам рекомендуется приступить к планированию и выполнению перехода на альтернативные решения. В зависимости от варианта использования рекомендуется использовать следующие пути для перехода:

  • Для создания пользовательских моделей для классификации изображений и обнаружения объектов Служба машинного обучения Azure обеспечивает возможность обучения обоих пользовательских типов моделей с помощью классических методов машинного обучения
  • Узнайте больше о AutoML машинного обучения Azure и узнайте, как она может предложить поддержку обучения пользовательских моделей.

Корпорация Майкрософт также инвестирует в решения на основе искусственного интеллекта, повышающие точность в пользовательских сценариях с помощью инженерии запросов и других методов.

  • Чтобы использовать генеративные модели, можно использовать одну из моделей, доступных в каталоге моделей Foundry, и создать собственное решение для кастомизированного восприятия.
  • Для управляемого генеративного решения для классификации изображений служба "Azure Content Understanding" в Foundry Tools (в настоящее время в общедоступной предварительной версии) предоставляет возможность создавать пользовательские рабочие процессы классификации. Она также поддерживает обработку неструктурированных данных любого типа (изображения, документов, аудио, видео) и извлечения структурированных аналитических сведений на основе предварительно определенных или пользовательских форматов.
  • Узнайте больше о моделях Microsoft Foundry и Azure Content Understanding (общедоступная предварительная версия) и узнайте, как они могут предлагать альтернативные пути для ваших пользовательских потребностей.

Дополнительные инструкции по миграции см. в руководстве по миграции пользовательского визуального распознавания Azure.

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

Примечание.

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

Настройка

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

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

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

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

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

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

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

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

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

Снимок экрана вкладки «Производительность», где красным прямоугольником выделены значение URL прогнозирования при использовании файла изображения и значение Prediction-Key.

Отправьте данные в сервис

В этом руководстве предполагается, что вы уже сконструировали объект 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 для другого языка.