L'attività Riferimento mano di MediaPipe ti consente di rilevare i punti di riferimento delle mani in un'immagine. Puoi utilizzare questa attività per individuare i punti chiave e visualizzare gli effetti visivi necessari. Questa attività opera su dati di immagine con un modello di machine learning (ML) come dati statici o uno flusso continuo e restituisce punti di riferimento della mano nelle coordinate dell'immagine, punti di riferimento della mano nelle coordinate del mondo e mano dominante(sinistra/destra) di più mani rilevate.
Inizia
Inizia a utilizzare questa attività seguendo una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per piattaforma illustrano un'implementazione di base di questa attività, inclusi un modello consigliato ed un esempio di codice con le opzioni di configurazione consigliate:
- Android - Esempio di codice - Guida
- Python - Esempio di codice - Guida
- 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 dell'immagine in input: l'elaborazione include la rotazione, il ridimensionamento, la normalizzazione e la conversione dello spazio colore dell'immagine.
- Soglia punteggio: filtra i risultati in base ai punteggi delle previsioni.
Input attività | Output attività |
---|---|
Il punto di riferimento della mano accetta l'input di uno dei seguenti tipi di dati:
|
Il punto di riferimento della mano genera i seguenti risultati:
|
Opzioni di configurazione
Questa attività prevede le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
running_mode |
Imposta la modalità di esecuzione per l'attività. Esistono tre
modalità: IMAGE: la modalità per gli input 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 listener per ricevere i risultati in modo asincrono. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
num_hands |
Il numero massimo di mani rilevate dal rilevatore dei punti di riferimento della mano. | Any integer > 0 |
1 |
min_hand_detection_confidence |
Il punteggio di affidabilità minimo affinché il rilevamento della mano venga considerato efficace nel modello di rilevamento del palmo. | 0.0 - 1.0 |
0.5 |
min_hand_presence_confidence |
Il punteggio di affidabilità minimo per il punteggio della 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 del punto di riferimento della mano è inferiore a questa soglia, il punto di riferimento della mano attiva il modello di rilevamento del palmo. Altrimenti, un algoritmo di tracciamento delle mani leggero determina la posizione delle mani per i successivi rilevamenti dei punti di riferimento. | 0.0 - 1.0 |
0.5 |
min_tracking_confidence |
Il punteggio di affidabilità minimo affinché la registrazione della mano venga considerata riuscita. Si tratta della soglia IoU del riquadro di delimitazione tra le mani nel frame corrente e nell'ultimo frame. In modalità Video e in modalità flusso del punto di riferimento mano, se il tracciamento non va a buon fine, il punto di riferimento mano attiva il rilevamento della mano. In caso contrario, il rilevamento della mano non viene eseguito. | 0.0 - 1.0 |
0.5 |
result_callback |
Imposta il listener dei risultati per ricevere i risultati del rilevamento in modo asincrono quando l'indicatore di riferimento della mano è in modalità live streaming.
Applicabile solo quando la modalità di esecuzione è impostata su LIVE_STREAM |
N/A | N/A |
ottimizzabili
Il Punto di riferimento della mano utilizza un bundle con due modelli in pacchetto: 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 | Versions |
---|---|---|---|---|
HandLandMark (completo) | 192 x 192, 224 x 224 | numero in virgola mobile 16 | informazioni | Più recente |
Il bundle di modelli di riferimento della mano rileva la localizzazione del punto chiave di 21 coordinate di ginocchia e ginocchia all'interno delle regioni della mano rilevate. Il modello è stato addestrato su circa 30.000 immagini reali e su diversi modelli di mani sintetiche renderizzati su diversi sfondi.
Il bundle modello Punto di riferimento della mano contiene un modello di rilevamento del palmo e un modello di rilevamento dei punti di riferimento della mano. Il modello di rilevamento del palmo individua le mani nell'immagine di input, mentre il modello di rilevamento dei punti di riferimento della mano identifica i punti di riferimento specifici della mano sull'immagine della mano ritagliata definita dal modello di rilevamento del palmo.
Poiché l'esecuzione del modello di rilevamento del palmo richiede molto tempo, quando è attiva la modalità di esecuzione di video o live streaming, la traccia di riferimento manuale utilizza il riquadro di delimitazione definito dal modello dei punti di riferimento della mano in un frame per localizzare l'area delle mani per i frame successivi. Il punto 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 di mani o non riesce a tracciare le mani all'interno dell'inquadratura. In questo modo si riduce il numero di volte in cui il punto di riferimento della mano attiva il modello di rilevamento del palmo.
Benchmark attività
Ecco i benchmark delle attività per l'intera pipeline basati sui modelli preaddestrati precedenti. Il risultato della latenza è la latenza media su Pixel 6 utilizzando CPU / GPU.
Nome modello | Latenza CPU | Latenza GPU |
---|---|---|
Mano dominante (completo) | 17,12 ms | 12,27 ms |