L'attività MediaPipe Hand Landmarker consente di rilevare i punti di riferimento delle mani in un'immagine. Puoi utilizzare questa operazione per individuare i punti chiave delle mani e applicare effetti visivi. Questa attività opera sui dati delle immagini con un modello di machine learning (ML) come dati statici o uno stream continuo e genera punti di riferimento della mano nelle coordinate dell'immagine, punti di riferimento della mano nelle coordinate del mondo e dominanza della mano(mano sinistra/destra) di più mani rilevate.
Inizia
Per iniziare a utilizzare questa attività, segui una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per la piattaforma illustrano un'implementazione di base di questa attività, incluso un modello consigliato e un esempio di codice con le opzioni di configurazione consigliate:
- Android - Esempio di codice
- Python - Esempio di codice
- Web - Esempio di codice - Guida
Dettagli attività
Questa sezione descrive le funzionalità, gli input, gli output e le opzioni di configurazione di questa attività.
Funzionalità
- Elaborazione delle immagini di input: l'elaborazione include la rotazione, il ridimensionamento, la normalizzazione e la conversione dello spazio colore delle immagini.
- Soglia di punteggio: filtra i risultati in base ai punteggi di previsione.
Input delle attività | Output delle attività |
---|---|
Il rilevamento di punti di riferimento della mano accetta uno dei seguenti tipi di dati:
|
Il rilevamento di punti di riferimento della mano genera i seguenti risultati:
|
Opzioni di configurazione
Questa attività ha le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
running_mode |
Imposta la modalità di esecuzione dell'attività. Esistono tre
modalità: IMMAGINE: la modalità per l'inserimento di singole immagini. VIDEO: la modalità per i fotogrammi decodificati di un video. LIVE_STREAM: la modalità per un live streaming di dati di input, ad esempio da una videocamera. In questa modalità, resultListener deve essere chiamato per configurare un ascoltatore per ricevere i risultati in modo asincrono. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
num_hands |
Il numero massimo di mani rilevate dal Rilevamento di punti di riferimento della mano. | Any integer > 0 |
1 |
min_hand_detection_confidence |
Il punteggio di attendibilità minimo per il rilevamento della mano deve essere considerato positivo nel modello di rilevamento del palmo. | 0.0 - 1.0 |
0.5 |
min_hand_presence_confidence |
Il punteggio di attendibilità minimo per il punteggio di presenza della mano nel modello di rilevamento dei punti di riferimento della mano. In modalità Video e Live streaming, se il punteggio di confidenza della presenza della mano del modello di landmark della mano è inferiore a questa soglia, il rilevamento dei landmark della mano attiva il modello di rilevamento del palmo. In caso contrario, un algoritmo di monitoraggio delle mani leggero determina la posizione delle mani per i rilevamenti successivi dei punti di riferimento. | 0.0 - 1.0 |
0.5 |
min_tracking_confidence |
Il punteggio di attendibilità minimo per il rilevamento delle mani deve essere considerato positivo. Questa è la soglia IoU del riquadro di delimitazione tra le mani nel frame corrente e nell'ultimo frame. In modalità Video e Stream di Hand Landmarker, se il monitoraggio non va a buon fine, Hand Landmarker attiva il rilevamento della mano. In caso contrario, salta il rilevamento della mano. | 0.0 - 1.0 |
0.5 |
result_callback |
Imposta l'ascoltatore dei risultati in modo da ricevere i risultati del rilevamento
in modo asincrono quando il rilevamento di punti di riferimento della mano è in modalità live streaming.
Applicabile solo quando la modalità di esecuzione è impostata su LIVE_STREAM |
N/D | N/D |
Modelli
Il rilevamento di punti di riferimento della mano utilizza un bundle di modelli con due modelli pacchettizzati: un modello di rilevamento del palmo e un modello di rilevamento dei punti di riferimento della mano. Per eseguire questa attività, è necessario un bundle di modelli che contenga entrambi questi modelli.
Nome modello | Forma di input | Tipo di quantizzazione | Scheda del modello | Versioni |
---|---|---|---|---|
Segnaletica manuale (completa) | 192 x 192, 224 x 224 | float 16 | informazioni | Ultime notizie |
Il bundle del modello di punti di riferimento della mano rileva la localizzazione dei punti chiave di 21 coordinate delle nocche delle mani all'interno delle regioni delle mani rilevate. Il modello è stato addestrato su circa 30.000 immagini del mondo reale, nonché su diversi modelli di mani sintetiche resi su vari sfondi.
Il bundle di modelli di indicatori della mano contiene un modello di rilevamento del palmo e un modello di rilevamento degli indicatori della mano. Il modello di rilevamento della mano individua le mani all'interno dell'immagine di input, mentre il modello di rilevamento dei punti di riferimento della mano identifica punti di riferimento specifici della mano nell'immagine della mano ritagliata definita dal modello di rilevamento della mano.
Poiché l'esecuzione del modello di rilevamento del palmo è un processo che richiede tempo, in modalità di esecuzione di video o live streaming, il rilevamento dei punti di riferimento della mano utilizza la casella delimitante definita dal modello dei punti di riferimento della mano in un fotogramma per localizzare la regione delle mani per i fotogrammi successivi. Il rilevamento dei punti di riferimento della mano riattiva il modello di rilevamento del palmo solo se il modello dei punti di riferimento della mano non identifica più la presenza delle mani o non riesce a monitorarle all'interno dell'inquadratura. In questo modo si riduce il numero di volte in cui il rilevamento dei punti di riferimento della mano attiva il modello di rilevamento del palmo.
Benchmark delle attività
Ecco i benchmark delle attività per l'intera pipeline in base ai modelli preaddestrati sopra indicati. Il risultato della latenza è la latenza media su Pixel 6 che utilizza CPU / GPU.
Nome modello | Latenza della CPU | Latenza GPU |
---|---|---|
Segnaletica stradale (completa) | 17,12 ms | 12,27 ms |