想象你站在人潮涌动的火车站大厅,朋友打来电话:“帮我找那个穿红色风衣、戴白色帽子、站在花店旁边的女生。” 你快速扫视全场——先在心里圈出几个“可能的人”,再看谁穿了红风衣、谁旁边有花店,最后锁定那个唯一的目标,伸手一指:“在那儿!” 这个看似轻松的过程,正是计算机视觉里一项核心任务:视觉 Grounding(视觉定位)。它让 AI 学会“听懂”一句人话,然后在图片里精准指出对应的目标区域。 视觉 Grounding 的输入是“一张图片 + 一句自然语言描述”,输出是“图片中目标区域的边界框”。它不像图像分类那样只说“图里有什么”,也不像目标检测那样只能框出预设类别的物体,而是理解灵活、开放的人类描述——“左边第二只猫”“桌上那杯冒热气的咖啡”。从智能相册的“帮我找去年夏天在海边戴草帽的照片”,到机器人听指令“拿起桌子左上角的蓝色杯子”,视觉 Grounding 正在成为图文两个世界之间的“翻译器”。 接下来,我们化身这位“车站寻人助手”,从任务定义、区域提议、跨模态对齐、指代消解、评测指标、代表模型到部署优化,一步一步学会如何用语言精准定位图中的目标。

岗位关联

学习视觉 Grounding,你将掌握图文对齐的核心技术路线,能直接支撑图像检索、智能相册、机器人视觉等真实产品的落地开发,是通往多模态大模型应用的关键一环。

目录
  1. 可视化演示
  2. 任务定义:一次“看图找人”
  3. 区域提议:先圈出可疑人选
  4. 跨模态对齐:让描述与画面“对上号”
  5. 指代消解:听懂“那个它”
  6. 评测指标:找得准不准
  7. 代表模型:三代寻人高手
  8. 部署优化:把寻人高手装进口袋
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示视觉Grounding的候选区域检测与定位、跨模态特征对齐机制、以及端到端模型架构的数据流动过程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+_captions.detect+'

任务定义:一次“看图找人”

假设你正站在火车站大厅帮朋友接人。朋友发来一句描述:“穿红色风衣、戴白色帽子、站在花店旁边的女生。” 你扫一眼人群,找到了她。如果把这句描述和人流画面一起交给计算机,要它自己圈出那个女生所在的位置——这个任务就叫视觉 Grounding。它要解决的核心问题是:让 AI 理解“人话”,并在图像中给出一个精准的边框(bounding box),把目标框出来。

与图像分类不同,分类只回答“图里有什么”;与目标检测也不同,检测只能识别预定义好的类别名单。视觉 Grounding 的描述是开放式的:“那本封面有帆船的书”“左边第二个穿黄衣服的孩子”——用户想说哪个,模型就得听懂哪个,再把坐标算出来。本质上,它要做的是图文对齐:把语言里的语义,落到画面里的空间位置上。

形式上,视觉 Grounding 的输入是一张图片 I 和一句自然语言查询 Q,输出是目标区域的边界框 r=(x,y,w,h)。几乎所有模型都把问题转化成“从候选区域集合里挑选最匹配的一个”:先枚举出若干候选框,再计算文本与每个候选的匹配分数,最后取分数最高者作为答案。

回到车站。你并不会从头到尾研究每一个乘客,而是先圈几个可疑人选,再逐个比对描述,最后指认。视觉 Grounding 的整个技术栈,都是围绕“圈候选、逐一对、选最优”这三步展开的。接下来,我们一步步拆解每一步是怎么做到的。

r^=arg max⁡r∈RS(Q,r)\hat{r} = \operatorname*{arg\,max}_{r \in \mathcal{R}} S(Q, r)
通俗说明:R 是“可疑人选名单”,S 是“像不像描述”的打分器,argmax 就是“选得分最高的那一个”。
  1. 候选集合 R图像中所有可能包含目标的边界框集合,由区域提议模块生成,就像你扫视人群时先在心中圈出的几个可疑人选。
    R={r1,r2,…,rN}\mathcal{R} = \{r_1, r_2, \ldots, r_N\}
  2. 打分函数 S(Q, r)计算描述 Q 与候选区域 r 的匹配程度,分数越高代表二者越吻合。
    S(Q,r)=⟨f(Q), g(r)⟩S(Q, r) = \langle f(Q),\, g(r) \rangle
  3. argmax 挑选遍历所有候选,选出得分最高的框作为最终预测结果。
    r^=arg max⁡r∈RS(Q,r)\hat{r} = \operatorname*{arg\,max}_{r \in \mathcal{R}} S(Q, r)

