Guida alle attività di incorporamento delle immagini

Due immagini di esempio di coni gelato che includono gli embedding numerici delle immagini sotto forma di array

L'attività MediaPipe Image Embedder ti consente di creare una rappresentazione numerica di un'immagine, che è utile per svolgere varie attività di elaborazione delle immagini basate sull'IA. Questa funzionalità viene spesso utilizzata per confrontare la somiglianza di due immagini utilizzando tecniche di confronto matematico come la somiglianza di Cosine. Questa attività opera su dati di immagini con un modello di machine learning (ML) come dati statici o come stream continuo e restituisce una rappresentazione numerica dei dati di immagini sotto forma di elenco di vettori di funzionalità ad alta dimensione, noti anche come vettori di embedding, in forma di virgola mobile o quantizzata.

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à, 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 delle immagini di input: l'elaborazione include la rotazione, il ridimensionamento, la normalizzazione e la conversione dello spazio colore delle immagini.
  • Regione di interesse: esegue l'embedding in una regione dell'immagine anziché nell'intera immagine.
  • Calcolo della somiglianza dell'embedding: funzione di utilità incorporata per calcolare la somiglianza del coseno tra due vettori di funzionalità
  • Quantizzazione: supporta la quantizzazione scalare per i vettori di caratteristiche.
Input delle attività Output delle attività
L'input può essere uno dei seguenti tipi di dati:
  • Immagini statiche
  • Fotogrammi video decodificati
  • Feed video in diretta
Image Embedder genera un elenco di incorporamenti composto da:
  • Embedding: il vettore di caratteristiche stesso, in formato a virgola mobile o quantizzato scalare.
  • Indice dell'head: l'indice dell'head che ha prodotto questo embedding.
  • Nome della testa (facoltativo): il nome della testa che ha prodotto questo embedding.

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
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'operazione L2_NORMALIZATION TFLite nativa. Nella maggior parte dei casi, è già così e la normalizzazione L2 viene quindi raggiunta tramite l'inferenza TFLite senza bisogno di questa opzione. Boolean False
quantize Indica se l'embedding restituito deve essere quantizzato in byte tramite la quantizzazione scalare. Si presume implicitamente che gli incorporamenti siano di norma unitaria e quindi qualsiasi dimensione abbia un valore garantito compreso tra -1,0 e 1,0. Utilizza l'opzione l2_normalize se non è così. Boolean False
result_callback Imposta l'ascoltatore dei risultati in modo da ricevere i risultati dell'inserimento in modo asincrono quando lo strumento di inserimento di immagini è in modalità live streaming. Può essere utilizzato solo quando la modalità di esecuzione è impostata su LIVE_STREAM N/D Non impostato

Modelli

Lo strumento di incorporamento delle immagini richiede che un modello di incorporamento delle immagini venga scaricato e archiviato nella directory del progetto. Quando inizi a sviluppare con questa attività, inizia con il modello predefinito consigliato per la piattaforma di destinazione. Gli altri modelli disponibili di solito fanno compromessi tra prestazioni, precisione, risoluzione e requisiti di risorse e, in alcuni casi, includono funzionalità aggiuntive.

Modello MobileNetV3

Questa famiglia di modelli utilizza un'architettura MobileNet V3 e è stata addestrata utilizzando i dati di ImageNet. Questo modello utilizza un moltiplicatore di 0,75 per la profondità (numero di funzionalità) 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 ai casi d'uso con risorse basse o elevate.

Nome modello Forma di input Tipo di quantizzazione Versioni
MobileNet-V3 (piccolo) 224 x 224 Nessuno (float32) Ultime notizie
MobileNet-V3 (large) 224 x 224 Nessuno (float32) Ultime notizie

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
MobileNet-V3 (piccolo) 3,94 ms 7,83 ms
MobileNet-V3 (grande) 9,75 ms 9,08 ms