Guida al rilevamento dei volti

L'attività Rilevatore di volti MediaPipe consente di rilevare i volti in un'immagine o in un video. Puoi usare questa attività per individuare i volti e le caratteristiche del viso all'interno di un'inquadratura. Questa attività utilizza un modello di machine learning (ML) che funziona con immagini singole o un flusso continuo di immagini. L'attività restituisce la posizione del volto, oltre ai seguenti punti chiave del viso: occhio sinistro, occhio destro, punta del naso, bocca, tragione dell'occhio sinistro e tragione 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à, inclusi un modello consigliato ed un esempio di codice con le 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 in input: l'elaborazione include la rotazione, il ridimensionamento, la normalizzazione e la conversione dello spazio colore delle immagini.
  • Soglia punteggio: filtra i risultati in base ai punteggi delle previsioni.
Input attività Output attività
Il rilevatore di volti accetta l'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:
  • Caselle di delimitazione per i volti rilevati in una cornice immagine.
  • Coordinate per sei punti di riferimento per ciascun volto rilevato.

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
min_detection_confidence Il punteggio di confidenza minimo affinché il rilevamento dei volti venga considerato efficace. Float [0,1] 0.5
min_suppression_threshold La soglia minima non massima di soppressione per il rilevamento dei volti affinché venga considerato sovrapposto. 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

ottimizzabili

I modelli di rilevamento facciale possono variare a seconda dei casi d'uso previsti, come il rilevamento a corto raggio e a lungo raggio. I modelli di solito fanno compromessi tra prestazioni, accuratezza, risoluzione e requisiti delle risorse e, in alcuni casi, includono funzionalità aggiuntive.

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

BlazeFace (raggio d'azione)

Un modello leggero per il rilevamento di uno o più volti all'interno di immagini scattate come selfie dalla fotocamera o dalla webcam di uno smartphone. Il modello è ottimizzato per immagini della fotocamera anteriore dello smartphone a breve distanza. L'architettura del modello utilizza una tecnica di rete convoluzionale (Single Shot Detector, SSD) con un codificatore personalizzato. Per ulteriori informazioni, consulta il documento di ricerca sul rilevatore Single Shot MultiBox.

Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versions
BlazeFace (raggio d'azione) 128 x 128 numero in virgola mobile 16 informazioni Più recente

BlazeFace (gamma completa)

Un modello relativamente leggero per il rilevamento di uno o più volti nelle immagini dalla fotocamera o dalla webcam di uno smartphone. Il modello è ottimizzato per immagini a gamma intera, come quelle scattate con la fotocamera posteriore dello smartphone. L'architettura del modello utilizza una tecnica simile a una rete convoluzionale CenterNet con un codificatore personalizzato.

Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versions
BlazeFace (gamma completa) 128 x 128 numero in virgola mobile 16 informazioni Disponibile a breve

BlazeFace Sparse (gamma completa)

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

Nome modello Forma di input Tipo di quantizzazione Scheda del modello Versions
BlazeFace Sparse (gamma completa) 128 x 128 numero in virgola mobile 16 informazioni Disponibile a breve

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
BlazeFace (raggio d'azione) 2,94 ms 7,41 ms