区域提议:先圈出可疑人选

在拥挤的候车厅里,你不会用数学家的严谨把每个人都打量一遍——你会先凭直觉锁定几片区域:花店门口、闸机旁、售票窗口。这个“先圈范围”的动作,对应到视觉 Grounding 里就是区域提议(Region Proposal)。它决定了后续匹配的质量:如果候选框根本没把目标包含进去,后面的步骤再努力也白搭。

早期方法用滑动窗口(sliding window)以不同尺寸、不同位置的小框扫过整张图,像拿着放大镜一格一格地找。这种办法简单但计算量巨大。后来出现了更聪明的做法:先用图像颜色、纹理等低级线索把相似的像素聚成“候选块”,再生成少量高质量的候选框,比如选择性搜索(Selective Search),把候选数量从几十万降到几千,这就是稀疏提议的思路——宁可少而精,也不滥而杂。

在深度学习时代,锚点(anchor)机制成为主流:在特征图的每个位置上预设多种尺寸与长宽比的锚框,再用一个轻量网络判断每个锚框“有没有东西、大概在哪”,筛掉绝大多数空白框,留下几百个高质量提议。两阶段模型(如 Faster R-CNN 系)正是靠这种“提议 + 精修”的方式工作的。此外,提议质量还受锚框尺寸设计与特征图分辨率影响,需要针对场景调优。

候选框就像你圈出的“可疑人群”。圈得太少可能漏掉目标,圈得太多又让后续比对分身乏术。区域提议的要义,就是在“不漏”与“不滥”之间找到平衡——这是视觉 Grounding 的第一道关。

跨模态对齐:让描述与画面“对上号”

有了几个候选人选,你要开始逐一比对:“红风衣?白帽子?站在花店旁边?” 人在比对时用的是对颜色、服饰、位置的直觉。AI 没有直觉,它的办法是把文字和画面都翻译成“同一个坐标系里的数字”,再比较数字之间的远近。

这个“翻译”过程就是跨模态对齐(Cross-modal Alignment)。视觉分支用一个视觉编码器(如 ResNet、ViT)把候选区域编码成向量 v;文本分支用一个文本编码器(如 BERT)把句子编码成向量 t。关键在于训练时让“红色的杯子”对应的文本向量,尽可能靠近“红色杯子图片区域”的视觉向量——两者被映射进同一个语义空间,这就是对齐训练的目标。

在同一个语义空间里,衡量两个向量“像不像”最常用的指标是余弦相似度:向量夹角越小,余弦值越接近 1,表示语义越一致。匹配分数直接由此产生。

对齐质量决定了“红风衣”这个词能不能真的被拽到红色像素旁边。跨模态对齐是视觉 Grounding 的灵魂,也是多模态大模型(如 CLIP、Grounding DINO)的底层能力——理解了它,你就理解了图文检索的基石。

sim⁡(v,t)=v⊤t∥v∥⋅∥t∥=cos⁡θ\operatorname{sim}(\mathbf{v}, \mathbf{t}) = \frac{\mathbf{v}^{\top} \mathbf{t}}{\|\mathbf{v}\| \cdot \|\mathbf{t}\|} = \cos \theta
通俗说明:把两个向量想象成从原点射出的两条箭头,夹的角越小越同向,代表“描述”和“画面”越契合。
  1. 视觉向量 v候选区域经过视觉编码器得到的特征向量,浓缩了颜色、形状、纹理等视觉属性。
    v=VisualEncoder(r)\mathbf{v} = \mathrm{VisualEncoder}(r)
  2. 文本向量 t查询句子经过文本编码器得到的语义向量,浓缩了目标及其属性的语义。
    t=TextEncoder(Q)\mathbf{t} = \mathrm{TextEncoder}(Q)
  3. 余弦夹角v 与 t 的点积除以二者模长的乘积,结果落在 [-1, 1],越接近 1 越匹配。
    sim⁡(v,t)=v⊤t∥v∥⋅∥t∥\operatorname{sim}(\mathbf{v}, \mathbf{t}) = \frac{\mathbf{v}^{\top}\mathbf{t}}{\|\mathbf{v}\| \cdot \|\mathbf{t}\|}

