Visual Question Answering (VQA)
Il visual question answering (VQA) è il compito di rispondere a domande in linguaggio naturale su un'immagine. Come funzionano i modelli VQA, benchmark principali e metriche.
La risposta a domande visive (VQA) consiste nel rispondere a una domanda in linguaggio naturale su un'immagine, come «Di che colore è l'autobus?», «Quante persone stanno aspettando?» o «Il fornello è acceso?». Il sistema riceve insieme l'immagine e la domanda e restituisce una risposta breve, quindi deve interpretare la domanda, trovare le parti pertinenti dell'immagine e combinarle: per questo la VQA è un test standard di AI multimodale. Stanislaw Antol e i colleghi di Virginia Tech e Microsoft Research hanno introdotto l'attività e il suo primo benchmark di grandi dimensioni, il dataset VQA, a ICCV 2015: circa 250.000 immagini, perlopiù da COCO, con 760.000 domande a risposta aperta e 10 risposte umane per ciascuna, circa 10 milioni di risposte in totale.
Come funzionano i modelli VQA#
Un modello VQA codifica l'immagine con una rete neurale convoluzionale (CNN) o un transformer visivo (ViT), codifica la domanda con un modello linguistico e fonde le due rappresentazioni. I primi modelli fondevano le caratteristiche globali dell'immagine con il vettore della domanda generato da una LSTM e trattavano la risposta come una classificazione sulle poche migliaia di risposte più frequenti. Un meccanismo di attenzione ha poi permesso alla domanda di indicare dove guardare: il modello bottom-up e top-down di Peter Anderson e colleghi, vincitore della VQA Challenge 2017, applicava l'attenzione alle regioni proposte da un modello di rilevamento degli oggetti, così la domanda «Di che colore è l'autobus?» poteva concentrarsi sul riquadro dell'autobus. Gli attuali modelli visione-linguaggio (VLM) generano risposte aperte con un modello linguistico, dopo l'ottimizzazione visiva per seguire istruzioni su dati di immagini, domande e risposte.
Benchmark e problema dei priori linguistici#
I primi modelli VQA ottenevano buoni punteggi anche ignorando l'immagine. Molte domande si possono indovinare dalla formulazione, perché a «C'è un...» si risponde spesso «sì» e a «Quale sport è...» spesso «tennis». VQA v2, pubblicato da Yash Goyal e colleghi a CVPR 2017, contrastava questi priori linguistici abbinando ogni domanda a due immagini simili con risposte diverse, così il modello doveva guardare le immagini per ottenere un buon punteggio. I dataset successivi si concentrano ciascuno su una specifica capacità:
- VizWiz: oltre 31.000 domande poste da persone cieche su foto scattate con il telefono, molte delle quali sfocate o inquadrate male.
- TextVQA: domande che richiedono di leggere il testo presente nella scena, come il numero su una maglia o il nome sulla facciata di un negozio.
- GQA: domande composizionali generate da grafi della scena, come «La tazza alla sinistra del piatto è di vetro?».
- OK-VQA: domande che richiedono conoscenze esterne, per esempio da quale paese proviene un piatto.
- VQA-RAD: 3.515 domande scritte da medici su 315 immagini radiologiche, create presso la US National Library of Medicine.
Poiché le persone formulano diversamente le risposte corrette, il benchmark VQA assegna un punteggio a una risposta in base al numero dei 10 annotatori umani che l'hanno fornita: considera pienamente corretti tre o più riscontri e calcola la media su ogni sottoinsieme di nove annotatori:
# Ten crowd answers to "What color is the bus?", as collected for every VQA question
human_answers = ["red"] * 7 + ["red and white"] * 2 + ["orange"]
def vqa_accuracy(prediction, answers):
"""Average min(matches / 3, 1) over the ten leave-one-out subsets of nine answers."""
scores = []
for i in range(len(answers)):
others = answers[:i] + answers[i + 1 :]
scores.append(min(others.count(prediction) / 3, 1))
return sum(scores) / len(scores)
for prediction in ["red", "red and white", "orange", "blue"]:
print(f"{prediction}: {vqa_accuracy(prediction, human_answers):.2f}")Stampa 1,00 per "red", 0,60 per "red and white", 0,30 per "orange" e 0,00 per "blue": una risposta fornita da un solo annotatore ottiene comunque un punteggio parziale, mentre una risposta fornita da nessuno non ottiene punti. I risultati vengono riportati separatamente per le risposte sì/no, numeriche e di altro tipo; le domande numeriche ottengono sistematicamente il punteggio più basso, perché per contare bisogna trovare ogni istanza esattamente una volta. I rilevatori rispondono direttamente alle domande di conteggio: YOLO26 restituisce un riquadro per ogni oggetto, quindi il numero di riquadri "person" nel risultato della predizione risponde alla domanda "Quante persone ci sono nell'immagine?" per ognuna delle sue 80 classi COCO. Per le classi non presenti in quell'elenco, anche i modelli visione-linguaggio possono restituire riquadri, e la classifica VLM misura la precisione con cui rilevano gli oggetti nei dataset del mondo reale.
VQA e attività correlate#
La generazione di didascalie per immagini descrive un'intera immagine senza che venga posta una domanda, mentre la VQA risponde a una domanda specifica. Il grounding visivo restituisce la posizione dell'oggetto nominato da una frase, spesso tramite un riquadro di delimitazione, mentre la VQA fornisce una risposta sull'oggetto. Il riconoscimento ottico dei caratteri (OCR) fornisce il testo a cui si riferiscono le domande di tipo TextVQA, mentre il ragionamento visivo è l'inferenza in più passaggi richiesta da domande composizionali come quelle di GQA. La risposta a domande basata solo sul testo usa un brano invece dei pixel.
Applicazioni#
La tecnologia assistiva è l'applicazione più evidente. Nel 2023 Be My Eyes ha aggiunto Be My AI, basato su GPT-4 di OpenAI, consentendo alle persone cieche o ipovedenti di fotografare un'etichetta, uno schermo o una strada e porre domande al riguardo. I team di vendita al dettaglio e produzione interrogano i VLM su foto di scaffali o immagini d'ispezione, anziché addestrare un classificatore per ogni domanda. Nell'assistenza sanitaria, la ricerca sul VQA medico studia domande come «C'è una frattura?» poste su radiografie e scansioni TC: è una forma di analisi di immagini mediche che VQA-RAD valuta usando domande scritte da medici mentre osservavano le immagini.










