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.
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:
- Android - Código exemplo: guia
- Python: exemplo de código Guia
- Web - Código exemplo: guia
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:
|
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:
|
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 |