Guida alle attività di incorporamento delle immagini

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.

Prova!

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:

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:
  • Immagini statiche
  • Fotogrammi video decodificati
  • Feed video in diretta
L'incorporamento di immagini restituisce un elenco di incorporamenti costituiti da:
  • Incorporamento: il vettore di caratteristiche stesso, in forma in virgola mobile o quantizzato scalare.
  • Indice head: l'indice dell'intestazione che ha prodotto l'incorporamento.
  • (Facoltativo) Nome dell'intestazione: il nome dell'intestazione che ha prodotto l'incorporamento.

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