视觉问答(VQA)是人工智能和机器学习中的一个研究领域,它结合了计算机视觉和自然语言处理。该任务涉及提供一张图像以及关于该图像的自由形式、开放式问题,系统必须生成自然语言的正确答案。VQA被认为是一个具有挑战性的问题,因为它不仅需要物体识别和场景理解,还需要推理、常识知识以及将语言锚定在视觉内容中的能力。它作为评估多模态AI系统能力(尤其是基于深度学习架构的系统)的核心基准。
VQA任务在2015年由弗吉尼亚理工大学、微软和多伦多大学的研究人员发布VQA数据集时被正式确立。原始数据集VQA v1包含来自Microsoft COCO数据集和抽象场景的超过20万张图像,配对了超过76万个问题和1000万个答案。每张图像有三个问题,每个问题有来自人工标注者的十个真实答案。该数据集旨在要求一系列技能,从简单的计数和颜色识别到关于空间关系和活动的更复杂推理。后续版本VQA v2于2017年发布,通过平衡每种问题类型的答案来解决语言偏差,确保模型不能仅依赖先验知识。
架构与方法
早期的VQA系统使用卷积神经网络(CNN)进行图像特征提取,以及循环神经网络(RNN)或长短期记忆网络(LSTM)进行问题编码。这些特征随后被融合,通常通过逐元素乘法或拼接,并通过分类器从固定词汇表中预测答案。一个著名的早期模型是数据集创建者提出的“VQA基线”,它使用词袋问题表示和VGGNet图像编码器。
随着Transformer架构的出现,VQA模型转向基于注意力的机制。多头注意力机制允许模型根据问题词动态关注相关图像区域。编码器-解码器框架成为标准,图像和问题被联合编码,答案以自回归方式生成。最近,大规模预训练模型(例如基于大型语言模型骨干的模型)已被微调用于VQA,利用图像-文本对的跨模态预训练。这些模型通常使用交叉注意力层来对齐视觉和文本标记。
关键数据集与基准
除了原始的VQA v1和v2,其他几个数据集扩展了任务的范围。Visual Genome数据集于2016年发布,提供了对象、属性和关系的密集标注,支持更具组合性的问答。GQA数据集于2019年推出,专注于推理和组合性问题,并采用平衡分割以减少偏差。CLEVR数据集来自2017年,使用合成3D形状测试系统性推理,需要多步推断。对于实际应用,VizWiz数据集于2018年收集了来自盲人用户的问题,呈现了一个更实用但嘈杂的环境。OK-VQA数据集于2019年发布,强调需要图像内容之外的外部知识的问题。
评估指标
VQA模型通常使用准确率进行评估,如果预测答案与十个真实答案中的至少三个匹配,则视为正确。该指标称为VQA准确率,旨在处理开放式答案的主观性。对于多项选择变体,使用标准准确率。最近的基准还报告一致性和接地指标,例如模型的注意力是否与相关图像区域对齐。VQA v2排行榜一直是标准参考,尽管许多现代模型在多个数据集上报告结果以展示泛化能力。
挑战与局限性
VQA中的一个主要挑战是语言偏差,即模型利用训练数据中的统计规律而不是真正理解图像。例如,模型可能对任何计数问题回答“2”而不查看对象。VQA v2数据集专门设计用于通过确保每种问题类型具有平衡的答案集来缓解这一问题。另一个挑战是组合泛化,即模型在未见过的组合概念的问题上失败。外部知识也难以整合,因为许多问题需要常识推理或图像中不存在的事实信息。最后,对对抗性扰动和分布偏移的鲁棒性仍然是一个开放问题,因为模型容易被图像或问题的微小变化所欺骗。
应用与未来方向
VQA在辅助技术中有实际应用,例如帮助视障用户理解周围环境,如VizWiz项目所示。它还用于人机交互、医学成像(例如回答关于X射线的问题)以及基于内容的图像检索。未来方向包括通过结合符号组件的神经网络架构改进推理能力,整合生成式AI模型以获得更详细和开放式的答案,以及开发捕捉语义等价性的更好评估指标。截至2020年代中期,最先进的模型通常利用网络规模数据的大规模预训练,但它们仍然在细粒度空间推理和稀有物体识别方面存在困难。