A tarefa MediaPipe Interactive Image Segmenter permite dividir uma imagem em duas regiões: um objeto selecionado e todas as demais. A tarefa usa um local em uma imagem, estima os limites de um objeto nesse local e retorna dados da 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 a ela, como sobreposições de cor que destacam o objeto ou desfocando o plano de fundo. Essa tarefa opera em dados de imagem com um modelo de machine learning (ML), e é possível usá-lo em imagens únicas, arquivos de vídeo ou um stream de vídeo contínuo.
Comece já
Comece a usar essa tarefa seguindo um destes guias de implementação para sua plataforma de destino. Estes guias específicos da plataforma orientam você em uma implementação básica dessa tarefa, incluindo um modelo recomendado e um exemplo de código com as opções de configuração recomendadas:
- Android: exemplo de código - Guia
- Python: exemplo de código - Guia
- Web: exemplo de código - Guia
Detalhes da tarefa
Nesta seção, descrevemos os recursos, as entradas, as saídas e as opções de configuração desta tarefa.
Recursos
- Processamento de imagem de entrada: o processamento inclui rotação, redimensionamento, normalização e conversão do espaço de cor de imagens.
Entradas de tarefas | Saídas de tarefas |
---|---|
|
O Segmentador de imagens interativo gera dados de imagem segmentados, que podem incluir um dos itens a seguir ou ambos, dependendo das opções de configuração que você definir:
|
Opções de configuração
Essa 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 incluirá 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 incluirá 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 ser usado para nomes de exibição fornecidos nos
metadados do modelo da tarefa, se disponível. O padrão é en para
inglês. É possível adicionar rótulos localizados aos metadados de um modelo personalizado
usando a API TensorFlow Lite Metadata Writer
| Código da localidade | en |
Modelos
O Segmenter de imagem interativo pode ser usado com mais de um modelo de ML. Comece com o modelo padrão recomendado para a plataforma de destino ao começar a desenvolver com essa tarefa. Os outros modelos disponíveis normalmente compensam os requisitos de desempenho, precisão, resolução e recursos e, em alguns casos, incluem outros recursos.
Modelo MagicTouch (recomendado)
Esse modelo identifica segmentos com base nas coordenadas da imagem para uma área de interesse. O modelo usa uma rede neural convolucional, semelhante a uma arquitetura MobileNetV3 (link em inglês), com um decodificador personalizado.
Nome do modelo | Forma de entrada | Tipo de quantização | Card de modelo | Versions |
---|---|---|---|---|
MagicTouch | 512 x 512 x 4 | Nenhum (float32) | informações | Mais recente |
Comparativos de mercado de tarefas
Aqui estão os comparativos de mercado de tarefas 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,25ms |