Visual Prompting
Esplora il prompting visivo per guidare i modelli IA con punti e riquadri. Scopri come Ultralytics YOLO e SAM consentono una segmentazione precisa e un'annotazione dei dati più rapida.
Il visual prompting è una tecnica emergente nella computer vision in cui gli utenti forniscono indizi spaziali o visivi—come punti, bounding box o scarabocchi—per guidare l'attenzione di un modello AI verso oggetti o regioni specifici all'interno di un'immagine. A differenza del tradizionale prompt engineering che si basa principalmente su descrizioni testuali, il visual prompting consente un'interazione più precisa e intuitiva con i sistemi di Artificial Intelligence (AI). Questo metodo sfrutta le capacità dei moderni foundation models per eseguire attività come la segmentazione e il rilevamento senza richiedere un ampio riaddestramento o grandi dataset etichettati. "Puntando" efficacemente su ciò che conta, puoi adattare modelli di uso generale a nuove attività all'istante, colmando il divario tra intenzione umana e percezione della macchina.
Meccanismi del Visual Prompting#
Nel suo nucleo, il visual prompting funziona iniettando informazioni spaziali direttamente nella pipeline di elaborazione del modello. Quando fai clic su un oggetto o disegni un riquadro, questi input vengono convertiti in embedding basati su coordinate che la rete neurale integra con le caratteristiche dell'immagine. Questo processo è fondamentale per architetture interattive come il Segment Anything Model (SAM), in cui il modello prevede maschere basate su prompt geometrici.
La flessibilità del visual prompting consente vari tipi di interazione:
- Point Prompts: Un utente clicca su un pixel specifico per indicare l'oggetto di interesse. Il modello espande quindi questa selezione agli interi confini dell'oggetto.
- Box Prompts: Disegnare un bounding box fornisce una localizzazione grossolana, segnalando al modello di segmentare o classificare tutto ciò che è contenuto in quell'area.
- Scribble Prompts: Linee a mano libera tracciate sopra un oggetto possono aiutare a disambiguare scene complesse in cui gli oggetti si sovrappongono o hanno texture simili.
Ricerche recenti presentate al CVPR 2024 evidenziano come il visual prompting riduca significativamente il tempo richiesto per la data annotation, poiché i revisori umani possono correggere le previsioni del modello in tempo reale con semplici clic anziché tracciare manualmente poligoni.
Visual Prompting vs. Text Prompting#
Sebbene entrambe le tecniche mirino a guidare il comportamento del modello, è importante distinguere il visual prompting dai metodi basati su testo. La generazione Text-to-image o il rilevamento zero-shot si basano sul natural language processing (NLP) per interpretare descrizioni semantiche (ad es., "trova l'auto rossa"). Tuttavia, il linguaggio può essere ambiguo o insufficiente per descrivere posizioni spaziali precise o forme astratte.
Il visual prompting risolve questa ambiguità ancorando l'istruzione nello spazio dei pixel stesso. Ad esempio, nell'medical image analysis, è molto più accurato per un radiologo fare clic su un nodulo sospetto che tentare di descriverne le coordinate esatte e la forma irregolare tramite testo. Spesso, i flussi di lavoro più potenti combinano entrambi gli approcci—usando il testo per il filtraggio semantico e i prompt visivi per la precisione spaziale—un concetto noto come multi-modal learning.
Applicazioni nel mondo reale#
L'adattabilità del visual prompting ha portato alla sua rapida adozione in diversi settori:
- Interactive Medical Diagnostics: I medici usano strumenti di visual prompting per isolare tumori o organi nelle scansioni MRI. Facendo semplicemente clic su una regione di interesse, puoi generare istantaneamente misurazioni volumetriche 3D, aiutando nel preciso tumor detection e nella pianificazione chirurgica.
- Smart Photo Editing: In software di consumo come Adobe Photoshop o app mobili, il visual prompting alimenta strumenti di "selezione magica". Puoi toccare una persona o un oggetto per rimuovere lo sfondo o applicare filtri mirati, sfruttando le tecnologie sottostanti di instance segmentation senza bisogno di competenze di mascheramento manuale.
- Robotic Manipulation: Nell'ambito dell'AI in Robotics, puoi istruire i robot a raccogliere oggetti specifici tramite un'interfaccia visiva. Un operatore fa clic su un oggetto nel feed della telecamera del robot, fornendo un prompt visivo che il robot traduce in coordinate di presa, facilitando l'automazione human-in-the-loop nei magazzini.
Implementazione con Ultralytics#
L'ecosistema Ultralytics supporta i flussi di lavoro di visual prompting, in particolare attraverso modelli come FastSAM e SAM. Questi modelli consentono agli sviluppatori di passare programmaticamente coordinate di punti o riquadri per recuperare maschere di segmentazione.
Il seguente esempio dimostra come utilizzare il pacchetto ultralytics per applicare un prompt a punto a un'immagine, istruendo il modello a segmentare l'oggetto situato a coordinate specifiche.
from ultralytics import SAM
# Load the Segment Anything Model (SAM)
model = SAM("sam2.1_b.pt")
# Apply a visual point prompt to the image
# The 'points' argument accepts [x, y] coordinates
# labels: 1 indicates a foreground point (include), 0 indicates background
results = model("https://ultralytics.com/images/bus.jpg", points=[[300, 350]], labels=[1])
# Display the segmented result
results[0].show()Avanzare nell'agilità del modello#
Il visual prompting rappresenta un passaggio verso una computer vision "prompabile", in cui i modelli non sono più "scatole nere" statiche ma strumenti interattivi. Questa capacità è essenziale per cicli di active learning, in cui i modelli migliorano rapidamente incorporando il feedback dell'utente.
Per gli sviluppatori che desiderano integrare queste capacità nella produzione, la Ultralytics Platform offre strumenti per gestire dataset e distribuire modelli in grado di gestire input dinamici. Con il progredire della ricerca, ci aspettiamo di vedere un'integrazione ancora più stretta tra prompt visivi e large language models (LLMs), consentendo sistemi in grado di ragionare sugli input visivi con la stessa fluidità con cui attualmente gestiscono il testo.






