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


Удаление фона в изображениях

В этой статье показано, как вызвать API анализа изображений 4.0 для сегментирования изображения (отделяйте передний план от фона). В нем также показано, как проанализировать возвращаемые сведения.

Внимание

Фоновое удаление доступно только через прямые вызовы REST API. Он недоступен через пакеты SDK.

Необходимые компоненты

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

  • Вы создали ресурс визуального зрения и получили URL-адрес ключа и конечной точки.
  • Вы успешно вызвали curl.exe службу (или использовали альтернативное средство). Вызов изменится curl.exe на основе примеров.

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

Внимание

Фоновое удаление доступно только в определенных регионах Azure. См. сведения о доступности регионов

Проверка подлинности в службе

Для проверки подлинности в службе "Анализ изображений" требуется URL-адрес Компьютерное зрение ключа и конечной точки.

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье по безопасности служб ИИ Azure.

Проверка подлинности выполняется путем добавления заголовка HTTP-запроса Ocp-Apim-Subscription-Key и его настройки в ключ визуального распознавания. Вызов выполняется по URL-адресу, где <endpoint> находится уникальный URL-адрес <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-previewконечной точки Компьютерное зрение. См . раздел "Выбор режима " для другой строки запроса, добавляемой в этот URL-адрес.

Выбор изображения для анализа

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

При анализе удаленного изображения укажите в тексте запроса его URL-адрес в следующем формате: {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}. Тип контента должен бытьapplication/json.

Для анализа локального изображения поместите его двоичные данные в текст HTTP-запроса. Тип контента должен быть application/octet-stream или multipart/form-data.

Выбор режима

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

Параметр URL-адреса значение Описание
mode backgroundRemoval Выводит изображение обнаруженного объекта переднего плана с прозрачным фоном.
mode foregroundMatting Выводит изображение альфа-матового цвета серого масштаба, показывающее непрозрачность обнаруженного объекта переднего плана.

Заполненный URL-адрес для фоновогоremoval будет выглядеть следующим образом: <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval

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

В этом разделе показано, как вызвать API и проанализировать результаты.

Служба возвращает ответ HTTP при успешном 200 выполнении Content-Type: image/png, а текст содержит возвращенное изображение PNG в виде двоичного потока.

Например, предположим, что фоновое удаление выполняется на следующем изображении:

Фотография города рядом с водой.

При успешном вызове фонового удаления следующий образ PNG с четырьмя каналами является ответом backgroundRemoval на режим:

Фотография города рядом с водой; небо прозрачно.

Следующее одноканавное изображение PNG является ответом для foregroundMatting режима:

Альфа-матовый городской горизонт.

API возвращает изображение того же размера, что и исходный для foregroundMatting режима, но не более 16 мегапикселей (сохранение пропорций изображения) для backgroundRemoval режима.

Коды ошибок

При ошибке ответ службы анализа изображений содержит полезные данные JSON, содержащие код ошибки и сообщение об ошибке. Он также может содержать другие сведения в виде кода и сообщения внутренней ошибки. Например:

{
    "error":
    {
        "code": "InvalidRequest",
        "message": "Analyze query is invalid.",
        "innererror":
        {
            "code": "NotSupportedVisualFeature",
            "message": "Specified feature type is not valid"
        }
    }
}

Ниже приведен список распространенных ошибок и их причин. Элементы списка представлены в следующем формате:

  • Код ответа HTTP
    • Код ошибки и сообщение в ответе JSON
      • [Необязательно] Код внутренней ошибки и сообщение в ответе JSON

Список распространенных ошибок:

  • 400 Bad Request
    • InvalidRequest - Image URL is badly formatted or not accessible. Убедитесь, что URL-адрес изображения является допустимым и общедоступным.
    • InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes. Уменьшите размер изображения, сжимая его и /или изменяя размер, и повторно отправьте запрос.
    • InvalidRequest - The feature 'Caption' is not supported in this region. Эта функция поддерживается только в определенных регионах Azure. Дополнительные сведения о списке поддерживаемых регионов Azure см. в кратком руководстве.
    • InvalidRequest - The provided image content type ... is not supported. Тип контента заголовка HTTP в запросе не является допустимым типом:
      • Для URL-адреса изображения должен быть тип контентаapplication/json
      • Для данных двоичного изображения должен быть application/octet-stream или тип контентаmultipart/form-data
    • InvalidRequest - Either 'features' or 'model-name' needs to be specified in the query parameter.
    • InvalidRequest - Image format is not valid
      • InvalidImageFormat - Image format is not valid. См. раздел "Требования к изображениям " для поддерживаемых форматов изображений.
    • InvalidRequest - Analyze query is invalid
      • NotSupportedVisualFeature - Specified feature type is not valid. Убедитесь, что строка запроса функций имеет допустимое значение.
      • NotSupportedLanguage - The input language is not supported. Убедитесь, что строка запроса языка имеет допустимое значение для выбранной визуальной функции на основе следующей таблицы.
      • BadArgument - 'smartcrops-aspect-ratios' aspect ratio is not in allowed range [0.75 to 1.8]
  • 401 PermissionDenied
    • 401 - Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.
  • 404 Resource Not Found
    • 404 - Resource not found. Служба не могла найти пользовательскую модель на основе имени, предоставленного model-name строкой запроса.

Совет

При работе с Azure AI Vision могут возникнуть временные сбои, вызванные ограничениями скорости, применяемыми службой, или другими временными проблемами, такими как сбои сети. Для получения дополнительной информации об обработке этих типов сбоев ознакомьтесь со статьей Шаблон повторов в руководстве по конструктивным шаблонам облачных решений и соответствующим шаблоном автоматического выключения.

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

Основные понятия удаления фона