指代消解:听懂“那个它”

朋友继续补了一句:“她旁边还有一束玫瑰,帮我把那个也拍下来。” 这里的“那个”指玫瑰,而不是风衣女生。人类靠上下文轻松推断,但让计算机理解“它”“那个”“左边第二个”这类指代表达,需要专门的能力——指代消解(Referring Expression Comprehension)。

指代消解要处理的表达大致分三类:一是代词指代,“它”“她”“这个”需要结合前文或画面确定对象;二是相对位置,“左边的”“上面的”“离门最近的那个”,模型要理解空间关系;三是属性组合,“红色且圆形的”“穿黄衣服的”,要把多个限定词叠加起来锁定唯一目标。

实现上,现代模型通常把位置词与属性词直接拼进文本序列,让 Transformer 通过注意力机制隐式理解“左边”与画面坐标的对应关系,而不需要单独的外部规则。多轮对话场景还会把历史查询拼进上下文,让“它”能追溯到前一轮提到的目标——比如用户先说“找到那本蓝色书”,再问“它旁边的笔呢”,模型必须把“它”和“蓝色书”关联起来。

回到车站,“她旁边”“那个”这些词如果听不懂,你就会指错人。指代消解让视觉 Grounding 从“听懂名词”升级为“听懂人话”,是真实场景中体验差异最明显的环节。

评测指标:找得准不准

你给朋友指了一个位置,朋友说“对,就是她!” 但如果你的手指偏了半米,朋友就可能犹豫。计算机如何客观评价“找得准不准”?需要一个有刻度的尺子,这就是 IoU(Intersection over Union,交并比)。

模型输出一个预测框,人工标注了一个真实框。两个框的重叠程度就是定位精度的度量——重叠越多,框得越准。IoU 的定义是两个框交集面积与并集面积的比值,范围在 [0, 1]。

在实际评测中,最常用的指标是 Acc@0.5:预测框与真实框的 IoU ≥ 0.5 就算命中;对精度要求更高的场景还会用 Acc@0.75 甚至更严格阈值,这就是多阈值评测。把多张样本的正确率加起来,就得到模型在数据集上的总体表现。行业里常用 RefCOCO、ReferItGame 等数据集统一测评,同时还要考察模型在遮挡、光照变化下的鲁棒性。

尺子不同,答案就不同。如果你的智能相册只想“大概找到”,0.5 够用;要机器人精确抓起杯子,就得追求 0.75 以上。选对评测指标,等于选对了对“准”的定义。

IoU=∣Bpred∩Bgt∣∣Bpred∪Bgt∣\mathrm{IoU} = \frac{|B_{\mathrm{pred}} \cap B_{\mathrm{gt}}|}{|B_{\mathrm{pred}} \cup B_{\mathrm{gt}}|}
通俗说明:把两个框画在纸上,重叠部分除以总共覆盖的部分。完全重合为 1,完全错开为 0。
  1. 预测框 B_pred模型输出的目标边界框。
    Bpred=(xp,yp,wp,hp)B_{\mathrm{pred}} = (x_p, y_p, w_p, h_p)
  2. 真实框 B_gt人类标注的正确答案区域。
    Bgt=(xg,yg,wg,hg)B_{\mathrm{gt}} = (x_g, y_g, w_g, h_g)
  3. 交并比交集面积除以并集面积,两者完全重合时等于 1。
    IoU=Bpred∩BgtBpred∪Bgt\mathrm{IoU} = \frac{B_{\mathrm{pred}} \cap B_{\mathrm{gt}}}{B_{\mathrm{pred}} \cup B_{\mathrm{gt}}}

代表模型:三代寻人高手

同样是找人,有人习惯“先圈定几个可疑点,再逐个细看”,有人练就了一双“扫一眼就锁定”的火眼金睛。视觉 Grounding 的模型也按这个思路分成了几代。

