A tarefa MediaPipe Hand Landmarker permite detectar os pontos de referência das mãos em uma imagem. Use esta tarefa para localizar os pontos-chave das mãos e renderizar efeitos visuais nelas. Essa tarefa opera em dados de imagem com um modelo de aprendizado de máquina (ML) como dados estáticos ou um fluxo contínuo e gera pontos de referência da mão em coordenadas de imagem, pontos de referência da mão em coordenadas do mundo e lateralidade(mão esquerda/direita) de várias mãos detectadas.
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
- Python: exemplo de código
- 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.
- Limite de pontuação: filtre os resultados com base nas pontuações de previsão.
Entradas da tarefa | Saídas de tarefas |
---|---|
O Hand Landmarker aceita uma entrada de um dos seguintes tipos de dados:
|
O Hand Landmarker gera os seguintes resultados:
|
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 |
num_hands |
O número máximo de mãos detectadas pelo detector de pontos de referência da mão. | Any integer > 0 |
1 |
min_hand_detection_confidence |
A pontuação de confiança mínima para que a detecção de mão seja considerada bem-sucedida no modelo de detecção de palma. | 0.0 - 1.0 |
0.5 |
min_hand_presence_confidence |
A pontuação de confiança mínima para a pontuação de presença de mão no modelo de detecção de ponto de referência da mão. No modo de vídeo e na transmissão ao vivo, se a pontuação de confiança de presença da mão do modelo de ponto de referência da mão estiver abaixo desse limite, o Hand Landmarker vai acionar o modelo de detecção de palma. Caso contrário, um algoritmo de rastreamento de mão leve determina a localização da mão para detecções de marco subsequentes. | 0.0 - 1.0 |
0.5 |
min_tracking_confidence |
A pontuação de confiança mínima para que o rastreamento de mãos seja considerado bem-sucedido. Esse é o limite de IoU da caixa delimitadora entre as mãos no frame atual e no último. No modo de vídeo e no modo de transmissão do Hand Landmarker, se o rastreamento falhar, o Hand Landmarker aciona a detecção da mão. Caso contrário, a detecção de mãos é ignorada. | 0.0 - 1.0 |
0.5 |
result_callback |
Define o listener de resultado para receber os resultados de detecção
de forma assíncrona quando o marcador de mão está no modo de transmissão ao vivo.
Aplicável apenas quando o modo de execução está definido como LIVE_STREAM |
N/A | N/A |
Modelos
O Hand Landmarker usa um pacote de modelos com dois modelos empacotados: um de detecção de palma e um de detecção de pontos de referência da mão. Você precisa de um pacote de modelos que contenha esses dois modelos para executar essa tarefa.
Nome do modelo | Forma de entrada | Tipo de quantização | Card de modelo | Versões |
---|---|---|---|---|
HandLandmarker (completo) | 192 x 192, 224 x 224 | float 16 | Informações | Mais recente |
O pacote de modelo de marco da mão detecta a localização do ponto principal de 21 coordenadas de juntas da mão nas regiões da mão detectadas. O modelo foi treinado em aproximadamente 30 mil imagens do mundo real, além de vários modelos de mãos sintéticas renderizados sobre vários planos de fundo.
O pacote de modelo de ponto de referência da mão contém um modelo de detecção de palma e um modelo de detecção de pontos de referência da mão. O modelo de detecção de palmas localiza as mãos na imagem de entrada, e o modelo de detecção de pontos de referência da mão identifica pontos de referência específicos da mão na imagem cortada da mão definida pelo modelo de detecção de palmas.
Como a execução do modelo de detecção de palmas é demorada, no modo de execução de vídeo ou transmissão ao vivo, o Hand Landmarker usa a caixa delimitadora definida pelo modelo de pontos de referência da mão em um frame para localizar a região das mãos em frames posteriores. O Hand Landmarker só vai acionar novamente o modelo de detecção de palmas se o modelo de pontos de referência da mão não identificar mais a presença de mãos ou não conseguir rastrear as mãos no frame. Isso reduz o número de vezes que o Hand Landmarker aciona o modelo de detecção de palma.
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 |
---|---|---|
HandLandmarker (completo) | 17,12 ms | 12,27 ms |