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.
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:
- 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 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:
|
Il Rilevamento volti restituisce i seguenti risultati:
|
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 |