Visual Question Answering (VQA)
La respuesta visual a preguntas (VQA) consiste en responder preguntas en lenguaje natural sobre una imagen. Explica cómo funcionan los modelos VQA, los principales benchmarks y su evaluación.
La respuesta visual a preguntas (VQA) consiste en responder una pregunta en lenguaje natural sobre una imagen, como «¿De qué color es el autobús?», «¿Cuántas personas están esperando?» o «¿Está encendida la cocina?». El sistema recibe la imagen y la pregunta a la vez y devuelve una respuesta breve, así que debe interpretar la pregunta, localizar las partes pertinentes de la imagen y combinarlas. Por eso, la VQA es una prueba habitual de la IA multimodal. Stanislaw Antol y sus colegas de Virginia Tech y Microsoft Research presentaron la tarea y su primer gran conjunto de referencia, el conjunto de datos VQA, en ICCV 2015: unas 250 000 imágenes, la mayoría de COCO, con 760 000 preguntas abiertas y 10 respuestas humanas por pregunta, aproximadamente 10 millones de respuestas en total.
Cómo funcionan los modelos VQA#
Un modelo VQA codifica la imagen con una red neuronal convolucional (CNN) o un transformador de visión (ViT), codifica la pregunta con un modelo de lenguaje y fusiona ambas representaciones. Los primeros modelos fusionaban características globales de la imagen con el vector de pregunta de una LSTM y planteaban la respuesta como una clasificación entre los pocos miles de respuestas más frecuentes. Después, un mecanismo de atención permitió que la pregunta determinara dónde mirar: el modelo ascendente y descendente de Peter Anderson y sus colaboradores, ganador del reto VQA de 2017, aplicaba atención a regiones propuestas por un modelo de detección de objetos, de modo que «¿De qué color es el autobús?» podía centrarse en la caja del autobús. Los actuales modelos de lenguaje y visión (VLM) generan respuestas abiertas con un modelo de lenguaje tras el ajuste visual a instrucciones con datos de imágenes, preguntas y respuestas.
Conjuntos de referencia y el problema de los sesgos lingüísticos#
Los primeros modelos VQA obtenían buenas puntuaciones en parte porque ignoraban la imagen. Muchas preguntas se pueden adivinar solo por su redacción: las que empiezan por «¿Hay…?» suelen responderse con «sí» y las que preguntan «¿Qué deporte…?» suelen responderse con «tenis». VQA v2, publicado por Yash Goyal y sus colegas en CVPR 2017, contrarrestó estos sesgos lingüísticos emparejando cada pregunta con dos imágenes similares que tienen respuestas distintas, de modo que el modelo debe mirar la imagen para obtener una buena puntuación. Los conjuntos de datos posteriores se centran en distintas capacidades:
- VizWiz: más de 31 000 preguntas de personas ciegas sobre fotos que tomaron con sus teléfonos; muchas están borrosas o mal encuadradas.
- TextVQA: preguntas que requieren leer texto en la escena, como el número de una camiseta o el nombre de un establecimiento.
- GQA: preguntas compositivas generadas a partir de grafos de escenas, como «¿La taza situada a la izquierda del plato es de cristal?».
- OK-VQA: preguntas que requieren conocimientos externos, como saber de qué país procede un plato.
- VQA-RAD: 3515 preguntas sobre 315 imágenes radiológicas, redactadas por médicos de la Biblioteca Nacional de Medicina de Estados Unidos.
Como las personas expresan las respuestas correctas de formas distintas, el conjunto de referencia VQA puntúa cada respuesta según cuántos de los 10 anotadores humanos la hayan dado: considera totalmente correcta una respuesta con tres o más coincidencias y calcula la media sobre todos los subconjuntos de nueve anotadores:
# 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}")Imprime 1,00 para «rojo», 0,60 para «rojo y blanco», 0,30 para «naranja» y 0,00 para «azul»: una respuesta que solo dio un anotador obtiene crédito parcial, mientras que una respuesta que nadie dio no obtiene ninguno. Los resultados se presentan por separado para respuestas de sí/no, numéricas y de otros tipos. Las preguntas numéricas obtienen sistemáticamente las puntuaciones más bajas, porque para contar hay que encontrar cada instancia exactamente una vez. Los detectores responden directamente a las preguntas de recuento: YOLO26 devuelve un cuadro por objeto, así que el número de cuadros de «persona» en su resultado de predicción responde a «¿Cuántas personas hay en la imagen?» para cualquiera de sus 80 clases COCO. Para las clases que no están en esa lista, los modelos de lenguaje y visión también pueden devolver cuadros, y la clasificación de VLM mide su precisión al detectar objetos en conjuntos de datos del mundo real.
VQA y tareas relacionadas#
La descripción de imágenes describe una imagen completa sin que se formule ninguna pregunta, mientras que VQA responde a una pregunta concreta. La localización visual devuelve la ubicación del objeto al que se refiere una frase, a menudo mediante una caja delimitadora, mientras que VQA responde a una pregunta sobre ese objeto. El reconocimiento óptico de caracteres (OCR) proporciona el texto por el que preguntan las preguntas del tipo TextVQA, y el razonamiento visual es la inferencia de varios pasos que requieren preguntas compositivas como las de GQA. La respuesta a preguntas basada solo en texto utiliza un pasaje en lugar de píxeles.
Aplicaciones#
La tecnología de asistencia es el uso más claro. En 2023, Be My Eyes añadió Be My AI, basado en GPT-4 de OpenAI, para que las personas ciegas o con baja visión puedan fotografiar una etiqueta, una pantalla o una calle y hacer preguntas sobre ella. Los equipos de comercio minorista y fabricación preguntan a los VLM sobre fotos de estanterías o imágenes de inspección en lugar de entrenar un clasificador para cada pregunta. En sanidad, la investigación sobre VQA médica aborda preguntas como «¿Hay una fractura?» sobre radiografías y tomografías computarizadas; es una forma de análisis de imágenes médicas que VQA-RAD evalúa con preguntas redactadas por profesionales clínicos mientras observan las imágenes.










