探索视觉问题解答 (VQA):多模态人工智能如何结合计算机视觉和 NLP 来回答基于图像的问题,以及关键方法和实际应用案例。
视觉问答(VQA)是一项具有挑战性的多学科任务,处于计算机视觉(CV) 与自然语言处理(NLP)的交叉领域。与标准图像分类系统仅为图片分配标签不同,VQA系统旨在通过自然语言回答关于图像的开放式问题。 例如,当呈现一张街景照片时,用户可能提问:"消防栓旁边的汽车是什么颜色?"要正确作答,人工智能必须理解问题本质,定位提及的物体(汽车、消防栓),理解其空间关系(旁边),并识别具体属性(颜色)。
该能力使视觉问答(VQA)成为现代多模态人工智能的基石,因为它要求模型同时对不同类型的数据进行推理。系统通常采用视觉编码器(如卷积神经网络(CNN)或视觉变换器(ViT))来解释视觉特征,以及文本编码器来处理语言查询。这些输入随后通过融合技术(通常借助注意力机制聚焦相关信息)进行整合。 或 Transformer ViT))来解读视觉特征,并通过文本编码器处理语言查询。随后运用融合技术整合这些输入,通常借助注意力机制聚焦图像中与问题词汇对应的关键区域。
动态查询视觉数据的能力为各行各业开辟了广阔的可能性。
尽管存在端到端的视觉问答模型,但许多实际管道仍依赖于稳健的物体检测作为基础步骤。检测器负责识别和定位物体,为问答引擎提供必要的上下文信息。
例如,你可以使用YOLO26来提取物体类别和位置信息,这些信息随后可输入语言模型或专用推理模块。
from ultralytics import YOLO
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Run inference on an image to detect objects
# VQA systems use these detections to understand scene content
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Print detected classes (e.g., 'bus', 'person') which answer "What is in the image?"
for r in results:
print(r.boxes.cls) # Class indices
r.show() # Visualize the context
区分视觉问答(VQA)与其他视觉-语言任务对于理解其独特作用至关重要。
现代研究常利用VQA数据集等大规模数据集来训练这些模型,使其能够在数百万张图像-问题配对中实现泛化能力。随着大型语言模型(LLMs)的持续演进,视觉问答能力正日益被直接整合到基础模型中,纯视觉任务与纯语言任务之间的界限正日益模糊。
