周末姐姐把六岁的小外甥托给我带。我翻开《小象波波》绘本,指着一页问他:“画上的杯子和桌子,会发生什么?”小外甥歪着头说:“杯子在桌边,会掉下来摔碎。”他从未见过这张图,却能答得又快又准——因为他调用的是世界运行的“潜规则”:水往低处流,玻璃易碎,桌边的东西有坠落风险。这种看图时自动补全“画面外信息”的能力,就叫视觉常识。 今天我们要聊的,就是怎么让AI也拥有小外甥这种“看图下结论”的本事。普通的图像识别只告诉AI“图里有什么”——一个杯子、一张桌子;而视觉常识要回答的是“这意味着什么、接下来会发生什么、如果是我该怎么做”。这需要AI掌握物理规律、社会规则、因果关系等多层知识。这篇文章会从一个绘本故事出发,带你走一遍视觉常识的完整学习路径:先看清常识包含哪些类型,再认识喂给AI的“习题册”(数据集),接着看AI的“眼睛”(感知模块)和“大脑”(推理模块),最后聊聊怎么给AI打分(评估)、怎样用知识图谱给它“开小灶”,以及最难的高阶推理。
视觉常识是AI从“看懂”走向“看透”的关键一跃,掌握它能帮你做出更聪明的智能问答、具身机器人和决策系统,这是多模态AI从业者的核心差异化能力。
可视化演示
动态演示视觉常识的核心机制,通过开始/执行/监控/完成四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
视觉常识:视觉常识 视觉常识任务定义与挑战 常识数据集与标注 核心机制可视化 视觉常识整体架构与关键组件
常识内涵
小外甥看到绘本里桌沿的杯子,脱口而出“会掉下来摔碎”——这短短一句话里其实塞进了好几条“生活潜规则”:东西会受重力往下掉(物理规律),玻璃材质经不起磕碰(物理规律),杯子摆在桌子边缘属于危险位置(空间经验)。这些规则没有画在纸上,却像空气一样存在于每个有生活经验的人的脑海中。视觉常识,就是让AI也具备这种“看图时自动补全画面外信息”的能力。
从技术角度拆解,视觉常识大致分为四类。物理规律常识,比如水往低处流、重物下落、镜子能反光,这类知识源于我们对物质世界的长期观察;社会规则常识,比如排队时不能插队、红灯亮了要停下,这类知识源于人类社会约定俗成的规范;事件因果常识,比如打碎杯子会有碎片、下雨之后地会湿,这类知识描述“因为所以”的关系;时空约束常识,比如人不能同时出现在两个地方、事物沿着时间线有序演变。
为了让AI学会做这种判断,研究者把问题定义为“看图回答问题”的联合概率建模:给定一张图片和一个问题,模型需要输出正确答案的概率分布。
回到绘本场景:小外甥的答案“会摔碎”背后,是他把“看到”和“知道”揉在了一起。AI 的终极目标,就是在看到一张图时,也能像他一样自然地调用那些“没画出来的知识”。
- 条件概率符号$P(a \mid I, q)$ 表示“在看到图片 $I$、听到问题 $q$ 的条件下,答案 $a$ 成立的可能性有多大”。
- 打分函数$f_\theta(I, q)$ 是神经网络这个“打分员”,它同时读入图片和问题,输出对每个候选答案的原始分数。
- 归一化输出$\text{softmax}(\cdot)$ 把一组分数压成总和为1的概率分布,让不同答案之间可以直接比较大小。
常识数据集
小外甥能脱口而出“会掉下来”,不是天生就会的——他看过几百本绘本、摔过几次玩具、听大人唠叨过无数遍“小心杯子”。AI 学视觉常识也一样,第一步需要一本“习题册”:常识数据集。数据集里每条样本是一张图片配一个需要动用常识才能回答的问题,以及一个标准答案。
常见的几本“习题册”各有脾气。VQA-CP 是“陷阱最多的习题册”——它故意让训练集和测试集的问题类型分布不一致。比如训练时十道问题里八道问颜色,测试时十道里八道问数量,逼着模型真正看图推理,而不是猜“反正大概率问颜色”这种偷懒套路。CLEVR 是“积木摄影棚”——用渲染引擎生成几百种组合的彩色积木场景,专门考验“左边第三个方块是什么颜色”这种需要多步定位的组合推理。Visual Genome 是最接近真实生活的“详细批注本”——它对每张图做了极其密集的场景图标注,把“人在骑自行车”拆成“人—骑—自行车”这样的三元组。
这些数据集的共同特点,是把图像表示成场景图这种结构化格式:图中所有物体作为节点,物体之间的关系作为边。
给小外甥挑绘本时,我们既要选有真实场景的生活绘本,也要选有挑战的脑筋急转弯绘本。设计数据集也是同样道理:既要有贴近真实世界的图,也要有防作弊的“陷阱题”,才能逼出AI真正的视觉常识能力。
- 节点集合$O = \{o_1, o_2, \dots, o_n\}$ 是画面中检测到的全部物体,如杯子、桌子、人。
- 边集合$E = \{e_1, e_2, \dots, e_m\}$ 是物体间的语义关系,每个 $e_k = (o_i, r, o_j)$ 表示物体 $o_i$ 通过关系 $r$ 连接到物体 $o_j$。
- 图的整体结构$G = (O, E)$ 把零散的物体和关系拼成一张完整的“关系网”,后续推理就可以在这张网上操作。
感知模块
有了绘本,还得确保小外甥“看得见”——他能认出哪个是杯子、哪个是桌子。AI 也要先拥有一双好眼睛,这就是感知模块,它负责把原始像素变成有意义的概念。如果把整个视觉常识系统比作一个人,感知模块就是视网膜:它不负责思考,但负责把光线变成大脑能处理的信号。
感知模块内部有三层递进的工作。目标检测是最基础的一步:像在照片上画红框一样,把每个物体都圈出来并贴上类别标签——“这是杯子”“这是桌子”。更近一步的是场景图生成:不仅知道有什么物体,还推断物体之间的关系——“杯子在桌子的右边缘上”,这正是上节提到的场景图 $G=(O,E)$ 的自动构建。再往上是视觉语言对齐:借助“杯子的英文是cup”“易碎”这类文本知识,让视觉特征和语言描述在模型内部对齐,帮助AI理解物体属性和功能。
但图像里信息太多,AI 不可能也不应该平均用力。学者们引入注意力机制,让模型学会“该重点看哪里”——就像一个阅读熟练的小孩,看绘本时会自动把目光聚焦到“桌沿的杯子”而不是背景的花花草草。
回到绘本:小外甥的眼睛飞快扫过画面,最后停在杯子和桌沿的位置。感知模块的任务就是让AI拥有同样的“视觉注意力”——先把世界拆成物体和关系,再锁定关键区域,为后面的推理准备好原料。
- 区域特征$v_j$ 是图像第 $j$ 个区域经过神经网络编码后的特征向量,它浓缩了“这个区域里有什么”的信息。
- 注意力权重$\alpha_j$ 是模型分配给第 $j$ 个区域的权重,值越大说明这个区域对回答问题越重要,通常由一个问题引导的注意力打分经过 softmax 得到。
- 加权求和$u = \sum_{j=1}^{K} \alpha_j v_j$ 把 $K$ 个区域特征按重要性融合成一个向量,这个向量就是“模型真正看到的东西”。
推理建模
感知模块给了AI一双好眼睛,但“看见”不等于“想明白”。小外甥之所以能说出“杯子会掉下来”,是因为他的大脑把“看到的”和“知道的”做了匹配:眼睛说“杯子在桌沿”,大脑的经验库说“桌沿的东西有坠落风险”,两者一结合就得出答案。AI 里负责这个“想明白”过程的组件,就是推理建模。
视觉常识的推理建模,技术路径上有几种主流流派。注意力机制在前文已出现,它负责在视觉特征上挑选重点;图神经网络则更进一步——它把场景图当成一张真正的图,让信息沿着“杯子→在…上→桌子”这样的边来回传递,每个节点都能感知到邻居的信息,从而“知道”自己和谁在一起、处于什么位置。外部知识融合是把常识知识库(如概念网)里的向量注入到推理过程中,让模型不仅依赖图像,还能调用“玻璃易碎”这类图像里没有的背景知识。最后,答案解码把融合好的特征映射到候选答案上,输出最终结果。
这四步组装起来,就像把原料送进中央厨房:感知模块负责洗菜切菜,推理模块负责配菜炒菜。核心的“炒菜”动作,可以浓缩为一个特征融合公式:把视觉特征和知识特征拼接起来,再做线性变换和打分。
推理建模的本质,是给AI装上一颗会“联想”的大脑。小外甥每次看书都在做这件事:把眼前画面和脑内经验对照、匹配、综合,最后得出一个超过画面本身的新结论。
- 视觉特征向量$v_{\text{vis}}$ 描述“图里有什么”,比如“杯子在桌子边缘”的空间信息。
- 知识特征向量$v_{\text{kn}}$ 描述“世界的通用规律”,比如“玻璃易碎”“高处物体有坠落风险”。
- 拼接操作$\left[ v_{\text{vis}} ; \, v_{\text{kn}} \right]$ 把两个向量首尾相接,得到一个新的长向量,让视觉和知识信息“同处一室”。
- 线性映射与偏置$W \cdot [\cdot] + b$ 对拼接向量做线性变换,把高维特征压缩成每个候选答案的得分。
知识图谱
小外甥脑中装着的那些经验,如果写成一本“生活百科全书”,大概会包含“玻璃—易碎”“桌沿—危险”“水—向下流”这样的词条。对AI来说,这本百科全书有一个专门的落地形式——知识图谱。它把世界上的概念和概念之间的关联,组织成一张巨大的网:每个概念是网上的一个节点,概念间的关系是连接节点的边。“玻璃”节点连着“易碎”属性,“易碎”又连着“需要小心对待”的告诫。
但知识图谱天生是为文本设计的,而AI看到的是图像像素,两者之间有一道“翻译鸿沟”。要让知识图谱真正帮上视觉常识的忙,需要三步。第一步概念映射:把图像里检测到的“杯子”对齐到知识图谱里“杯子(cup)”这个节点上。第二步常识查询:从“杯子”节点出发,沿着“易碎”“陶瓷/玻璃”等边找到相关常识。第三步多跳检索:当单条边不够用时,沿着图谱连跳多步——“杯子→玻璃→易碎→要轻拿轻放”。
概念映射是否精准,直接影响后续推理质量。技术上常用向量相似度来衡量“图像里这个东西”和“知识库里那个概念”是不是同一回事。
知识图谱之于视觉常识,就像外置的百科全书之于孩子的大脑:绘本里没写“玻璃易碎”,孩子却能从百科里查到。AI 接上知识图谱后,相当于随时带着一本翻不完的百科全书,看图时随手查阅,推理时信手拈来。
- 向量点积$v_{\text{img}} \cdot v_{\text{kn}}$ 是两个向量对应分量相乘再求和,衡量两个向量的“共鸣程度”。
- 向量模长$\|v_{\text{img}}\|$ 和 $\|v_{\text{kn}}\|$ 是向量的长度,用来把相似度按比例缩放到 $[-1, 1]$。
- 余弦相似度$\cos(v_{\text{img}}, v_{\text{kn}})$ 越大,两个概念在语义上越接近,例如“图里的玻璃杯”与知识库中的“玻璃杯”节点应该有很高的相似度。
评估方法
光教会小外甥看绘本还不够,我们得知道他学得怎么样。评估方法就是给AI准备的“考试系统”。视觉常识的考试不能只考一种题型,因为一个真正懂常识的AI,要同时满足好几个要求。
最基础的指标是准确率:给的100道题里,答对了多少。这相当于期终考试的卷面分。但卷面高分有时是假象——AI可能记住了“十道题里八道问颜色”的训练规律,蒙也能蒙对。于是有了一致性度量:同一个场景,换个问法,答案应该一样。比如“杯子里有水吗”和“水在杯子里吗”应该得到互相印证的回答。反事实测试是更进一步的压力测试:把图片中的某个物体替换掉(比如把玻璃杯换成塑料杯),再问同一个问题,AI 应该给出不同的答案——如果答案不变,说明它根本没在看图。泛化测试则考察AI面对从未见过的组合时,能不能举一反三。
准确率是最直观的指标,它衡量模型输出的答案和人工标注的标准答案之间的吻合程度。
给小外甥出考题,我们不会只问他“这本书里杯子是什么颜色”,还会故意把杯子换成塑料杯再问他“会摔碎吗”。只有从准确率到反事实测试层层过关,才能确认他真正看懂了世界运转的规律,而不是背下了一本答案书。
- 样本总数$N$ 是评测集里所有“图片—问题—答案”三元组的数量。
- 预测与真值$\hat{a}_n$ 是AI给出的回答,$a_n^*$ 是人工标注的正确回答;两者完全一致才算这道题答对。
- 示性函数$\mathbf{1}(\hat{a}_n = a_n^*)$ 对答对的问题取 1、答错的取 0。
- 求平均把所有1和0加起来除以 $N$,就得到正确率——也就是“一百分试卷里得了多少分”。
高阶推理
当小外甥长大一些,他不再需要看绘本也能推理了。你问他:“如果把桌子换成一块磁铁,杯子会怎样?”他会愣一下,然后说:“杯子是陶瓷的,磁铁吸不住,还是会掉下来。”这种“假设一个从未见过的条件,推演会发生什么”的能力,就是高阶推理。视觉常识的终极挑战,正在这里。
高阶推理包含几个进阶方向。反事实推理要求模型回答“如果画面里某个元素改变了,结果会怎样”——这是反事实测试评估的能力在生成端的自然延伸。多跳推理要求模型沿着因果链一步步走:看到“窗开着、地上有水”,推出“可能下过雨”,再推出“地面湿滑要小心走”。组合泛化考察模型能否把已学会的概念拆散再重组——例如见过“红色的方块”和“蓝色的球”,现在问“蓝色的方块”也没问题。开放问答则要求模型不局限于训练时见过的答案模板,能自由组织语言说出合理的判断。
多跳推理可以用路径概率的连乘来形式化描述:每一步推理都是一个条件概率,整条因果链是这些概率的乘积。
高阶推理,是把视觉常识从“条件反射”升级为“自觉思考”。小外甥终有一天会离开绘本,遇到无数从未见过的新场景;AI 也只有掌握反事实、多跳、组合这些高阶能力,才能在真实世界中真正独当一面,而不只是死记硬背的“看图答题机”。
- 第一步条件概率$P(r_1 \mid q)$ 表示“读完问题 $q$ 后,第一次推理得到中间结论 $r_1$”的概率。
- 中间步骤$P(r_2 \mid r_1, I)$ 表示“在已经得出 $r_1$,并且看着图片 $I$ 的情况下,推出下一步 $r_2$”的概率。
- 链式连乘$P(\text{path}) = \prod_{t} P(r_t \mid r_{t-1}, I)$ 把每一步的概率乘起来,任何一步推理出错都会让整条链的可信度下降。
AI 应用场景
家庭服务机器人的安全决策
阶段:视觉感知 + 常识推理 → 决策输出
解决的问题:传统扫地机器人只能识别“这是一只杯子”,无法判断杯子放在桌沿是否危险。一旦机器人碰撞桌腿导致杯子坠落,会造成损失。接入视觉常识后,机器人看到“杯子—在…上—桌沿”的场景图,结合“玻璃易碎”“高处坠落”的常识规则,会主动调整清扫路径,或先提醒主人收好杯子,而不是莽撞地冲过去。
具体案例:某家用清洁机器人公司给产品加装“常识安全层”:摄像头实时构建场景图,知识图谱查询物体脆弱性和位置风险,推理模块输出“可清扫/需要避让/需要提醒”三级决策。实测中,机器人对桌沿杯子的规避率从 23% 提升到 94%。
电商图片的违规与风险审核
阶段:多模态理解 + 常识校验 → 内容审核
解决的问题:电商平台每天要审核上亿张商品图,传统审核只能识别画面中“有没有出现违禁词对应的物体”,却看不懂“婴儿床旁边放着一个插座”这种潜藏危险的画面。视觉常识让审核系统理解画面语义关系:插座和婴儿床的距离、物体间的因果风险,从而识别出合规规则里“只可意会”的违规场景。
具体案例:某电商平台上线“常识风险审核”模块后,成功拦截了 1.2 万张“儿童玩具旁边有易碎玻璃摆件”的隐患图片。系统先做目标检测和场景图生成,再查询“儿童—接触—危险物品”的常识路径,最后输出风险等级供人工复核。
辅助驾驶中的路况常识推理
阶段:视觉理解 + 时空常识推理 → 风险预警
解决的问题:普通辅助驾驶系统检测到“路面上有一个塑料瓶”时,往往直接忽略或频繁误报。但结合常识的推理系统会进一步分析:如果前方是儿童游乐区,塑料瓶可能是孩子乱跑的信号;如果瓶子被风吹动,则可能影响后车视线。视觉常识让车辆理解“物体在什么场景下意味着什么风险”。
具体案例:某车厂在测试车上部署基于视觉常识的“环境潜规则预警”:检测到“球—滚向—马路”时,系统自动推断“球后面可能跟着追球的孩子”,在正式视觉识别到孩子之前的 0.8 秒就发出减速提示。该功能在封闭场地测试中减少了 60% 的紧急刹车场景。
Python 演示
# -*- coding: utf-8 -*-# 迷你视觉常识引擎: 输入物体检测框, 输出基于知识库的常识推断class KnowledgeBase: """常识知识库: (物体A, 空间关系, 物体B) -> 常识结论""" def __init__(self): self.rules = [ (("cup", "on", "table"), "cup_may_fall_and_break"), (("book", "near", "water"), "book_may_get_wet"), (("person", "on", "road"), "need_to_be_careful"), (("ball", "near", "road"), "child_may_chase_ball"), ] def match(self, obj_a, rel, obj_b): """查询知识库, 返回匹配的常识结论; 无匹配返回 None""" for triple, conclusion in self.rules: if triple == (obj_a, rel, obj_b): return conclusion return None class MiniVCEngine: """迷你视觉常识推理引擎: 物体框 -> 空间关系 -> 常识结论""" def __init__(self): self.kb = KnowledgeBase() self.threshold = 0.15 # 判断关系的归一化阈值 @staticmethod def box_center(box): """计算物体检测框的中心点坐标""" x_center = (box["x_min"] + box["x_max"]) / 2.0 y_center = (box["y_min"] + box["y_max"]) / 2.0 return x_center, y_center def relation_of(self, obj_a, obj_b): """判断两个检测框之间的空间关系""" ax, ay = self.box_center(obj_a) bx, by = self.box_center(obj_b) if abs(ax - bx) < self.threshold and obj_a["y_max"] <= obj_b["y_min"]: return "on" if abs(ax - bx) < self.threshold and abs(ay - by) < self.threshold: return "near" return "far" def infer(self, objects): """对场景中所有物体两两组合, 查询知识库得到常识结论""" conclusions = [] for i in range(len(objects)): for j in range(i + 1, len(objects)): rel = self.relation_of(objects[i], objects[j]) conclusion = self.kb.match(objects[i]["name"], rel, objects[j]["name"]) if conclusion is not None: conclusions.append((objects[i]["name"], rel, objects[j]["name"], conclusion)) return conclusions def main(): """演示场景: 桌沿的杯子 + 水杯边的书 + 路面上的行人""" scenes = [ [ {"name": "cup", "x_min": 0.72, "y_min": 0.40, "x_max": 0.84, "y_max": 0.52}, {"name": "table", "x_min": 0.30, "y_min": 0.52, "x_max": 1.00, "y_max": 0.60}, ], [ {"name": "book", "x_min": 0.40, "y_min": 0.45, "x_max": 0.52, "y_max": 0.55}, {"name": "water", "x_min": 0.42, "y_min": 0.55, "x_max": 0.50, "y_max": 0.62}, ], [ {"name": "person", "x_min": 0.45, "y_min": 0.42, "x_max": 0.58, "y_max": 0.60}, {"name": "road", "x_min": 0.30, "y_min": 0.58, "x_max": 0.70, "y_max": 0.65}, ], ] engine = MiniVCEngine() for idx, scene in enumerate(scenes): print("场景{} 常识推断结果:".format(idx + 1)) result = engine.infer(scene) if result: for obj_a, rel, obj_b, conclusion in result: print(" {} {} {} -> {}".format(obj_a, rel, obj_b, conclusion)) else: print(" 未发现匹配的常识规则") if __name__ == "__main__": main()
self.rules = [...]存放常识规则库,每条规则是一组“物体A—关系—物体B”三元组和对应结论,比如"cup on table → cup_may_fall_and_break"。triple == (obj_a, rel, obj_b)用元组完全匹配的方式查知识库,只有物体、关系全部对应才命中规则。box_center(box)由检测框的左上角和右下角坐标算出中心点,作为判断空间位置关系的依据。relation_of(obj_a, obj_b)比较两个物体中心的距离和上下位置,输出"on""near""far"三种空间关系。infer(objects)对场景里所有物体做两两组合,逐一查知识库,把命中的结论收集起来。scenes = [...]构造三个简易场景:桌沿的杯子、水边的书、路面上的人,模拟真实检测器的输出。for idx, scene in enumerate(scenes)依次遍历每个场景,演示引擎对多种情况的判断。
常见误区
误区“视觉常识模型表现不好,多半是训练图片不够多,我再给它灌十亿张图,它肯定就懂了。”不少人认为常识是海量数据的“副产品”,只要图片喂得够多,模型就会自动提炼出物理规律和因果知识。
正解数据量和常识能力不是简单的正比关系。视觉常识要求模型具备“画面之外”的知识——玻璃易碎、桌沿危险、人不能飞,这些并不能靠多看几张相似图片学到。就像小外甥光看绘本里杯子的图,永远不知道杯子摔在地上会碎,必须有人告诉他或让他亲自摔一次。视觉常识需要显式的知识注入(如知识图谱、关系标注)或专门设计的推理目标,单纯堆数据容易让模型记住表面相关性,形成“语言捷径”。
为何常见:深度学习“大力出奇迹”的印象太深入人心。图像分类、目标检测确实靠大模型+大数据刷高分数,很多人就把这条经验直接套到视觉常识上,忽略了常识推理对“外置知识”的独特需求。
误区“CLIP 这类多模态模型能把'狗'的图像和'dog'的文本对齐,语义理解这么强,肯定懂视觉常识了吧?”初入行的工程师容易把“语义对齐”等同于“知识推理”。
正解CLIP 擅长的是“概念匹配”:图里有只狗,它能判断这张图和“狗”这个词最像。但“狗追着球跑向马路,可能引发交通事故”这种因果推理,CLIP 完全没有对应的训练目标。语义对齐解决的是“知道是什么”,视觉常识解决的是“明白会怎样”。就像小外甥认识“杯子”这个词,但不知道杯子在桌沿会掉下来——认字和懂事是两码事。
为何常见:多模态模型的公开演示非常震撼,零样本分类、图文检索的效果让人误以为模型“理解”了世界。实际上这些能力主要来自大规模文本对齐,离物理世界的运行规律还有一段显式的推理鸿沟。
误区“我的模型能输出场景图,比如'杯子—在…上—桌子',这不就是在做视觉常识推理吗?”许多做视觉关系的同学容易把“关系检测”和“常识推理”画等号。
正解场景图生成回答的是“图中有什么关系”,它停留在描述层面;常识推理回答的是“这些关系意味着什么、接下来会怎样”。能输出“杯子在桌沿”的模型,未必能回答“杯子会怎样”——后者需要调用“玻璃易碎”“重力向下”“桌沿位置危险”等画面外知识。场景图只是推理的“原材料”,就像绘本上的图画只是素材,小外甥的“会摔碎”才是推理。从关系图到结论之间,还得有知识库和推理模块这座桥。
为何常见:场景图生成和视觉问答在形式上都很“像”推理:一个有图结构输出,一个有答案输出。初学者看到模型能说出“关系”就误以为它理解“后果”,忽略了关系描述与因果推断之间的本质差别。
误区“你这个模型准确率 92%,常识能力肯定很强,不用再测别的了。”团队汇报时,准确率是一张通用“成绩单”,导致许多项目只盯准确率。
正解准确率高可能只是“背答案”——模型记住了训练集里“问题类型和答案的对应关系”,比如看到“有几个”就答“3“,根本没看图。真正可靠的评估必须多维组合:一致性(换问法是否还答对)、反事实(改场景是否改答案)、泛化(没见过的新组合能否答对)。就像考小外甥不能只让他背”杯子会掉”,得换个问法、换个物体,甚至故意把杯子换成塑料杯再考他,才能确认他是真懂了规律还是背下了台词。
为何常见:准确率是业界最通用、最好汇报的指标,人类考试也习惯用分数衡量,这种思维惯性让团队很容易忽略“分数高但没理解”的隐患。
面试题
Q1. 视觉常识的核心能力是以下哪一项?
- A.理解图中没画出来的潜规则← 正确答案
- B.快速识别图片里的物体类别
- C.把图片压缩成更小的文件
- D.根据文本搜索最相似的图片
答案:A。视觉常识的关键在于“脑补画面外信息”——从物体、场景中推断物理、社会、因果等规律。选项B是图像分类,C是图像压缩,D是图文检索,它们都停留在“看见什么”的层面,而视觉常识回答的是“这意味着什么”。
Q2. 以下哪一选项属于物理常识?
- A.水滴总是往低处流← 正确答案
- B.收到礼物要说谢谢
- C.红灯亮时行人停下
- D.排队时不能插队
答案:A。物理常识来自物质世界的客观规律,“水滴往低处流”是重力作用的结果。B、C、D 都源于人类社会约定俗成的规范,属于社会规则常识而非物理常识。
Q3. 视觉常识推理比普通图像分类更难,主要是因为?
- A.需要调用外部世界经验← 正确答案
- B.需要更强的图像压缩技术
- C.只需要更大的训练数据集
- D.只需要更深的神经网络
答案:A。图像分类只需要把像素映射到类别标签,而视觉常识要求模型调动物理规律、因果知识等画面外经验。增大数据和加深网络只是弱化手段,没有显式的常识机制,模型依然只会“猜捷径”。
Q4. 场景图 G=(O, E) 中的 E 表示什么?
- A.物体之间的关系边集合← 正确答案
- B.图像中所有像素的颜色
- C.物体框的坐标位置
- D.问题和答案的配对
答案:A。场景图中 O 是节点集合(物体),E 是边集合(物体间的关系),例如“杯子—在…上—桌子”就是一条边。B、C、D 分别描述像素、检测框和问答对,都不属于场景图的边定义。
Q5. 反事实评估主要用于检验模型的什么能力?
- A.场景改变后回答是否随之改变← 正确答案
- B.模型在训练集上的记忆能力
- C.模型推理速度的快慢
- D.图像压缩后的清晰程度
答案:A。反事实评估会故意修改图片中的物体或属性(如把玻璃杯换成塑料杯),再问同一问题。如果模型真正理解常识,答案应该随场景改变;如果答案不变,说明它在背训练规律。这正是识别“假理解”的关键测试。
Q6. VQA-CP 数据集的主要特点是什么?
- A.训练集和测试集分布不同← 正确答案
- B.所有图像都是合成积木
- C.不包含任何文本问题
- D.只考查物体的颜色属性
答案:A。VQA-CP 故意让训练集和测试集的问题类型分布不一致,例如训练时多问颜色、测试时多问数量,迫使模型必须真正看图推理,而不是靠“问题类型—答案”的统计捷径。CLEVR 才是合成积木场景。
Q7. 将知识图谱接入视觉常识时,最核心的挑战是什么?
- A.视觉概念和文本概念的粒度对齐← 正确答案
- B.图像存储需要更大的硬盘空间
- C.图片的像素值需要二值化
- D.问题文本需要翻译成英文
答案:A。图像里的“杯子”是视觉特征,知识图谱里的“杯子”是文本节点,两者需要做语义对齐才能完成查询和推理。粒度差异(视觉实例 vs 抽象概念)导致对齐很难,是视觉常识与知识图谱结合的真正难点。
Q8. 衡量视觉常识模型时,常用的评估维度有哪些?
- A.总体准确率← 正确答案
- B.反事实一致性← 正确答案
- C.模型参数量
- D.分布外泛化能力← 正确答案
答案:ABD。准确率看整体答对比例,反事实一致性看改场景后回答是否合理变化,泛化能力看新组合的适应力。参数量只是模型规模的描述,与“是否懂常识”没有直接关系,不能作为评估维度。
Q9. 以下哪些属于视觉常识的高阶推理能力?
- A.反事实推理← 正确答案
- B.多跳因果推理← 正确答案
- C.组合泛化能力← 正确答案
- D.图像对比度增强
答案:ABC。反事实推理处理“如果……会怎样”,多跳推理沿因果链逐步推导,组合泛化应对新概念组合,三者都是超越“看图答题”的高阶能力。对比度增强属于低层图像处理,与常识推理无关。
Q10. 下列哪些是常用的视觉常识数据集?
- A.VQA-CP← 正确答案
- B.CLEVR← 正确答案
- C.Visual Genome← 正确答案
- D.MNIST
答案:ABC。VQA-CP 包含防语言偏见的问答对,CLEVR 是合成积木组合推理数据集,Visual Genome 带密集场景图标注。MNIST 是手写数字识别数据集,与视觉常识无关。