两阶段方法(如 MAttNet)先由区域提议网络生成候选框,再对每个候选框做“图片 + 文本”的联合推理,优点是精度可控、可解释性强;缺点是推理较慢。单阶段方法跳过显式提议,直接在特征图上预测目标位置,速度更快,适合实时场景。

注意力架构改变了游戏规则:MDETR、TransVG 等模型让文本 token 与图像 patch 直接交互,不再依赖手工设计的区域提议,建模全局关系的能力更强。随后 GLIP、Grounding DINO 等模型把视觉 Grounding 与检测、分割统一起来,形成了“开放词汇”检测的新范式——只要语言能描述,模型就能定位。训练时通常联合优化分类与回归两个目标:

从“先圈再猜”到“边看边猜”,再到“全局理解”,三代模型对应着算力的提升与数据规模的扩大。选哪一代,取决于你的场景要精度还是速度。

L=Lcls+λ Lreg\mathcal{L} = \mathcal{L}_{\mathrm{cls}} + \lambda \, \mathcal{L}_{\mathrm{reg}}
通俗说明:分类损失负责“找对是哪个目标”,回归损失负责“把框调准”,λ 负责平衡两者。
  1. 分类损失衡量模型对“该候选与描述是否匹配”的判断错误。
    Lcls=−log⁡p(y∣Q,r)\mathcal{L}_{\mathrm{cls}} = -\log p(y \mid Q, r)
  2. 回归损失衡量预测框与真实框的位置偏差。
    Lreg=SmoothL1(b^, bgt)\mathcal{L}_{\mathrm{reg}} = \mathrm{SmoothL1}\big(\hat{b},\, b_{\mathrm{gt}}\big)
  3. 平衡权重调节两项损失的重要性,通常取 1 附近并配合任务调参。
    λ∈[0.5, 2.0]\lambda \in [0.5,\, 2.0]

部署优化:把寻人高手装进口袋

车站里最厉害的寻人高手,如果每指一次要思考十分钟,你也不会找他帮忙。模型再准,部署到真实产品时也要考虑速度、体积与功耗——尤其当它要跑在手机或机器人上。

部署优化的第一板斧是模型压缩。知识蒸馏让小模型模仿大模型的输出,剪枝去掉冗余通道,参数从亿级压到千万级。第二板斧是量化加速:把 FP32 的权重压缩成 INT8,推理速度提升 2-4 倍,显存占用下降约 75%,精度损失通常控制在 1% 以内。框架层面,TensorRT、ONNX Runtime 等推理引擎会做算子融合与内存复用,进一步压榨性能。

针对视觉 Grounding 的具体优化还包括:把文本编码器与视觉编码器拆开——文本侧提前缓存 embedding,图片侧单独编码做索引,查询时只跑轻量匹配网络;对场景固定的部署(如机器人工位),可以用小尺寸特征图 + 有限候选框数量做针对性剪裁,最终部署到手机 NPU 或工控机等边缘设备上。最后用批处理与流水线掩盖 IO 延迟。

高手也要坐得进值班室。从云端 GPU 到手机 NPU,部署优化让视觉 Grounding 真正走进智能相册、仓储机器人。记住:精度是上限,速度与成本是下限,产品要的是两者之间的最优解。

AI 应用场景

智能相册:一句话找回老照片

阶段:图文检索与多模态索引

解决的问题:传统相册只能按时间、地点或手动标签检索,想找“去年夏天在海边戴草帽的照片”要翻半天。用视觉 Grounding 对每张照片做区域提议与特征编码,用户输入自然语言查询后,直接计算查询与候选区域的余弦相似度,秒级返回结果——就像车站里你报出描述,助手立刻指出目标。

具体案例:某云盘 App 上线“语义搜索”功能,用户输入“生日聚会上的蛋糕”,系统先对全库照片做区域提议并用视觉编码器建立索引,查询时文本编码后与索引做相似度检索,Top-10 命中率提升 30% 以上。

机器人抓取:让它听懂“拿那个蓝色的”

阶段:目标定位与视觉伺服

