L’assegnazione automatica di tag, l’etichettatura o la descrizione delle immagini è un’attività cruciale in molte applicazioni, in particolare nella preparazione di dataset per il machine learning. È qui che entrano in gioco i modelli da immagine a testo. Tra i principali modelli da immagine a testo troviamo CLIP, BLIP, WD 1.4 (noto anche come WD14 o Waifu Diffusion 1.4 Tagger), SigLIP 2 e ChatGPT con Vision.
CLIP: Un Balzo Rivoluzionario
Il modello Contrastive Language–Image Pretraining (CLIP) di OpenAI è stato ampiamente riconosciuto per il suo approccio rivoluzionario alla comprensione e alla generazione di descrizioni per le immagini. CLIP sfrutta una grande quantità di testo e dati immagine provenienti da internet per apprendere una moltitudine di concetti visivi, producendo così frasi descrittive per le immagini.
Tuttavia, secondo le recensioni degli utenti, le frasi descrittive di CLIP possono a volte essere ridondanti o eccessivamente prolisse. Una critica comune riguarda la propensione del modello a ripetere descrizioni simili per lo stesso oggetto o a enfatizzare eccessivamente determinati attributi, come il colore di un oggetto.
BLIP: La Semplicità Incontra la Funzionalità
Il modello BLIP, pur essendo meno dettagliato nelle sue descrizioni rispetto a CLIP, offre un approccio più semplice e diretto all’elaborazione da immagine a testo. Come ha notato un recensore, BLIP è “interessante e tutto, ma piuttosto basico”. La semplicità di questo modello può essere un vantaggio per le applicazioni che richiedono tag o descrizioni semplici e meno prolisse.
Ciononostante, alcuni utenti hanno riscontrato che l’output di BLIP spesso manca della profondità e della granularità fornite da modelli come WD14. Pur potendo generare risultati soddisfacenti, BLIP potrebbe non essere la scelta migliore per applicazioni che richiedono tag dettagliati e complessi.
Ho scoperto che WD14, nonostante sia focalizzato sugli anime, funziona alla grande anche per foto reali di persone. Di solito lo combino con BLIP e la maggior parte delle volte rileva molti più dettagli di BLIP.
Toni Corvera nei commenti di YouTube
Blip è interessante e tutto, ma è piuttosto basico.
Il tagging di WD 1.4 (WD14) è molto meglio: più dettagliato, tag più succosi.
OrphBean su GitHub
WD 1.4 (aka WD14): Precisione nei Dettagli
Il modello WD 1.4 (noto anche come WD14 o Waifu Diffusion 1.4 Tagger), inizialmente progettato per immagini anime, ha dimostrato una versatilità sorprendente, funzionando bene anche con le foto. Gli utenti ne hanno lodato le opzioni di configurazione avanzate e le capacità di elaborazione batch, che lo rendono uno strumento robusto per la traduzione da immagine a testo.
Ciò che distingue WD14 è la sua capacità di generare tag dettagliati, “più succosi”, fornendo descrizioni più approfondite delle immagini rispetto alle sue controparti. Sebbene questo modello abbia meno probabilità di produrre tag spuri, la sua attenzione agli anime potrebbe essere una limitazione per alcuni tipi di immagini.
D: Il tagger WD14 è migliore di BLIP o deepdanbooru integrati in Automatic1111?
R: L’estensione offre migliori opzioni per la configurazione e l’elaborazione batch, e ho scoperto che è meno probabile che produca tag completamente spuri rispetto a deepdanbooru.CLIP/BLIP sono diversi poiché producono frasi descrittive piuttosto che elenchi di tag, ma quest’ultimo è di solito più in linea con le mie esigenze. E l’interrogatore CLIP integrato è incline a tirare fuori cose come “una foto di (descrizione) e una foto di (descrizione leggermente diversa della stessa cosa)” o “(descrizione per lo più completa) e capelli rosa e capelli rosa e capelli rosa e (ripeti molte volte)”
Nonostante sia stato realizzato per gli anime, il tagger WD14 funziona piuttosto bene sulle foto.
MorganTheDual su Reddit
SigLIP 2: Un Potente Motore da Immagine a Testo
Il modello gratuito e open source SigLIP 2 di Google, non è solo un modello visione-linguaggio; è un potente motore per trasformare le immagini in testo significativo. Sebbene eccella in compiti come il recupero immagine-testo e la classificazione zero-shot, la sua architettura e i miglioramenti nell’addestramento lo rendono un forte contendente per la generazione e la comprensione da immagine a testo. Ecco un’analisi di come funziona SigLIP 2 in questo contesto:
Le Basi: Vision Transformer (ViT) e Sigmoid Loss
- Vision Transformer (ViT): A differenza delle reti neurali convoluzionali (CNN), SigLIP 2 utilizza un’architettura Vision Transformer (ViT). Il ViT tratta un’immagine come una sequenza di patch, in modo simile a come le parole vengono trattate come token nell’elaborazione del linguaggio naturale. Ogni patch viene convertita in una rappresentazione vettoriale (un embedding). Ciò consente al modello di utilizzare la potente architettura Transformer, nota per la sua capacità di catturare dipendenze a lungo raggio, per comprendere le relazioni tra diverse parti dell’immagine.
- Sigmoid Loss (Non Contrasto): Un elemento distintivo chiave di SigLIP (e SigLIP 2) è l’uso di una funzione di loss sigmoide invece della più comune loss di contrasto (utilizzata in modelli come CLIP). L’apprendimento di contrasto richiede il confronto di un’immagine con molteplici opzioni di testo. La loss sigmoide, d’altra parte, tratta la corrispondenza immagine-testo come un problema di classificazione binaria per ogni coppia immagine-testo. Questo cambiamento apparentemente piccolo ha un grande impatto: consente un addestramento più stabile e prestazioni migliori, specialmente con batch size più grandi. Si concentra sulle corrispondenze individuali tra coppie immagine-testo.
Addestramento Avanzato per la Generazione di Testo
SigLIP 2 prende le basi di SigLIP e aggiunge diversi miglioramenti cruciali che avvantaggiano direttamente le sue capacità da immagine a testo:
- Pre-addestramento basato sulla didascalia (Captioning-Based Pretraining): Questo è un passo enorme. SigLIP 2 incorpora l’assegnazione di didascalie come parte del suo processo di pre-addestramento. Ciò significa che è esplicitamente addestrato a generare descrizioni testuali delle immagini. Questo è in contrasto con modelli come l’originale CLIP, che sono stati addestrati principalmente sulla corrispondenza immagine-testo, non sulla generazione.
- Ispirato all’apprendimento auto-supervisionato: SigLIP 2 sfrutta potenti tecniche:
- Auto-distillazione: Il modello impara dalle proprie previsioni, affinando la sua comprensione nel tempo.
- Previsione Mascherata: Parti dell’input (patch di immagini o token di testo) sono nascoste e il modello impara a prevedere i pezzi mancanti. Questo lo costringe a sviluppare una comprensione più profonda di entrambe le modalità.
- LocCa Loss e Decoder: SigLIP 2 integra la LocCa loss, che aggiunge un decoder Transformer con cross-attenzione. Questo decoder è specificamente addestrato su compiti come la didascalia di immagini, la previsione di espressioni referenziali (identificazione di regioni basata sul testo) e la didascalia grounded. Ciò migliora la localizzazione precisa e l’estrazione di feature dettagliate.
Come tutto si unisce (Immagine -> Testo)
- Input Immagine: Un’immagine viene fornita all’encoder ViT.
- Patch Embedding: L’immagine viene divisa in patch e ogni patch viene trasformata in un vettore di embedding.
- Transformer Encoding: I layer Transformer elaborano questi embedding di patch, catturando le relazioni tra diverse parti dell’immagine. Gli embedding posizionali appresi forniscono informazioni sulla posizione di ciascuna patch.
- Attention Pooling: Un meccanismo di pooling basato sull’attenzione (MAP head) aggrega le informazioni dagli embedding di patch in una singola rappresentazione completa dell’immagine.
- Decoder di Testo (Cruciale per Immagine-a-Testo): È qui che entrano in gioco le capacità di didascalia di SigLIP 2. La rappresentazione dell’immagine dall’encoder viene fornita al decoder Transformer (aggiunto dalla LocCa loss). Il decoder utilizza la cross-attenzione per concentrarsi sulle parti rilevanti della rappresentazione dell’immagine durante la generazione del testo.
- Output Testo: Il decoder genera una sequenza di token di testo, formando una didascalia o una descrizione dell’immagine.
Potenza Multilingue
SigLIP 2 non è limitato all’inglese. È addestrato su un dataset multilingue (WebLI), il che gli conferisce la capacità di comprendere e generare testo in più lingue, rendendolo uno strumento da immagine a testo veramente globale.
In Sintesi
La combinazione di SigLIP 2 di una solida architettura basata su ViT, sigmoid loss e, soprattutto, pre-addestramento basato su decoder con didascalia e auto-distillazione, lo rende un modello altamente efficace per compiti da immagine a testo. Va oltre la semplice corrispondenza immagine-testo per generare attivamente testo descrittivo, aprendo possibilità per applicazioni come la didascalia automatica di immagini, il visual question answering e l’analisi dettagliata delle immagini.
Link
ChatGPT con Vision
Se hai bisogno di descrivere un dataset di immagini non molto grande, puoi utilizzare lo strumento Image Describer in ChatGPT. Non è adatto per grandi batch di immagini, ma è perfetto per set di immagini più piccoli perché fornisce descrizioni assolutamente migliori in linguaggio naturale. Le descrizioni da questo strumento sono molto precise e dettagliate. Non si tratta solo di tag, ma di testo coerente e informativo che tiene conto anche delle relazioni tra gli oggetti nell’immagine.
Esempio:
Set di immagini di prova:



