Guia interativo de tarefas de segmentação de imagens

Imagens lado a lado que mostram uma foto de uma cadeira em uma imagem e, em seguida, a mesma imagem com a cadeira destacada para indicar que o modelo detectou a cadeira

A tarefa do segmentador de imagem interativa do MediaPipe permite dividir uma imagem em duas regiões: um objeto selecionado e tudo o mais. A tarefa pega um local em uma imagem, estima os limites de um objeto nesse local e retorna dados de imagem que definem a área do objeto. Você pode usar essa tarefa para selecionar interativamente um objeto em uma imagem e usar a saída para aplicar efeitos à imagem, como sobreposições de cores que destacam o objeto ou desfocam o plano de fundo ao redor dele. Essa tarefa opera em dados de imagem com um modelo de aprendizado de máquina (ML) e pode ser usada em imagens únicas, arquivos de vídeo ou uma transmissão de vídeo contínua.

Teste!

Começar

Para começar a usar essa tarefa, siga um destes guias de implementação para sua plataforma de destino. Estes guias específicos para plataformas orientam você em uma implementação básica desta tarefa, incluindo um modelo recomendado e um exemplo de código com opções de configuração recomendadas:

Detalhes da tarefa

Esta seção descreve os recursos, entradas, saídas e opções de configuração desta tarefa.

Recursos

  • Processamento de imagem de entrada: o processamento inclui rotação, redimensionamento, normalização e conversão de espaço de cores.
Entradas da tarefa Saídas de tarefas
  • Coordenadas do ponto de interesse de um objeto em uma imagem
  • Arquivo de imagem a ser processado
O segmentador de imagem interativo gera dados de imagem segmentados, que podem incluir um ou ambos dos seguintes, dependendo das opções de configuração definidas:
  • CATEGORY_MASK: uma lista que contém uma máscara segmentada como uma imagem de formato uint8. Cada valor de pixel indica se ele faz parte do objeto localizado na área de interesse.
  • CONFIDENCE_MASK: uma lista de canais que contém uma máscara segmentada com valores de pixel no formato float32. Cada valor de pixel indica o nível de confiança de que ele faz parte do objeto localizado na área de interesse.

Opções de configuração

Esta tarefa tem as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor Valor padrão
output_category_mask Se definido como True, a saída inclui uma máscara de segmentação como uma imagem uint8, em que cada valor de pixel indica se o pixel faz parte do objeto localizado na área de interesse. {True, False} False
output_confidence_masks Se definido como True, a saída inclui uma máscara de segmentação como uma imagem de valor flutuante, em que cada valor flutuante representa a confiança de que o pixel faz parte do objeto localizado na área de interesse. {True, False} True
display_names_locale Define o idioma dos rótulos a serem usados para os nomes de exibição fornecidos nos metadados do modelo da tarefa, se disponível. O padrão é en para o inglês. É possível adicionar rótulos localizados aos metadados de um modelo personalizado usando a API Writer de metadados do TensorFlow Lite. Código de localidade en

Modelos

O segmentador de imagem interativo pode ser usado com mais de um modelo de ML. Comece com o modelo padrão recomendado para sua plataforma de destino ao começar a desenvolver com essa tarefa. Os outros modelos disponíveis geralmente fazem trocas entre desempenho, precisão, resolução e requisitos de recursos e, em alguns casos, incluem recursos adicionais.

Esse modelo identifica segmentos de coordenadas de imagem para uma área de interesse. O modelo usa uma rede neural convolucional, semelhante a uma arquitetura MobileNetV3 com um decodificador personalizado.

Nome do modelo Forma de entrada Tipo de quantização Card de modelo Versões
MagicTouch 512 x 512 x 4 Nenhum (float32) Informações Mais recente

Comparações de mercado de tarefas

Confira os comparativos de mercado da tarefa para todo o pipeline com base nos modelos pré-treinados acima. O resultado da latência é a latência média no Pixel 6 usando CPU / GPU.

Nome do modelo Latência da CPU Latência da GPU
MagicTouch 130,11 ms 67,25 ms