解决的问题:传统机械臂抓取依赖固定位置的标定,换一个工位就要重新设定。引入视觉 Grounding 后,工人只需要说“拿起传送带上左边第二个蓝色零件”,机器人通过指代消解理解“左边第二个”,再通过区域提议与跨模态对齐锁定目标框,引导机械臂抓取。

具体案例:某 3C 装配线上,视觉 Grounding 模型被部署在工控机(TensorRT INT8 量化,推理 15ms/帧),实现对混料托盘上零件的自然语言抓取指令,换型时无需重新编程。

AR 辅助:描述即定位

阶段:实时目标定位

解决的问题:AR 导航眼镜需要在真实场景中理解“前方路口第二个红绿灯在哪”这类空间指代,Grounding 模型结合相对位置词理解与视觉定位,把描述的目标框叠加显示在视野中,帮用户快速确认目的地。

具体案例:某 AR 导航产品在路口对“右侧第二栋楼的入口”进行实时框选标注,结合指代消解处理“第二个”“入口”等表述,定位延迟控制在 50ms 以内。

Python 演示

python58 行
import numpy as np  def cosine_sim(v, t):    # 余弦相似度:两个向量方向越接近,得分越高    return float(v @ t / (np.linalg.norm(v) * np.linalg.norm(t)))  def compute_iou(pred, gt):    # 计算两个边界框的交并比 IoU    x1 = max(pred[0], gt[0])    y1 = max(pred[1], gt[1])    x2 = min(pred[2], gt[2])    y2 = min(pred[3], gt[3])    inter = max(0.0, x2 - x1) * max(0.0, y2 - y1)    area_pred = (pred[2] - pred[0]) * (pred[3] - pred[1])    area_gt = (gt[2] - gt[0]) * (gt[3] - gt[1])    union = area_pred + area_gt - inter    return inter / union if union > 0 else 0.0  np.random.seed(42)# 模拟视觉编码器输出的 128 维区域特征regions = {    "red_cup": np.random.randn(128),    "blue_book": np.random.randn(128),    "green_plant": np.random.randn(128),    "wood_table": np.random.randn(128),}for key in regions:    regions[key] = regions[key] / np.linalg.norm(regions[key]) # 模拟文本编码器:查询 "blue book" 的向量应靠近目标区域特征text_emb = regions["blue_book"] + 0.3 * np.random.randn(128)text_emb = text_emb / np.linalg.norm(text_emb) # 区域提议:为每个候选区域分配一个边界框candidate_boxes = {    "red_cup": (10, 20, 120, 180),    "blue_book": (40, 30, 160, 170),    "green_plant": (200, 50, 320, 220),    "wood_table": (30, 190, 300, 260),} # 跨模态对齐:逐个计算查询与候选区域的余弦相似度scores = {key: cosine_sim(vec, text_emb) for key, vec in regions.items()}ranked = sorted(scores.items(), key=lambda item: item[1], reverse=True)print("ranked scores:", [(key, round(score, 3)) for key, score in ranked]) # 取最高分作为预测目标best_name = ranked[0][0]best_box = candidate_boxes[best_name]print("predicted target:", best_name, "box:", best_box) # 用 IoU 评测定位精度gt_box = (40, 30, 160, 170)iou = compute_iou(best_box, gt_box)print("IoU=%.3f -> %s" % (iou, "hit(Acc@0.5)" if iou >= 0.5 else "miss"))
目的:用 NumPy 模拟一个极简视觉 Grounding 流程——区域提议生成候选框、跨模态对齐计算余弦相似度、argmax 选出目标、IoU 评测是否命中。
  1. def cosine_sim(v, t):实现余弦相似度打分,对应正文中的跨模态对齐相似度计算。
  2. regions[key] = regions[key] / np.linalg.norm(regions[key])特征向量归一化,让后续余弦相似度只反映方向差异。
  3. text_emb = regions["blue_book"] + 0.3 * np.random.randn(128)模拟文本编码器把查询映射到靠近目标特征的语义位置。
  4. candidate_boxes = {...}区域提议阶段为每个候选区域分配边界框。
  5. scores = {key: cosine_sim(vec, text_emb) for key, vec in regions.items()}跨模态对齐打分,逐个候选计算匹配分数。
  6. ranked = sorted(scores.items(), key=lambda item: item[1], reverse=True)按分数从高到低排序,对应 argmax 挑选最优目标。
  7. iou = compute_iou(best_box, gt_box)用交并比评测定位精度,对应 Acc@0.5 命中判定。