Output di Image Describer per queste 3 immagini:
Hai caricato tre immagini. Ecco una descrizione di ciascuna:
- La prima immagine raffigura un adorabile gattino stilizzato dei cartoni animati con grandi occhi espressivi. È prevalentemente arancione con accenti bianchi sul viso, sul petto e sulle zampe. Il gattino tiene in mano una penna, che è quasi grande quanto lui, e sta disegnando una faccina felice su una palla giallo brillante. Lo stile artistico è molto raffinato e ha una sorta di finitura lucida. Lo sfondo suggerisce un ambiente stravagante con forme astratte colorate e un accenno a un cielo stellato.
- La seconda immagine sembra essere uno screenshot di una chat o di una sezione di commenti di una piattaforma di social media. Vari utenti hanno lasciato commenti, molti dei quali includono risate o divertimento indicati da acronimi come “LMAO” ed emoji. I nomi utente e le immagini del profilo sono pixellati per motivi di privacy, con una varietà di colori visualizzati nella pixellatura.
- La terza immagine è un’illustrazione altamente dettagliata e realistica di una giovane donna con un’espressione amichevole. Ha lunghi capelli neri, pelle chiara e indossa una felpa con cappuccio viola. La donna indossa anche un paio di cuffie, suggerendo che potrebbe essere una streamer di videogiochi o coinvolta in qualche forma di comunicazione online. L’ambientazione sembra essere una stanza illuminata con una tonalità viola, forse da luci a LED, indicativa di una configurazione da gaming.
Ogni immagine ha un contesto e uno stile visivo molto diversi, che vanno da un’illustrazione stravagante a uno screenshot di un’interazione digitale, a un dipinto digitale più realistico.
Conclusioni
La scelta tra CLIP, BLIP, WD 1.4, SigLIP 2 e Image Describer dipende in gran parte dalle esigenze specifiche di un progetto. Se la precisione e il dettaglio sono fondamentali, WD 1.4 offre un’opzione convincente con la sua configurazione avanzata e le capacità di tagging dettagliato. Per applicazioni più semplici, l’approccio diretto di BLIP potrebbe essere più adatto. Nel frattempo, CLIP fornisce un equilibrio tra dettaglio e semplicità, anche se con una tendenza alla verbosità.
Image Describer fornisce i risultati migliori ma non è adatto per descrivere o taggare grandi set di immagini.
Man mano che questi modelli continuano a evolversi e migliorare, detengono un potenziale promettente per un ampio spettro di applicazioni, dalla creazione di contenuti all’analisi dei dati. Nonostante le loro differenze, i modelli CLIP, BLIP, WD 1.4, SigLIP 2 e GPT-Vision testimoniano i rapidi progressi nella tecnologia da immagine a testo, ognuno dei quali contribuisce con punti di forza unici a questo entusiasmante campo.