Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

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 则返回有关该目标的答案。光学字符识别(OCR)会提供 TextVQA 类问题所询问的文字,而视觉推理则是 GQA 等组合式问题所需的多步骤推断。纯文本问答依据的是段落,而不是像素。

应用场景#

辅助技术是最明显的应用场景。Be My Eyes 于 2023 年推出基于 OpenAI GPT-4构建的 Be My AI,让盲人和低视力用户能够拍摄标签、屏幕或街道并提出相关问题。零售和制造团队会直接向 VLM 询问货架照片或检测图像,而不必针对每个问题训练分类器。在医疗保健领域,医学 VQA 研究会针对 X 光片和 CT 扫描回答“是否存在骨折?”等问题;VQA-RAD 会使用临床医生在查看图像时提出的问题,评估这类医学图像分析能力。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来