A tarefa do segmentador de imagens do MediaPipe permite dividir imagens em regiões com base em categorias predefinidas. Você pode usar essa funcionalidade para identificar objetos ou texturas específicos e aplicar efeitos visuais, como desfoque de plano de fundo. Essa tarefa inclui vários modelos treinados especificamente para segmentar pessoas e os recursos delas nos dados de imagem, incluindo:
- Pessoa e plano de fundo
- Apenas o cabelo da pessoa
- Cabelo, rosto, pele, roupas e acessórios da pessoa
Essa tarefa opera em dados de imagem com um modelo de machine learning (ML) com imagens únicas ou um fluxo de vídeo contínuo. Ele gera uma lista de regiões segmentadas, representando objetos ou áreas em uma imagem, dependendo do modelo escolhido.
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:
- Android: exemplo de código - guia
- Python: exemplo de código Guia
- Web: exemplo de código: guia
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 |
---|---|
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 dos seguintes, dependendo das opções de configuração definidas:
|
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 |
---|---|---|---|
running_mode |
Define o modo de execução da tarefa. Há três
modos: IMAGE: o modo para entradas de imagem única. VÍDEO: o modo para quadros decodificados de um vídeo. LIVE_STREAM: o modo de uma transmissão ao vivo de dados de entrada, como de uma câmera. Nesse modo, o resultListener precisa ser chamado para configurar um listener para receber resultados de forma assíncrona. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
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 o valor da categoria
vencedora. |
{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 o mapa de pontuação de confiança da categoria. |
{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 |
result_callback |
Define o listener de resultado 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 execução 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 modelos de segmentação a seguir é criada e treinada para realizar a segmentação com imagens de pessoas. No entanto, o modelo DeepLab-v3 foi criado como um segmentador de imagens de uso geral. Selecione o modelo mais adequado para seu aplicativo.
Modelo de segmentação de selfie
Esse modelo pode segmentar o retrato de uma pessoa e pode ser usado para substituir ou modificar o plano de fundo de uma imagem. O modelo gera duas categorias, o plano de fundo no índice 0 e a pessoa no índice 1. Esse modelo tem versões com diferentes formas de entrada, incluindo a versão quadrada e a paisagem, que podem ser mais eficientes para aplicativos em que a entrada é sempre dessa forma, como videochamadas.
Nome do modelo | Forma de entrada | Tipo de quantização | Card de modelo | Versões |
---|---|---|---|---|
SelfieSegmenter (quadrado) | 256 x 256 | float 16 | Informações | Mais recente |
SelfieSegmenter (paisagem) | 144 x 256 | float 16 | Informações | Mais recente |
Modelo de segmentação de cabelo
Esse modelo usa uma imagem de uma pessoa, localiza o cabelo na cabeça e gera um mapa de segmentação de imagem para o cabelo. Você pode usar esse modelo para recolorir o cabelo ou aplicar outros efeitos. O modelo gera as seguintes categorias de segmentação:
0 - background
1 - hair
Nome do modelo | Forma de entrada | Tipo de quantização | Card de modelo | Versões |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Nenhum (float32) | Informações | Mais recente |
Modelo de segmentação de selfies multiclasse
Esse modelo captura uma imagem de uma pessoa, localiza áreas diferentes, como cabelo, pele e roupas, e gera um mapa de segmentação de imagem para esses itens. Você pode usar esse modelo para aplicar vários efeitos a pessoas em imagens ou vídeos. 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 | Forma de entrada | 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 várias categorias, incluindo plano de fundo, pessoa, gato, cachorro e planta em vaso. O modelo usa o agrupamento de pirâmide espacial Atrous para capturar informações de maior alcance. Para mais informações, consulte DeepLab-v3.
Nome do modelo | Forma de entrada | Tipo de quantização | Versões |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Nenhum (float32) | 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 |
---|---|---|
SelfieSegmenter (quadrado) | 33,46 ms | 35,15 ms |
SelfieSegmenter (paisagem) | 34,19 ms | 33,55 ms |
HairSegmenter | 57,90 ms | 52,14 ms |
SelfieMulticlass (256 x 256) | 217,76 ms | 71,24 ms |
DeepLab-V3 | 123,93 ms | 103,30 ms |