Guida al rilevamento dei volti

Tre persone con i volti evidenziati da caselle delimitanti

L'attività MediaPipe Face Detector consente di rilevare i volti in un'immagine o in un video. Puoi utilizzare questa attività per individuare volti e tratti del viso all'interno di un fotogramma. Questa attività utilizza un modello di machine learning (ML) che funziona con immagini singole o un flusso continuo di immagini. L'attività genera le posizioni del viso, 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

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:

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 volti accetta come input uno dei seguenti tipi di dati:
  • Immagini statiche
  • Fotogrammi video decodificati
  • Feed video in diretta
Il Rilevamento volti restituisce i seguenti risultati:
  • Riquadri di delimitazione per i volti rilevati nell'inquadratura di un'immagine.
  • Coordinate di sei punti di riferimento del viso 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 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
min_detection_confidence Il punteggio di attendibilità minimo per il rilevamento del volto 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 l'ascoltatore dei risultati in modo da ricevere i risultati del rilevamento in modo asincrono quando il Rilevamento dei 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 in base ai casi d'uso previsti, ad esempio il rilevamento a corto e lungo raggio. Inoltre, 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 di volti leggero e accurato ottimizzato per l'inferenza GPU mobile. I modelli BlazeFace sono adatti per applicazioni come la stima dei punti di riferimento facciali 3D, la classificazione delle espressioni e la segmentazione delle regioni del viso. BlazeFace utilizza una rete di estrazione di funzionalità leggera simile a MobileNetV1/V2.

BlazeFace (a corto raggio)

Un modello leggero per il rilevamento di uno o più volti all'interno di immagini simili a selfie acquisite con la fotocamera di uno smartphone o una webcam. Il modello è ottimizzato per le 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 codificatore personalizzato. Per ulteriori informazioni, consulta il documento 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 informazioni Ultime notizie

BlazeFace (gamma completa)

Un modello relativamente leggero per il rilevamento di uno o più volti all'interno di immagini scattate con la fotocamera di uno smartphone o con una webcam. Il modello è ottimizzato per le 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 Versioni
BlazeFace (gamma completa) 128 x 128 float 16 informazioni Disponibile a breve

BlazeFace Sparse (full-range)

Una versione più leggera del normale modello BlazeFace a gamma completa, con dimensioni ridotte di circa il 60%. Il modello è ottimizzato per le 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 Versioni
BlazeFace Sparse (full-range) 128 x 128 float 16 informazioni Disponibile a breve

Benchmark delle attività

Ecco i benchmark delle attività per l'intera pipeline in base ai modelli preaddestrati sopra riportati. Il risultato della latenza è la latenza media su Pixel 6 che utilizza la CPU / GPU.

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