Partilhar via


Remover o fundo das imagens

Importante

Este recurso foi preterido. Em 10 de janeiro de 2025, a API de Segmento do Azure AI Image Analysis 4.0 e o serviço de remoção em segundo plano serão desativados. Todos os pedidos a este serviço falharão após esta data.

Para manter um bom funcionamento de seus modelos, instale o modelo de código aberto Florence 2 e use seu recurso de segmentação de região, que permite uma operação de remoção de plano de fundo semelhante.

Este artigo demonstra como chamar a API de análise de imagem 4.0 para segmentar uma imagem (separar o primeiro plano do plano de fundo). Ele também mostra como analisar as informações retornadas.

Importante

A remoção em segundo plano só está disponível por meio de chamadas diretas à API REST. Ele não está disponível através dos SDKs.

Pré-requisitos

Este guia pressupõe que você seguiu com êxito as etapas mencionadas na página de início rápido. Isto significa:

  • Você criou um recurso Visão e obteve uma chave e uma URL de ponto final.
  • Você fez uma curl.exe chamada para o serviço com sucesso (ou usou uma ferramenta alternativa). Você modifica a curl.exe chamada com base nos exemplos aqui.

O guia de início rápido mostra como extrair recursos visuais de uma imagem. No entanto, os conceitos são semelhantes à remoção de fundo. Portanto, você se beneficia de começar com o início rápido e fazer modificações.

Importante

A remoção em segundo plano só está disponível em determinadas regiões do Azure. Ver disponibilidade da região

Autenticar no serviço

Para autenticar no serviço de Análise de Imagem, você precisa de uma chave de Visão Computacional e URL de ponto de extremidade.

Gorjeta

Não inclua a chave diretamente no seu código e nunca a publique publicamente. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais opções de autenticação, como o Azure Key Vault.

A autenticação é feita adicionando o cabeçalho de solicitação HTTP Ocp-Apim-Subscription-Key e definindo-o para sua chave de visão. A chamada é feita para o URL <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview, onde <endpoint> é o URL exclusivo do ponto de extremidade Computer Vision. Consulte a seção Selecionar um modo para outra cadeia de caracteres de consulta adicionada a essa URL.

Selecione a imagem a analisar

O código neste guia usa imagens remotas referenciadas por URL. Você pode querer experimentar imagens diferentes por conta própria para ver a capacidade completa dos recursos de Análise de Imagem.

Ao analisar uma imagem remota, especifique o URL da imagem formatando o corpo da solicitação da seguinte forma: {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}. O Content-Type deve ser application/json.

Para analisar uma imagem local, você colocaria os dados da imagem binária no corpo da solicitação HTTP. O Content-Type deve ser application/octet-stream ou multipart/form-data.

Selecione um modo

Defina o modo de cadeia de caracteres de consulta para um desses dois valores. Essa cadeia de caracteres de consulta é obrigatória se você quiser fazer segmentação de imagem.

Parâmetro de URL valor Description
mode backgroundRemoval Gera uma imagem do objeto de primeiro plano detetado com um plano de fundo transparente.
mode foregroundMatting Produz uma imagem alfa fosca em escala de cinza mostrando a opacidade do objeto de primeiro plano detetado.

Um URL preenchido para backgroundRemoval teria esta aparência: <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval

Obter resultados do serviço

Esta seção mostra como fazer a chamada de API e analisar os resultados.

O serviço retorna uma 200 resposta HTTP no sucesso com Content-Type: image/png, e o corpo contém a imagem PNG retornada na forma de um fluxo binário.

Como exemplo, suponha que a remoção do plano de fundo seja executada na seguinte imagem:

Foto de uma cidade perto da água.

Em uma chamada de remoção em segundo plano bem-sucedida, a seguinte imagem PNG de quatro canais é a resposta para o backgroundRemoval modo:

Foto de uma cidade perto da água; O céu é transparente.

A seguinte imagem PNG de um canal é a resposta para o foregroundMatting modo:

Alfa fosco de um horizonte da cidade.

A API retorna uma imagem do mesmo tamanho da original para o foregroundMatting modo, mas no máximo 16 megapixels (preservando a proporção da imagem) para o backgroundRemoval modo.

Códigos de erro

Em caso de erro, a resposta do serviço Análise de Imagem contém uma carga JSON que inclui um código de erro e uma mensagem de erro. Também pode incluir outros detalhes na forma de código de erro interno e mensagem. Por exemplo:

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

A seguir está uma lista de erros comuns e suas causas. Os itens da lista são apresentados no seguinte formato:

  • Código de resposta HTTP
    • Código de erro e mensagem na resposta JSON
      • [Opcional] Código de erro interno e mensagem na resposta JSON

Lista de erros comuns:

  • 400 Bad Request
    • InvalidRequest - Image URL is badly formatted or not accessible. Certifique-se de que o URL da imagem é válido e acessível publicamente.
    • InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes. Reduza o tamanho da imagem comprimindo-a e/ou redimensionando-a e reenvie sua solicitação.
    • InvalidRequest - The feature 'Caption' is not supported in this region. O recurso só é suportado em regiões específicas do Azure. Consulte Pré-requisitos de início rápido para obter a lista de regiões do Azure com suporte.
    • InvalidRequest - The provided image content type ... is not supported. O cabeçalho HTTP Content-Type na solicitação não é um tipo permitido:
      • Para um URL de imagem, Content-Type deve ser application/json
      • Para dados de imagem binária, Content-Type deve ser application/octet-stream ou 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. Consulte a seção Requisitos de imagem para obter os formatos de imagem suportados.
    • InvalidRequest - Analyze query is invalid
      • NotSupportedVisualFeature - Specified feature type is not valid. Verifique se a cadeia de caracteres de consulta de recursos tem um valor válido.
      • NotSupportedLanguage - The input language is not supported. Verifique se a cadeia de caracteres de consulta de idioma tem um valor válido para o recurso visual selecionado, com base na tabela a seguir.
      • 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. O serviço não conseguiu encontrar o modelo personalizado com base no nome fornecido pela cadeia de caracteres de model-name consulta.

Gorjeta

Ao trabalhar com o Azure AI Vision, você pode encontrar falhas transitórias causadas por limites de taxa impostos pelo serviço ou outros problemas transitórios, como interrupções de rede. Para obter informações sobre como lidar com esses tipos de falhas, consulte Repetir padrão no guia Padrões de design de nuvem e o padrão de disjuntor relacionado.

Próximos passos

Conceitos de remoção de plano de fundo