常见误区

误区“目标检测已经能把图里所有物体框出来了,Grounding 不就是加一句自然语言提示,从这些框里选一个吗?”

正解检测只能输出预定义类别名单里的物体,遇到“那本封面有帆船的书”就无能为力。Grounding 要处理开放式描述、属性组合与空间关系,本质上需要跨模态语义理解,而不能只靠类别匹配。打个比方:检测是“认识所有牌照的交警”,Grounding 是“听懂'穿红风衣站花店旁的人'的路人向导”。

为何常见:两者的输出都是边界框,视觉形式相近,容易让人误以为只是输入多加了一句文本。

误区“把候选区域的类别名字和用户描述做关键词匹配,不也能找到目标吗?”

正解现实中的描述很少等于类别名。“左数第二只”“冒热气的”这类表达需要视觉内容与语言语义的联合理解。跨模态对齐要把图像块和文本词同时投射到一个语义空间,在向量空间里度量相似度,而不是在字符串层面做匹配。这就像“懂画面”和“懂文字”的两个人必须用同一种语言交流,而不是对照词典找同义词。

为何常见:关键词匹配在简单场景偶尔有效,掩盖了两者本质的差异。

误区“用户查询都是'红色的杯子'这种名词短语,哪有'它''那个'这种含糊的说法?”

正解真实产品里大量对话式查询会出现代词和空间指代:“在我刚才说的那本书旁边的那支笔”。如果模型只学了名词短语匹配,这类输入会直接失败。指代消解让模型理解上下文与空间关系,是落地体验的分水岭。

为何常见:论文数据集大多是静态名词短语,让初学者高估了问题的难度但低估了泛化的需求。

误区“IoU 到 0.5 就算命中,所以 0.6 和 0.9 没有区别。”

正解Acc@0.5 只是粗对齐的及格线。机器人抓取要求 IoU 0.75 以上才能稳定夹取,医疗标注要求更高。评测时应同时报告 Acc@0.5 / 0.75 / 0.9 多档结果,才能全面反映定位精度。就像“指个大概方向”和“精确指到人”对朋友的帮助完全不同。

为何常见:0.5 阈值在早期数据集上是惯例,被很多教程直接引用,容易形成思维定势。

误区“多生成一些候选框总会把目标罩住,质量不够数量来凑。”

正解候选框太多会显著增加匹配计算量,且大量低质量负样本会让匹配模型更难训练。现代单阶段模型甚至完全跳过显式提议,用稀疏查询直接预测位置。提议的质量(召回与精度的平衡)比数量更重要。

为何常见:“候选越多越保险”的直觉在计算资源无限时成立,但现实中每一分延迟都是成本。

面试题

Q1. 视觉 Grounding 任务中,模型的输入输出是?

单选题 · easy

  • A.输入图片与文字描述,输出目标边界框← 正确答案
  • B.输入单张图片,输出所有类别标签
  • C.输入一段文本,输出整张图片描述
  • D.输入图片与文字,输出预测文本

答案:A。视觉 Grounding 的输入是“图片 + 自然语言描述”,输出是目标在图片中的边界框(x, y, w, h)。它不同于分类(输出类别标签),也不同于图像描述生成。就像在车站,你给出描述,助手指出具体位置。

Q2. 区域提议(Region Proposal)模块的主要职责是?

单选题 · easy

  • A.将模型权重压缩为 INT8 格式
  • B.计算文本描述之间的相似度
  • C.生成一组可能包含目标的候选框← 正确答案
  • D.消除句子中代词指代歧义

答案:C。区域提议负责在图像中生成候选边界框集合,是后续跨模态匹配的输入。它像寻人时先圈出可疑人选,而不是去理解文本、压缩模型或消除指代。

Q3. 两个特征向量的余弦相似度,取值范围是?

单选题 · mid

  • A.结果总是落在 0 到 1 之间
  • B.结果总是落在 -1 到 1 之间← 正确答案
  • C.结果总是落在 0 到正无穷之间
  • D.结果覆盖所有实数范围

