一句话说清:开放词汇检测(Open-Vocabulary Detection,OVD)就是让目标检测(Object Detection)不再被一张写死的类别清单绑住——你想找什么,用文字说出来,模型就去图里把它框出来并命名。
传统检测器训练前就定好了 N 个类别,网络最后接一个分类头,只输出这 N 维。想加一类"安全帽上的反光条",就得重新标注数据、重新训练。开放词汇检测把这个分类头换成了"语言接口",大致三步:先用区域提议(region proposal)找出可能是物体的候选框;再把每个框编码成视觉向量;同时把用户输入的文本(比如"生锈的螺母""没系绳的狗")用文本编码器编码,让图文落在同一个嵌入空间(embedding space)里算相似度,谁像就贴谁的标签。这份能力来自视觉-语言预训练(vision-language pre-training):在海量图文对上,模型已经学过"图长什么样"和"词是什么意思"是对齐的。
打个比方:传统检测器像一家只有固定菜单的餐厅,菜单上没有的菜你点不出来;开放词汇检测更像一位听得懂描述的厨师,你说"辣的、有花生、别放香菜",他照着做——做得像不像是另一回事。
它和几个近亲容易混:
| 概念 | 类别从哪来 | 主要关注点 |
|---|---|---|
| 封闭集检测 | 训练前写死的 N 类 | 把这 N 类测准 |
| 开放集检测(open-set detection) | 已知类固定 | 允许"不认识",别把未知物硬报成某一类 |
| 零样本检测(zero-shot detection) | 测试类没标注过,但来自预定集合 | 迁移到新类别 |
| 开放词汇检测 | 用户当场输入的任意文本 | 语言就是接口,即插即用 |
实际意义很直接:电商想找"带蝴蝶结的红色童鞋",工厂想找没见过的某种缺陷,机器人按一句话抓桌上的东西,内容审核按描述筛画面——都不用为新类别重新标注再训练。代价也要讲清楚:对罕见词和细粒度词,准确率往往不稳;措辞一变结果可能就变,同义词尤其敏感;还容易把长得像的东西认错,过度检测和漏检都会出现。工程上常见的兜底办法是准备几组候选措辞、设相似度阈值、再用小样本数据微调一下。它的效果上限,基本由底层的图文对齐模型决定,具体能力请以各模型的官方页面为准。
对普通人来说,变化是搜索方式:以后找图、找商品不必依赖别人打好的关键词标签,直接描述你要什么就行。
