L'attività Incorporamento di immagini MediaPipe consente di creare una rappresentazione numerica di un'immagine, utile per svolgere varie attività relative alle immagini basate su ML. Questa funzionalità viene spesso utilizzata per confrontare la somiglianza tra due immagini utilizzando tecniche di confronto matematico come la similitudine coseno. Questa attività opera sui dati di immagine con un modello di machine learning (ML) sotto forma di dati statici o di flusso continuo e genera una rappresentazione numerica dei dati dell'immagine sotto forma di elenco di vettori di caratteristiche ad alta dimensione, noti anche come vettori di incorporamento, in formato in virgola mobile o quantizzato.
Inizia
Inizia a utilizzare questa attività seguendo una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per la piattaforma illustrano l'implementazione di base di questa attività, utilizzando un modello consigliato, e forniscono esempi di codice con le opzioni di configurazione consigliate:
- Android - Esempio di codice - Guida
- Python - Esempio di codice - Guida
- Web - 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.
- Regione di interesse: esegue l'incorporamento su un'area geografica dell'immagine anziché sull'intera immagine.
- Calcolo della somiglianza di incorporamento: funzione di utilità integrata per calcolare la somiglianza coseno tra due vettori di caratteristiche.
- Quantizzazione: supporta la quantizzazione scalare per i vettori di caratteristiche.
Input attività | Output attività |
---|---|
L'input può essere uno dei seguenti tipi di dati:
|
L'incorporamento di immagini restituisce un elenco di incorporamenti costituiti da:
|
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 |
l2_normalize |
Indica se normalizzare il vettore di caratteristiche restituito con la norma L2. Utilizza questa opzione solo se il modello non contiene già un'operatività TFLite L2_NORMALIZATION nativa. Nella maggior parte dei casi, è già così e la normalizzazione L2 viene quindi ottenuta tramite l'inferenza TFLite senza necessità di questa opzione. | Boolean |
False |
quantize |
Indica se l'incorporamento restituito deve essere quantizzato in byte tramite la quantizzazione scalare. Gli incorporamenti si presume implicitamente come unità-norm, pertanto è garantito che ogni dimensione abbia un valore in [-1.0, 1.0]. In caso contrario, utilizza l'opzione l2_normalize. | Boolean |
False |
result_callback |
Imposta il listener dei risultati per ricevere i risultati di incorporamento in modo asincrono quando l'incorporamento di immagini è in modalità di live streaming. Può essere utilizzato solo quando la modalità di esecuzione è impostata su LIVE_STREAM |
N/A | Non impostata |
ottimizzabili
L'incorporamento di immagini richiede che un modello di incorporamento delle immagini venga scaricato e archiviato nella directory del progetto. Inizia con il modello predefinito consigliato per la tua piattaforma di destinazione quando inizi a sviluppare con questa attività. Gli altri modelli disponibili in genere offrono compromessi tra prestazioni, accuratezza, risoluzione e requisiti delle risorse e, in alcuni casi, includono funzionalità aggiuntive.
Modello MobileNetV3
Questa famiglia di modelli utilizza un'architettura MobileNet V3 ed è stata addestrata utilizzando i dati ImageNet. Questo modello utilizza un moltiplicatore di 0,75 per la profondità (numero di caratteristiche) nei livelli convoluzionali per ottimizzare il compromesso tra accuratezza e latenza. Inoltre, MobileNet V3 è disponibile in due diverse dimensioni, piccole e grandi, per adattare la rete a casi d'uso di risorse basse o elevate.
Nome modello | Forma di input | Tipo di quantizzazione | Versions |
---|---|---|---|
MobileNet-V3 (piccolo) | 224 x 224 | Nessuna (float32) | Più recente |
MobileNet-V3 (large) | 224 x 224 | Nessuna (float32) | Più recente |
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 |
---|---|---|
MobileNet-V3 (piccolo) | 3,94 ms | 7,83 ms |
MobileNet-V3 (large) | 9,75 ms | 9,08 ms |