Guida al rilevamento dei volti

Tre persone con i volti evidenziati da rettangoli di selezione

L'attività di rilevamento dei volti di MediaPipe consente di rilevare i volti in un'immagine o in un video. Puoi utilizzare questo compito per individuare volti e caratteristiche facciali all'interno di un frame. Questa attività utilizza un modello di machine learning (ML) che funziona con singole immagini o un flusso continuo di immagini. L'attività restituisce le posizioni del volto, insieme ai seguenti punti chiave del viso: occhio sinistro, occhio destro, punta del naso, bocca, tragio dell'occhio sinistro e tragio dell'occhio destro.

Prova!

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à, tra cui un modello consigliato e un esempio di codice con opzioni di configurazione consigliate:

Dettagli attività

Questa sezione descrive le funzionalità, gli input, gli output e le opzioni di configurazione di questa attività.

Funzionalità

  • Elaborazione dell'immagine di input: l'elaborazione include rotazione, ridimensionamento, normalizzazione e conversione dello spazio colore dell'immagine.
  • Soglia del punteggio: filtra i risultati in base ai punteggi di previsione.
Input dell'attività Output dell'attività
Il rilevatore di volti accetta un input di uno dei seguenti tipi di dati:
  • Immagini statiche
  • Fotogrammi video decodificati
  • Feed video in diretta
Il rilevatore di volti restituisce i seguenti risultati:
  • Riquadri di delimitazione per i volti rilevati in un frame dell'immagine.
  • Coordinate di 6 punti di riferimento del volto per ogni volto rilevato.

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 gli input di singole immagini.

VIDEO: la modalità per i frame decodificati di un video.

LIVE_STREAM: la modalità per un live streaming dei 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
min_detection_confidence Il punteggio di confidenza minimo affinché il rilevamento del volto venga considerato riuscito. Float [0,1] 0.5
min_suppression_threshold La soglia minima di soppressione non massima per il rilevamento dei volti da considerare sovrapposti. Float [0,1] 0.3
result_callback Imposta il listener dei risultati per ricevere i risultati del rilevamento in modo asincrono quando il rilevatore di volti è in modalità live streaming. Può essere utilizzato solo quando la modalità di esecuzione è impostata su LIVE_STREAM. N/A Not set

Modelli

I modelli di rilevamento dei volti possono variare a seconda dei casi d'uso previsti, ad esempio il rilevamento a corto e lungo raggio. In genere, i modelli fanno anche compromessi tra prestazioni, precisione, risoluzione e requisiti di risorse e, in alcuni casi, includono funzionalità aggiuntive.

I modelli elencati in questa sezione sono varianti di BlazeFace, un rilevatore di volti leggero e preciso ottimizzato per l'inferenza della GPU mobile. I modelli BlazeFace sono adatti ad applicazioni come la stima dei punti chiave del viso 3D, la classificazione delle espressioni e la segmentazione delle regioni del viso. BlazeFace utilizza una rete di estrazione delle funzionalità leggera simile a MobileNetV1/V2.

BlazeFace (a corto raggio)

Un modello leggero per rilevare uno o più volti all'interno di immagini simili a selfie scattate con la fotocamera di uno smartphone o una webcam. Il modello è ottimizzato per immagini della fotocamera anteriore dello smartphone a distanza ravvicinata. L'architettura del modello utilizza una tecnica di rete convoluzionale Single Shot Detector (SSD) con un encoder personalizzato. Per saperne di più, consulta l'articolo di ricerca su Single Shot MultiBox Detector.

Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versioni
BlazeFace (a corto raggio) 128 x 128 float 16 info Più recenti

BlazeFace (gamma completa)

Un modello relativamente leggero per rilevare uno o più volti all'interno di immagini scattate con la fotocamera di uno smartphone o una webcam. Il modello è ottimizzato per immagini a gamma completa, come quelle scattate con una fotocamera posteriore dello smartphone. L'architettura del modello utilizza una tecnica simile a una rete convoluzionale CenterNet con un encoder personalizzato.

Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versioni
BlazeFace (gamma completa) 128 x 128 float 16 info Più recenti

BlazeFace Sparse (full-range)

Una versione più leggera del normale modello BlazeFace a gamma completa, di dimensioni circa il 60% più piccole. Il modello è ottimizzato per le immagini a gamma completa, come quelle scattate con una fotocamera posteriore dello smartphone. L'architettura del modello utilizza una tecnica simile a una rete convoluzionale CenterNet con un encoder personalizzato.

Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versioni
BlazeFace Sparse (full-range) 128 x 128 float 16 info Più recenti

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 utilizzando CPU / GPU.

Nome modello Latenza della CPU Latenza GPU
BlazeFace (a corto raggio) 2,94 ms 7,41 ms