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.
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:
- 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 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:
|
Image Embedder genera un elenco di incorporamenti composto da:
|
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 |