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.
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 |
---|---|
|
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:
|
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.
Modelo MagicTouch (recomendado)
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 |