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.
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
- iOS - 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 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:
|
Il rilevatore di volti restituisce 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 |
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 |