Visual Question Answering (VQA)
视觉问答 (VQA) 是回答有关图像的自然语言问题的任务。介绍 VQA 模型的工作原理、重要基准和评分方法。
视觉问答(VQA)是一项根据图像回答自然语言问题的任务,例如“公交车是什么颜色的?”“有多少人在等候?”或“炉子开着吗?”。系统会同时接收图像和问题并返回简短答案,因此必须理解问题、找到图像中的相关部分并将两者结合起来,这使 VQA 成为多模态 AI的标准测试。Virginia Tech 和 Microsoft Research 的 Stanislaw Antol 及其同事在 ICCV 2015 上提出了这项任务及其首个大型基准VQA 数据集:约 25 万张图像(大多来自 COCO)、76 万个开放式问题,每个问题有 10 条人工答案,总计约 1000 万条答案。
VQA 模型的工作原理#
VQA 模型使用卷积神经网络 (CNN)或视觉 Transformer (ViT)对图像进行编码,使用语言模型对问题进行编码,然后融合两者。早期模型会将全局图像特征与 LSTM的问题向量融合,并将回答视为在最常见的几千种答案中进行分类。随后,注意力机制让问题能够决定关注图像的哪个位置:Peter Anderson 及其同事提出的自下而上与自上而下模型赢得了 2017 年 VQA 挑战赛;该模型会关注目标检测模型提出的区域,因此面对“公交车是什么颜色?”时可以聚焦公交车框。当前的视觉语言模型 (VLM)会通过语言模型生成开放式回答,并使用图像-问题-答案数据进行视觉指令微调。
基准与语言先验问题#
早期 VQA 模型的高分在一定程度上来自忽略图像。许多问题仅凭措辞就能猜出答案,例如“有没有……”通常回答“有”,而“什么运动是……”往往回答“网球”。Yash Goyal 及其同事在 CVPR 2017 发布的 VQA v2,通过为每个问题配对两张答案不同但相似的图像来应对这些语言先验,因此模型必须查看图像才能取得好成绩。后续数据集各自针对不同技能:
- VizWiz: 由盲人针对自己用手机拍摄的照片提出的 31,000 多个问题,其中许多照片模糊不清或构图欠佳。
- TextVQA: 需要读取场景中文字的问题,例如球衣上的号码或店面招牌上的名称。
- GQA: 根据场景图生成的组合式问题,例如“盘子左边的杯子是玻璃做的吗?”。
- OK-VQA: 需要外部知识的问题,例如某种菜肴源自哪个国家。
- VQA-RAD: 由临床医生针对 315 张放射影像撰写的 3,515 个问题,由美国国家医学图书馆创建。
由于人们对正确答案的表达方式各不相同,VQA 基准会根据 10 位人工标注者中给出该答案的人数来评分:将 3 个或更多匹配视为完全正确,并对每个由 9 位标注者组成的子集取平均值:
# 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}")对于“red”,系统得分为 1.00;对于“red and white”,得分为 0.60;对于“orange”,得分为 0.30;对于“blue”,得分为 0.00:即使只有一位标注人员给出了某个答案,该答案仍能获得部分分数,而没有人给出的答案则不得分。结果会按是非题、数字题和其他答案类型分别报告;数字题的得分始终最低,因为计数要求准确找到每一个实例,而且每个实例只能计算一次。检测器可以直接回答计数问题:YOLO26会为每个对象返回一个框,因此在它的预测结果中,“person”框的数量就能回答“图片里有多少人?”,适用于 COCO 的 80 个类别中的任意类别。对于该列表之外的类别,视觉语言模型也能返回框,而 VLM Leaderboard会衡量它们在真实世界数据集中检测对象的准确度。
VQA 与相关任务的比较#
图像描述无需提问即可描述整张图像,而 VQA 则回答一个有针对性的问题。视觉定位会返回短语所指目标的位置,通常以边界框表示;VQA 则返回有关该目标的答案。光学字符识别(OCR)会提供 TextVQA 类问题所询问的文字,而视觉推理则是 GQA 等组合式问题所需的多步骤推断。纯文本问答依据的是段落,而不是像素。
应用场景#
辅助技术是最明显的应用场景。Be My Eyes 于 2023 年推出基于 OpenAI GPT-4构建的 Be My AI,让盲人和低视力用户能够拍摄标签、屏幕或街道并提出相关问题。零售和制造团队会直接向 VLM 询问货架照片或检测图像,而不必针对每个问题训练分类器。在医疗保健领域,医学 VQA 研究会针对 X 光片和 CT 扫描回答“是否存在骨折?”等问题;VQA-RAD 会使用临床医生在查看图像时提出的问题,评估这类医学图像分析能力。










