Guia de segmentação de imagens

A tarefa "Segmento de imagem do MediaPipe" permite dividir imagens em regiões com base em categorias. Use essa funcionalidade para identificar objetos ou texturas e depois aplicar efeitos visuais como o desfoque do plano de fundo. Esta tarefa inclui vários modelos treinados especificamente para a segmentação de pessoas e seus recursos em dados de imagem, incluindo:

  • Pessoa e histórico
  • Somente cabelo de uma pessoa
  • Cabelo, rosto, pele, roupas e acessórios de uma pessoa

Essa tarefa opera em dados de imagem com um modelo de machine learning (ML) imagens ou um stream de vídeo contínuo. Ele gera uma lista de regiões segmentadas, que representam objetos ou áreas em uma imagem, dependendo do modelo que você que você escolher.

Faça um teste!

Começar

Comece a usar esta tarefa seguindo um destes guias de implementação para sua plataforma de destino. Estes guias específicos da plataforma orientam você em um processo implementação desta tarefa, incluindo um modelo recomendado e um exemplo de código com as opções de configuração recomendadas:

Detalhes da tarefa

Esta seção descreve as capacidades, entradas, saídas e configurações dessa tarefa.

Recursos

  • Processamento de imagens de entrada: o processamento inclui rotação, redimensionamento, normalização e conversão de espaço de cores.
Entradas de tarefas Saídas de tarefas
A entrada pode ser um dos seguintes tipos de dados:
  • Imagens estáticas
  • Frames de vídeo decodificados
  • Feed de vídeo ao vivo
O segmentador de imagem gera dados de imagem segmentados, que podem incluir um ou ambos os itens a seguir, dependendo das opções de configuração definidas:
  • CATEGORY_MASK: uma lista que contém uma máscara segmentada como uma imagem no formato uint8. Cada valor de pixel indica se faz parte de uma categoria de segmento específica aceita pelo modelo.
  • CONFIDENCE_MASK: uma lista de canais que contêm um 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 de uma categoria específica. com suporte do modelo.

Opções de configurações

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

Nome da opção Descrição Intervalo de valor Valor padrão
running_mode Define o modo de execução da tarefa. Existem três modos:

IMAGEM: o modo para entradas de imagem única.

VÍDEO: o modo para frames decodificados de um vídeo.

LIVE_STREAM: o modo de transmissão ao vivo da entrada dados de uma câmera, por exemplo. Neste modo, resultListener deve ser chamado para configurar um listener e receber resultados de forma assíncrona.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
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 a categoria vencedora . {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 mapa de pontuação da categoria. {True, False} True
display_names_locale Define o idioma dos rótulos a serem usados para nomes de exibição fornecidos no metadados do modelo da tarefa, se disponíveis. O padrão é en para inglês. É possível adicionar rótulos localizados aos metadados de um modelo personalizado usando a API Metadata Writer do TensorFlow Lite; Código da localidade en
result_callback Define o listener de resultados para receber os resultados da segmentação. de forma assíncrona quando o segmentador de imagens está no modo LIVE_STREAM. Só pode ser usado quando o modo de corrida está definido como LIVE_STREAM N/A N/A

Modelos

O segmentador de imagens pode ser usado com mais de um modelo de ML. A maioria dos itens a seguir modelos de segmentação são criados e treinados para realizar segmentação com imagens de as pessoas. No entanto, o modelo DeepLab-v3 é criado como um para fins de segmentação de imagens. Selecione o modelo mais adequado para seu aplicativo.

Modelo de segmentação de selfie

Este modelo pode segmentar o retrato de uma pessoa e pode ser usado para substituir ou modificando o plano de fundo de uma imagem. O modelo gera duas categorias, antecedentes no índice 0 e pessoa no índice 1. Este modelo tem versões com diferentes formas de entrada, incluindo uma versão quadrada e uma em paisagem que pode ser mais eficiente para aplicativos em que a entrada é sempre essa forma, como videochamadas.

Nome do modelo Inserir formato Tipo de quantização Card de modelo Versões
SelfieSegmentr (quadrado) 256 x 256 ponto flutuante 16 informações Mais recente
SelfieSegmentr (paisagem) 144 x 256 ponto flutuante 16 informações Mais recente

Modelo de segmentação de cabelos

Esse modelo pega uma imagem de uma pessoa, localiza um cabelo na cabeça e gera um mapa de segmentação de imagens para os cabelos deles. É possível usar esse modelo para recolorir ou aplicar outros efeitos de cabelo. O modelo gera o seguinte categorias de segmentação:

0 - background
1 - hair
Nome do modelo Inserir formato Tipo de quantização Card de modelo Versões
HairSegmenter 512 x 512 Nenhum (float32) informações Mais recente

Modelo multiclasse de segmentação de selfie

Este modelo tira a imagem de uma pessoa e localiza áreas para diferentes áreas, cabelo, pele e roupas, e gera um mapa de segmentação de imagens para esses itens. Você pode usar esse modelo para aplicar vários efeitos a pessoas em imagens ou vídeo. O modelo gera as seguintes categorias de segmentação:

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Nome do modelo Inserir formato Tipo de quantização Card de modelo Versões
SelfieMulticlass (256 x 256) 256 x 256 Nenhum (float32) informações Mais recente

Modelo DeepLab-v3

Esse modelo identifica segmentos para uma série de categorias, incluindo plano de fundo, pessoa, gato, cachorro e vaso de planta. O modelo usa a pirâmide espacial atrosa um pooling para capturar informações de intervalos maiores. Para mais informações, consulte DeepLab-v3 (link em inglês).

Nome do modelo Inserir formato Tipo de quantização Versões
DeepLab-V3 (link em inglês) 257 x 257 Nenhum (float32) Mais recente

Comparativos de mercado de tarefas

Aqui estão os comparativos de mercado das tarefas para todo o pipeline com base nas informações pré-treinadas acima de modelos de machine learning. 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
Segmentação por selfie (quadrado) 33,46 ms 35,15ms
Segmentação por selfie (paisagem) 34,19 ms 33,55 ms
HairSegmenter 57,90ms 52,14 ms
SelfieMulticlass (256 x 256) 217,76 ms 71,24 ms
DeepLab-V3 123,93 ms 103,30 ms