Удаление фона в изображениях
Внимание
Эта функция теперь устарела. 31 марта 2025 г. API сегментов Azure AI Analysis 4.0 и служба удаления фона будет прекращена. Все запросы к этой службе завершаются ошибкой после этой даты.
Функция сегментации модели с открытым исходным кодом Флоренция 2 может соответствовать вашим потребностям. Она возвращает альфа-карту, которая помечает разницу между передним планом и фоном, но не изменяет исходное изображение, чтобы удалить фон. Установите модель Флоренции 2 и попробуйте использовать ее регион для функции сегментации.
Для полнофункциональное удаление фона рассмотрите стороннюю программу, например BiRefNet.
В этой статье показано, как вызвать API анализа изображений 4.0 для сегментирования изображения (отделяйте передний план от фона). В нем также показано, как проанализировать возвращаемые сведения.
Внимание
Фоновое удаление доступно только через прямые вызовы REST API. Он недоступен через пакеты SDK.
Внимание
Фоновое удаление доступно только в определенных регионах Azure. См. сведения о доступности регионов
Необходимые компоненты
В этом руководстве предполагается, что вы успешно выполнили действия, описанные на странице быстрого запуска . Это означает:
- Вы создали ресурс визуального зрения и получили URL-адрес ключа и конечной точки.
- Вы успешно вызвали
curl.exe
службу (или использовали альтернативное средство). Вызов изменитсяcurl.exe
на основе примеров.
В кратком руководстве показано, как извлечь визуальные функции из изображения. Однако основные понятия похожи на удаление фона. Поэтому вы можете воспользоваться преимуществами начала работы с кратким руководством и внесением изменений.
Проверка подлинности в службе
Чтобы выполнить проверку подлинности в службе анализа изображений, вам потребуется 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
- Код ошибки и сообщение в ответе 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
- Для URL-адреса изображения должен быть тип контента
-
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 могут возникнуть временные сбои, вызванные ограничениями скорости, применяемыми службой, или другими временными проблемами, такими как сбои сети. Для получения дополнительной информации об обработке этих типов сбоев ознакомьтесь со статьей Шаблон повторов в руководстве по конструктивным шаблонам облачных решений и соответствующим шаблоном автоматического выключения.