找到物体只是第一步,更有挑战性的任务是给这些物体命名。人类可以轻松地看到一只猫并说出"这是一只猫",但计算机如何在没有被教导的情况下完成这种任务呢?这就需要引入CLIP(对比语言-图像预训练)模型,但这一过程并不像想象的那么简单。 CLIP是由OpenAI在2021年开发的一种强大模型,它通过互联网规模的数据集训练,学会了将文本与图像对齐。通常的CLIP使用方式很直观:输入一张完整图像和几个可能的描述,CLIP会告诉你哪个描述最匹配。但这种方法有个关键限制:它只能处理整张图像,而不是图像中的特定区域或物体。 为什么这是个问题?想象一张包含猫和狗的图片。我们已经通过视频槽学习将它们分开了,但普通的CLIP无法单独评估"这个区域是猫"和"那个区域是狗",它只能评估整张图像。 一种简单的解决方案似乎是将每个槽对应的区域裁剪出来,然后单独送入CLIP。但这种方法存在两个问题:一是效率低下,需要多次运行CLIP;二是当槽的形状不规则时,裁剪出的矩形区域会包含不属于该槽的内容,导致命名错误。 研究人员提出了一种更优雅的解决方案:修改CLIP,使其能够处理图像的局部区域。这种修改被称为"基于补丁的CLIP"。关键思想是:原始CLIP的视觉编码器实际上处理的是图像的各个补丁(patch),只是最终所有信息都汇总到一个CLS标记中。如果能够保留各个补丁的特征,并使它们与文本对齐,就能实现局部区域的命名。 具体来说,CLIP的视觉编码器是一个视觉转换器(ViT),它将图像分解为多个补丁,通过多层转换器处理后,产生一个CLS标记和多个补丁标记。传统CLIP只使用CLS标记与文本进行对比学习,而基于补丁的CLIP则保留并利用这些补丁标记。 修改过程也非常巧妙:不需要任何带标签的数据,只用了未标记的ImageNet-1K数据集进行训练。具体做法是,保留CLIP原始的层次结构,但替换最后一层为新的多头自注意力模块,重新投影信息到新的补丁特征中。这个新模块使用自监督方式训练,假设预训练的CLIP已经将其CLS标记与相应的文本标记对齐。 训练过程如下:首先计算交叉注意力,查询是CLS标记,而键和值都是新的补丁标记: 这种方法允许从预训练的CLIP中提取已经包含但不易获取的信息,而不需要任何视觉标注或图像-文本对。 一旦有了基于补丁的CLIP,就可以为视频槽赋予名称了。过程很直观:对视频的每一帧编码成语义补丁特征,根据槽的分配权重聚合这些特征,得到槽的语义特征。然后将这些特征与候选文本的特征进行余弦相似度计算,选择相似度最高的文本作为槽的名称。 为了获得良好的命名结果,还需要精心设计候选文本列表。理想的词汇表应包括目标标签(如前景物体类别)和常见背景标签(如天空、草地等)。此外,如果一个槽的特征与所有文本特征的相似度都低于阈值(实践中可设为0),则该槽被标记为"未命名"。 实验表明,基于补丁的CLIP大大提高了槽标记的准确性。在ImageNet-VID数据集上,与原始CLIP相比,它将mAP50(平均精度)从0.43提高到5.20,在进行联合优化后甚至达到29.23。这一改进清楚地表明,基于补丁的CLIP能够更准确地理解图像的局部区域。
找到物体只是第一步,更有挑战性的任务是给这些物体命名。人类可以轻松地看到一只猫并
暖阳温暖人心
2025-06-11 16:22:11
0
阅读:0