想象你站在商场中庭,对身边的保安说:“穿红裙子、推婴儿车的那位女士。”保安没有追问“哪一个”,他的目光快速扫过人群,几秒后指向二楼:“是她吗?”你们之间没有照片、没有姓名,只有一句话——但保安精准地找到了目标。这个看似平常的瞬间,正是「指代表达」(Referring Expression)想赋予AI的能力:听懂一句自然语言描述,在图像中找到对应物体,并用边界框把它框出来。 与目标检测不同,指代表达不需要预先定义“人、车、猫”的类别清单,而是理解千变万化的开放式描述:“左边第二只戴蓝帽子的狗”“桌上被咬了一口的苹果”。这就像保安不仅能认出穿制服的同事,还能听懂“穿红裙子的女士”这种随机、模糊、甚至带方位关系的指令。本文用“保安找人”这个比喻贯穿始终,带你拆解指代表达的技术原理、核心模型、数据集与工程落地,读完你就能理解跨模态融合、Transformer、RefCOCO这些词汇,并动手写一个简化版演示程序。
指代表达是图文检索与多模态交互的核心技术。掌握它,你就能在智能监控、图像标注、交互式搜索等场景中构建“听得懂人话”的视觉系统,是向高级多模态AI工程师进阶的必修课。
目录
可视化演示
展示Seq2seq编码-解码架构如何将输入序列编码为上下文向量,再逐步解码生成多步预测结果,支持编码、解码、全流程三种视角切换。
本节配有交互动效(进入视口后自动加载,约 3KB)。
编码阶段 编码器逐时刻读取输入序列,更新隐藏状态 最终隐藏状态作为上下文向量 h_t = f(h_{t-1}, x_t) 编码器将变长输入压缩为固定维度的上下文表示
任务定义:听懂“人话”里的目标
你站在商场中庭,对保安说:“穿红裙子、推婴儿车的那位女士。”保安没有让你发照片,也没有反问“她叫什么名字”,而是快速扫视人群,锁定了扶梯口的身影。这个瞬间说明:人类有天然的“指代表达”能力——把语言描述映射到视觉世界。而AI要学习的,正是这种能力:给定一句自然语言描述,在一张图中找到对应目标并框出来。
在技术领域,这个任务被称为Referring Expression(REF)。它的输入是“一张图像 + 一句描述”,输出是“一个边界框”。与目标检测最大的区别在于:目标检测只能认出预定义类别(人、车、猫),相当于保安只认识穿制服的同事;而指代表达能理解“穿红裙子的女士”“被咬了一口的苹果”这类开放式描述,相当于保安能听懂任何合理的找人指令。
从数学角度看,指代表达模型要学习一个条件概率分布:给定图像 $I$ 和文本 $T$,在所有可能的边界框集合 $\mathcal{B}$ 中,选出后验概率最大的框 $\hat{b}$。这里的“搜索”并非穷举,而是由深度网络学习一个打分函数,对候选框逐一评分后取最高分。
所以,你可以把指代表达模型想象成一位训练有素的保安:它不背顾客的长相(无预定义类别),而是当场倾听描述(理解自然语言),调动视觉搜索能力(计算条件概率),最后用激光笔框出目标(输出边界框)。这个“倾听—搜索—框选”的流程,就是整个任务的主线。
- 预测框 $\hat{b}$模型最终输出的边界框,用 $(x, y, w, h)$ 表示中心坐标和宽高,就像保安最后用激光笔画出的那个圈。
- $\arg\max$ 操作在所有候选中选分数最高的,类比保安从人群里挑出“最像描述的那个人”,而不是随机指一个。
- 候选框集合 $\mathcal{B}$图像中所有可能框出目标的矩形区域,由区域提议网络或网格划分生成,相当于保安视野里“可能是目标”的若干位置。
- 条件概率 $P(b \mid I, T)$在已知图像 $I$ 和描述 $T$ 的前提下,框 $b$ 恰好框住目标的概率——这是模型对“描述与目标匹配程度”的量化信心。
跨模态融合:语言与视觉的“翻译官”
保安在听到“红裙子”三个字时,心里其实发生了一次快速翻译:把“红色”转成视觉上的色调印象,把“裙子”转成衣服轮廓特征。同理,AI要在语言和视觉之间搭一座桥,让文字描述和图像区域能互相对上话。这座桥在技术里叫跨模态融合(Cross-Modal Fusion)。
具体怎么做?模型先用文本编码器(如BERT)把描述句子变成一组语义向量,再用视觉编码器(如CNN)把图像变成一组区域特征。但语言和视觉是两种“语言”,一个在词汇空间,一个在像素空间,直接比较没有意义。于是模型学习一个映射矩阵 $\mathbf{W}$,把两种特征投影到同一个“语义空间”里。空间越靠近,说明越匹配。
匹配打分是跨模态融合的核心动作。对于图像中的某个候选区域 $r$(视觉特征 $\mathbf{v}_r$)和整句描述 $e$(文本特征向量),模型计算它们的相似度分数:
有了这把“尺子”,模型就能给所有候选区域打分。跨模态融合不是简单拼接,而是让两种模态在特征层面相互影响、相互校准。翻译官当得好,后面的匹配才靠谱。
- 区域视觉特征 $\mathbf{v}_r$候选区域经过视觉编码器后得到的向量,浓缩了该区域的颜色、形状、纹理等像素信息,相当于保安看到的“红裙子+高个子”视觉印象。
- 文本特征 $\mathbf{e}$整句描述编码后的向量,包含“红”和“裙子”的语义信息,相当于你告诉保安的那句话在他脑中的语义表示。
- 映射矩阵 $\mathbf{W}$可学习的线性变换,把视觉和文本两个空间的向量“掰”到同一把尺子上,就像把厘米和英寸统一换算成米。
- 内积 $\top$两个向量做内积,结果越大说明方向越一致,类比保安在心里嘀咕:“红色对上了,裙子轮廓也对上了,应该就是她。”
候选区域策略:“海选”与“终选”
保安找人不是盯着每一个人看,而是先快速环视全场,在脑子里划出几个可疑区域——“那边穿红衣服的、这边推婴儿车的、还有扶梯口那个”,这叫海选。然后他再逐一比对细节——“穿红裙子的只有扶梯口那位,就是她了”,这叫终选。两阶段指代表达方法(如MAttNet)正是复制了这个思路。
第一阶段是区域提议(Region Proposal)。模型用区域提议网络(RPN)或候选框生成器,在图像上产生几百个“可能是目标”的矩形候选框。这些框不需要很精确,只要覆盖目标就行,就像保安先锁定“二楼扶梯口”这个大概区域。第二阶段是匹配终选:对每个候选框提取视觉特征,与文本描述做跨模态打分(就是上一节的 $s(r,e)$),按分数从高到低排序,留下最匹配的一个,再做边界框回归精调。
在训练和评估中,如何判断“框得准不准”?答案是IoU(Intersection over Union,交并比)。它计算预测框与真实框的交集和并集之比,值越接近1说明框得越准。
海选求快,终选求精。两阶段方法在中小规模场景下依然有优势,因为它把“找”和“认”分开,每一步都容易调试。不过,它也面临候选框质量的上限——如果海选阶段就漏掉了目标,终选再厉害也无济于事。
- 预测框 $B_p$模型输出的候选框,对应保安最后画出的那个圈,位置和大小未必完全准确。
- 真实框 $B_{gt}$人工标注的目标实际位置,相当于保安心里“真正的她站在哪”的答案。
- 交集 $B_p \cap B_{gt}$两个框重叠的区域面积。重叠越多,说明预测越贴近真实。
- 并集 $B_p \cup B_{gt}$两个框覆盖的总面积。如果预测框飘到远处,重叠小、总面积大,IoU就会很低。
- 比值交集除以并集,得到一个0到1之间的分数。IoU超过0.5通常被认为“框中了”,超过0.75则算“框得准”。
Transformer应用:让模型“全场盯梢”
经验丰富的保安有个本事:余光扫视的间隙,始终把注意力放在描述里提到的特征上。你说“戴蓝帽子”,他的视线就自动在人群中搜索蓝色;你说“推婴儿车”,他又会优先关注有金属推杆的位置。这种“注意力随语言流动”的能力,正是Transformer给指代表达带来的核心升级。
Transformer中的自注意力(Self-Attention)让图像中不同区域互相“打招呼”——比如“自行车”这个区域会与“左边”、“栅栏”等区域建立关系,帮助理解空间上下文。而交叉注意力(Cross-Attention)更进一步:让文本中的每个词去“查询”图像中的每个区域,计算两者的相关权重。这就像“蓝帽子”这个词,主动去图像各处找“蓝”和“帽子”的对应像素。
交叉注意力的计算可以写成标准的注意力公式。给定查询矩阵 $\mathbf{Q}$(来自文本词)、键矩阵 $\mathbf{K}$ 和值矩阵 $\mathbf{V}$(来自视觉区域),输出是加权求和:
MDETR等现代模型把以上机制堆叠在编码器-解码器框架中,输入图像和文本,端到端直接输出目标框,完全不需要独立的区域提议网络。这相当于保安从“先扫一圈再盯人”升级为“全程盯梢”——注意力天然知道该看哪里,反应更快、上限更高。
- 查询矩阵 $\mathbf{Q}$来自文本侧,相当于保安心里的问题清单——“谁是红色?”“谁在推车?”。
- 键矩阵 $\mathbf{K}$来自视觉侧,是每个图像区域的“标签”,标注了“我是红色”“我有轮子”等属性,供查询来匹配。
- 相似度 $\mathbf{Q}\mathbf{K}^\top$文本词与图像区域逐一计算匹配分数,就像保安用“红色”去扫描全场,看每个区域响应有多强。
- 缩放因子 $\sqrt{d_k}$防止分数过大导致softmax梯度消失,相当于把音量调到一个舒服的分贝再做判断。
- softmax 归一化把所有匹配分数拉成总和为1的权重分布,突出最相关的区域,抑制无关区域。
- 加权求和 $\mathbf{V}$按权重混合视觉信息,让文本词“看到”它最该关注的内容,完成一轮跨模态信息交换。
数据集评估:AI的“考试卷”与“打分尺”
每个保安上岗前都要通过情景模拟考试——考官给出描述,保安指出目标,根据圈得准不准打分。AI的“考官”是一套公开数据集,最著名的就是RefCOCO系列。RefCOCO、RefCOCO+、RefCOCOg分别由不同团队构建,图像来自COCO数据集,每张图包含多个人工标注的指代描述。其中RefCOCO+要求描述中不出现绝对位置词,难度更高;RefCOCOg的句子更长、更口语化,接近真实对话。
评分标准有两把尺子。第一把是IoU(上节讲过的交并比),衡量单个样本的框准不准;第二把是Acc@0.5,统计所有测试样本中IoU达标(≥0.5)的比例。Acc@0.5越高,说明模型的整体定位能力越强:
不过,考试分数高不代表实战一定强。RefCOCO的描述相对干净、目标清晰,真实场景里可能出现“那个啥,推车子的阿姨”这种玩笑式描述,甚至目标被遮挡、光线昏暗。所以数据集评估只是第一关,真正的考验在工程落地阶段。
- 测试样本数 $N$数据集中的描述-图像对总数,相当于考卷的题量。
- 指示函数 $\mathbb{1}[\cdot]$括号内条件成立记1,不成立记0,相当于判卷时“对了得一分,错了不得分”。
- IoU 达标判断 $\text{IoU}_i \geq 0.5$第 $i$ 个样本的预测框与真实框重合度是否过半,就是“这一题是否答对”。
- 求和再取平均答对的样本数除以总样本数,得到0到1之间的正确率。
工程落地:从训练场走向值班室
培训完的保安要正式上岗,还得解决三个问题:反应要快(推理时延)、耐力要久(长期运行)、适应要强(新场景不懵)。指代表达模型从实验室走向生产环境,同样要过这三关。首先是模型轻量化:把大模型蒸馏成小模型(知识蒸馏),或者把权重从FP32压到INT8(量化),让模型体积和计算量大幅下降。
其次是推理加速。即使模型变小,在GPU上跑Transformer也未必能实时。工程上常用TensorRT进行算子融合、内存复用和kernel优化,把推理时延从数百毫秒压到几十毫秒甚至更低。最后是场景适配:监控画面的视角、分辨率、光照和数据集差异很大,需要在目标场景采集数据做微调(domain adaptation),否则模型会“水土不服”。
在优化过程中,知识蒸馏是常用手段。学生模型(小模型)不仅学习真实标签,还要模仿教师模型(大模型)的“答题思路”。蒸馏损失如下:
落地之后,指代表达就能在真实世界里干活了——在监控室帮警察找人,在标注平台帮标注员预画框,在修图软件里让设计师说一句“选中那只戴帽子的猫”就直接生成选区。保安正式上岗,故事才刚刚开始。
- 硬标签损失 $\mathcal{L}_{\text{CE}}$学生模型与真实标注的交叉熵,确保它在大方向上不跑偏,相当于考试的标准答案分。
- 软标签损失 $\mathcal{L}_{\text{KD}}$学生模型与教师模型输出分布的KL散度,让学生的“思考过程”逼近老师,相当于观察老保安如何权衡可疑特征。
- 平衡权重 $\lambda$控制“标准答案”和“老师经验”各占多大比重,通常取0.5左右,让两边都学到位。
AI 应用场景
智能监控中的目标秒级检索
阶段:模型推理与交互式检索
解决的问题:传统监控回放需要人工一帧帧翻看,8小时的录像要看好几天。警察只能描述“穿蓝色外套、背黑色书包的男子”,人工在监控里大海捞针,效率极低。指代表达模型把这段描述转成视觉特征,在视频帧中逐帧匹配目标区域,秒级返回结果。
具体案例:某商场发生失窃,安保人员输入“戴白色鸭舌帽、穿黑色夹克的男子”,系统在8小时多机位监控中运行指代表达模型,20秒内返回该男子的出现时间、行动轨迹和清晰正脸截图,帮助警方快速锁定嫌疑人。
图像标注工具的“AI预标注”助手
阶段:数据标注与预处理
解决的问题:标注员在密集场景(如自动驾驶街景)中手工画框又慢又累,尤其物体互相遮挡时容易标错。指代表达模型可以作为预标注工具:标注员输入“右侧第二辆白色轿车”,模型自动生成候选框,人工只需微调确认。
具体案例:某自动驾驶数据团队在标注流水线中接入指代表达预标注,把图片描述与标注任务捆绑。实测单张街景图的标注时间从90秒降到25秒,且标注一致性明显提升,三个月就完成了原本半年的标注量。
交互式图像编辑的“一句话选区”
阶段:人机交互与生成式应用
解决的问题:设计师在修图软件中想选中某个复杂物体(如带毛边的宠物、“桌上被咬了一口的苹果”),传统套索工具需要精细手工描边,耗时且容易出错。指代表达让“说话即选中”成为可能。
具体案例:某图片编辑软件集成指代表达模块,用户直接输入“戴着红色围巾的雪人”,模型输出精确边界框及其分割掩码候选,用户一键确认即可完成选区并更换背景。上线后该功能的月使用量超百万次。
Python 演示
"""指代表达迷你演示:用关键词规则在玩具图像中定位目标"""import math class ToyCanvas: """玩具画布:放几个带颜色和形状的物体""" def __init__(self, width=200, height=120): self.width = width self.height = height self.objects = [] def add_object(self, obj_id, color, shape, x, y, w, h): self.objects.append({ "id": obj_id, "color": color, "shape": shape, "x": x, "y": y, "w": w, "h": h }) def center_x(self, obj): return obj["x"] + obj["w"] / 2.0 class ReferringEngine: """指代表达引擎(演示版)""" COLOR_MAP = {"红": "red", "蓝": "blue", "绿": "green", "黄": "yellow"} SHAPE_MAP = {"圆": "circle", "方": "square", "三角": "triangle"} def __init__(self, canvas): self.canvas = canvas self.match_count = 0 def parse_words(self, text): """抽取描述中的颜色、形状、方位约束""" tags = [] for ch, color in self.COLOR_MAP.items(): if ch in text: tags.append(("color", color)) for ch, shape in self.SHAPE_MAP.items(): if ch in text: tags.append(("shape", shape)) if "左" in text: tags.append(("pos", "left")) if "右" in text: tags.append(("pos", "right")) return tags def filter_by_tag(self, candidates, tag): """按照单个约束过滤候选物""" kind, value = tag if kind == "color": return [o for o in candidates if o["color"] == value] if kind == "shape": return [o for o in candidates if o["shape"] == value] if kind == "pos": mid = self.canvas.width / 2.0 if value == "left": return [o for o in candidates if self.canvas.center_x(o) < mid] return [o for o in candidates if self.canvas.center_x(o) >= mid] return candidates def locate(self, text): """解析描述,逐条过滤,返回目标框或 None""" candidates = self.canvas.objects[:] tags = self.parse_words(text) for tag in tags: self.match_count += 1 candidates = self.filter_by_tag(candidates, tag) if not candidates: return None target = candidates[0] return (target["x"], target["y"], target["w"], target["h"]) def build_demo_scene(): """构造一个包含 5 个物体的玩具场景""" scene = ToyCanvas(200, 120) scene.add_object(1, "red", "circle", 30, 20, 25, 25) scene.add_object(2, "blue", "square", 90, 15, 30, 30) scene.add_object(3, "green", "triangle", 145, 50, 28, 28) scene.add_object(4, "red", "square", 60, 70, 24, 24) scene.add_object(5, "blue", "circle", 140, 80, 22, 22) return scene def run(): scene = build_demo_scene() engine = ReferringEngine(scene) tests = [ ("红色的圆", (30, 20, 25, 25)), ("蓝色的方", (90, 15, 30, 30)), ("红色的方", (60, 70, 24, 24)), ("蓝色的圆", (140, 80, 22, 22)), ] for text, expect in tests: box = engine.locate(text) ok = box is not None and box == expect print("描述: %-8s -> 预测框: %-14s 期望: %-14s 结果: %s" % (text, box, expect, "正确" if ok else "错误")) if __name__ == "__main__": run()
class ReferringEngine定义“指代表达引擎”,相当于商场里那位保安的核心逻辑:接收文本、匹配视觉、输出目标。tags = self.parse_words(text)把“红色的圆”拆成("color","red")和("shape","circle")两条约束,等同于保安拆解“穿红裙子”这个指令。candidates = self.canvas.objects[:]初始候选集取所有物体,对应保安先环视全场、把所有顾客都当作潜在目标。candidates = self.filter_by_tag(candidates, tag)每轮过滤都会淘汰一批不符合约束的候选物。比如筛掉非红色物体后,蓝色方框和绿色三角就被排除了。target = candidates[0]过滤链结束后取第一个候选作为最终目标,这就是“匹配分数最高”的简化版。
常见误区
误区“指代表达不就是目标检测吗?都是框出物体,我用人、车、狗这些类别训练也能搞定。两者输出都是边界框,没什么本质区别。”
正解目标检测只能输出预定义类别的框,相当于保安只认识“穿制服的同事”。指代表达要理解的是开放式描述——“穿红裙子的女士”“被咬了一口的苹果”,这些目标根本不在任何预设清单里。模型必须同时理解语言的语义和图像的视觉内容,并把两者对齐,难度和范式都完全不同。
为何常见:两个任务的输入输出看起来都是“图像→边框”,初学者容易忽略描述文本带来的语义开放性,把它误当成“类别多一点的检测”。
误区“我只要把图中的每个物体都识别出来,再比较哪个物体的类别名和描述里的名词最接近,不就行了吗?”
正解真实描述经常包含属性、位置、关系等组合信息,比如“左边第二个穿蓝衣服的人”——画面里可能有三个“穿蓝衣服的人”,靠物体类别根本无法消歧。指代表达需要融合相对位置、视觉属性、上下文关系等信息,这是单纯物体分类解决不了的。
为何常见:人们习惯把复杂问题拆成“识别+名词匹配”两步,忽略了自然语言的组合性和场景上下文的决定性作用。
误区“Transformer是NLP的东西,图像特征用CNN提取就够了。跨模态嘛,把文本向量拼在图像特征后面不就行了?”
正解现代指代表达模型大量使用Transformer做视觉-语言联合推理。自注意力能建模图像中不同区域的关系(比如“自行车在栅栏左边”),交叉注意力能让文本词直接“看”图像对应区域。MDETR等模型甚至在Transformer框架内端到端完成所有推理,不依赖独立RPN。
为何常见:Transformer最早火于NLP,很多人对它处理视觉关系的能力认知滞后,低估了跨模态Transformer的联合建模威力。
误区“我的模型在RefCOCO上Acc@0.5已经到85%了,直接部署到客户监控系统里肯定没问题。”
正解RefCOCO只是实验室考卷。真实场景有大量分布外数据:监控画幅更大、目标更小、光线恶劣、描述口语化(“那个推车子的阿姨”)。上线前必须做场景数据微调、时延优化、推理框架选型,还要考虑摄像头视角畸变和视频流中目标运动导致的模糊。研究指标和工程指标之间存在巨大鸿沟。
为何常见:新手容易把学术benchmark当作真实业务效果,忽略了从“考高分”到“干好活”之间的工程适配与优化环节。
面试题
Q1. 指代表达任务的核心输入是什么?
- A.一张图像和一个目标类别标签
- B.一张图像和一句自然语言描述← 正确答案
- C.一段视频和一个类别列表
- D.一张图像和一个音频片段
答案:B。指代表达的输入是一张图像+一句自然语言描述,输出是目标边界框,对应“保安听描述找人”。A是目标检测;C是视频分类;D是音源定位,都不符合。
Q2. 下列哪个数据集专门用于指代表达任务评估?
- A.ImageNet
- B.RefCOCO← 正确答案
- C.COCO Caption
- D.MNIST
答案:B。RefCOCO/RefCOCO+/RefCOCOg 是专为指代表达构建的基准数据集。ImageNet是图像分类,COCO Caption是图像描述生成,MNIST是手写数字识别,都不是指代表达任务。
Q3. 在指代表达中,IoU指标的主要作用是什么?
- A.衡量文本描述的语义相似度
- B.衡量预测框与真实框的重合程度← 正确答案
- C.衡量图像特征提取的速度
- D.衡量模型参数量大小
答案:B。IoU=交集面积/并集面积,表示预测框与真实框的重叠比例,是评估定位精度的核心标尺,对应保安画的圈和真实位置的贴合程度。
Q4. 跨模态融合中,交叉注意力(Cross-Attention)的核心作用是什么?
- A.让文本词动态关注图像中相关区域← 正确答案
- B.让模型变得更小更轻量
- C.让图像自动增强色彩对比度
- D.让文本和图像在像素级直接相减
答案:A。交叉注意力让每个文本词去查询图像区域的相关性,决定“看哪里”,就像“蓝帽子”这个词主动在图像中找蓝色帽子区域。B是模型压缩,C是图像增强,D没有意义。
Q5. 两阶段指代表达方法(如MAttNet)的核心流程是什么?
- A.直接生成像素掩码,不做边框预测
- B.先区域提议产生候选框,再对候选框做语言匹配排序← 正确答案
- C.先做图像分类再做文本分类
- D.直接用Transformer输出最终框,不产生中间候选
答案:B。两阶段方法先“海选”出候选区域,再“终选”用文本匹配打分排序,最后回归精调。这正是保安先扫视锁定可疑区域、再逐一确认的流程。
Q6. 下列哪些属于指代表达模型的常见技术路线?
- A.两阶段候选区域加匹配打分← 正确答案
- B.单阶段Transformer联合推理← 正确答案
- C.用文本嵌入扩展目标检测类别← 正确答案
- D.使用循环神经网络做像素级分割
答案:ABC。两阶段(MAttNet)和Transformer端到端(MDETR)是主流路线;将检测类别扩展为文本嵌入也是一类开放词汇方法。D的RNN像素级分割并非指代表达的典型航线。
Q7. 在RefCOCO评估中,Acc@0.5的含义是什么?
- A.预测框与真实框IoU大于0.5的测试样本占比← 正确答案
- B.模型的Top-5分类准确率
- C.文本描述中包含数字"0.5"的概率
- D.图像中面积重叠超过50%像素时算正确
答案:A。Acc@0.5统计的是所有测试样本中,预测框与真实框IoU≥0.5的比例,反映整体定位合格率。B是分类指标,C、D的描述都与评估定义不符。
Q8. MDETR与两阶段方法相比,最核心的区别是什么?
- A.完全弃用语言信息,只靠视觉特征
- B.编码阶段就融合语言与视觉,端到端输出框,无独立候选区域← 正确答案
- C.使用CNN手工设计锚框生成候选
- D.输入不支持中文描述
答案:B。MDETR在Transformer编码阶段就让文本词与图像区域交叉注意力融合,端到端输出目标框,省去了独立RPN环节。A和C描述不准确,D与架构无关。
Q9. 指代表达工程落地时,常见的性能优化手段有哪些?
- A.模型量化压缩(如INT8)← 正确答案
- B.知识蒸馏到轻量学生网络← 正确答案
- C.使用TensorRT加速推理← 正确答案
- D.放弃语言特征只保留检测分支
答案:ABC。量化、蒸馏和TensorRT加速是部署中三个常用手段,分别压缩体积、提升精度效率和加速延迟。D去掉语言特征就等于放弃了指代表达能力,完全不可取。
Q10. 指代表达相比目标检测的优势包括哪些?
- A.支持开放式自然语言描述← 正确答案
- B.能处理属性位置关系的组合描述← 正确答案
- C.不需要预定义类别清单← 正确答案
- D.完全不需要训练数据
答案:ABC。指代表达的开放性来自自然语言,能理解属性、位置和关系的组合。但它同样需要大规模训练数据来学习,D“不需要训练数据”是错误的。