答案:B。余弦相似度是两个向量夹角的余弦值,夹角从 0° 到 180°,对应余弦值从 1 到 -1。0 表示正交无关,负数表示方向相反。归一化后的特征向量,相似度越高才代表语义越接近。

Q4. 以下哪些属于指代消解需要处理的表述?

多选题 · mid

  • A.代词“它”“那个”等指代← 正确答案
  • B.相对位置“左边第二个”← 正确答案
  • C.属性组合“红色圆形的”← 正确答案
  • D.固定类别名"cat"等标签

答案:ABC。指代消解处理代词(它/那个)、空间指代(左边第二个)和属性组合(红色圆形)等开放式表达。固定类别名是目标检测的范畴,不构成指代问题。就像“她”“花店旁”“穿红风衣”都是需要在画面中消解的描述。

Q5. IoU(交并比)的计算方式正确的是?

单选题 · mid

  • A.两框并集面积除以交集面积
  • B.预测框面积除以真实框面积
  • C.交集面积除以预测框面积
  • D.两框交集面积除以并集面积← 正确答案

答案:D。IoU = |A∩B| / |A∪B|,衡量两个框的重叠程度,完全重合为 1,完全分离为 0。A 是倒数关系,B/C 只涉及单个框的面积,均无法衡量两个框的“重合程度”。

Q6. Acc@0.5 评测指标的含义是?

单选题 · easy

  • A.模型输出的置信度达到 0.5 即算命中
  • B.精确率与召回率均需要达到 50%
  • C.平均精度必须超过 0.5 才合格
  • D.预测框与真实框 IoU 达到 0.5 即算命中← 正确答案

答案:D。Acc@0.5 是视觉 Grounding 最常用的正确率指标:当预测框与真实框的 IoU ≥ 0.5 时记为一次正确预测,最终正确数除以总样本数。它衡量的是空间重合度,而不是置信度阈值或分类指标。

Q7. 关于两阶段与单阶段 Grounding 模型,说法正确的有?

多选题 · hard

  • A.两阶段方法先提议区域再匹配描述← 正确答案
  • B.单阶段方法直接联合推理目标位置← 正确答案
  • C.两阶段方法在任何场景都优于单阶段
  • D.单阶段方法通常推理速度更快← 正确答案

答案:ABD。两阶段(如 MAttNet)先生成候选框再逐框匹配,精度可控但较慢;单阶段跳过显式提议直接回归位置,速度占优。C 过于绝对,两者各有适用场景,就像“先圈再细看”和“一眼锁定”各有优劣。

Q8. 跨模态对齐训练的核心目标是?

单选题 · mid

  • A.把输入图片压缩为更小分辨率
  • B.把视觉与文本映射到同一语义空间← 正确答案
  • C.提高文本编码器的翻译准确率
  • D.扩大训练数据集的数据规模

答案:B。跨模态对齐把视觉编码器与文本编码器的输出映射到同一向量空间,使“红色杯子”的文本向量靠近其图像区域的视觉向量。压缩图片、翻译文本、扩大数据都是无关目标,核心是让两种模态“说同一种语言”。

Q9. 部署时采用 INT8 量化,最主要的收益是?

单选题 · hard

  • A.模型的理论精度必然提升
  • B.训练阶段的收敛速度加快
  • C.推理变快且内存占用显著减少← 正确答案
  • D.定位 IoU 自动提升 0.2

答案:C。INT8 量化把 FP32 权重压缩到 8bit,推理可加速 2-4 倍、显存占用下降约 75%,代价是轻微精度损失(通常 <1%)。它优化的是部署效率,不会提升精度,也与训练速度无关。

Q10. 智能相册中应用视觉 Grounding 的典型流程包括?

多选题 · hard

  • A.对相册图片统一做区域提议与特征编码← 正确答案
  • B.将用户查询文本编码为语义向量← 正确答案
  • C.计算查询向量与区域向量的相似度排序← 正确答案
  • D.用随机数直接生成检索结果列表

答案:ABC。智能相册先离线对图片做区域提议与视觉特征索引,再在线把用户查询编码成文本向量,最后做余弦相似度 top-k 检索。随机生成结果没有任何语义依据,显然是错误答案。