CLIP是一种在大量图像和文本对上训练的神经网络。作为这种多模态训练的结果,CLIP可用于查找最能代表图像的文本片段,或查找给定文本查询的最合适图像。CLIP在image-level的分类上已经取得了非常令人印象深刻的效果。基于其巨大的潜力,在目标检测上应用也显得理所当然。
一、提出原因
现有的对象检测算法通常只学习检测检测数据集中存在的类别。增加检测词汇量的常用方法是收集带有更多标记类别的图像。有了如此丰富的词汇,为所有类别收集足够的训练示例变得相当具有挑战性。而对象类别自然地遵循长尾分布。为了为稀有类别找到足够的训练示例,需要大量的数据,这使得扩大检测词汇量的成本很高。
另一方面,互联网上有丰富的成对图像-文本数据,尽管在学习图像级表示法方面取得了巨大的成功,但学习用于开放词汇表检测的对象级表示法仍然具有挑战性。
在这项工作中,我们考虑借用预训练的开放词汇分类模型中的知识来实现open vocabulary检测。
二、相关工作
2.1 第一点:增加视觉识别中的词汇量
利用大词汇量识别物体是计算机视觉中的一个长期研究课题,其中的一个重点是zero-shot识别,旨在识别训练集中不存在的类别。早期使用视觉属性创建类别的二进制代码,用于将学到的知识转移到看不见的类别。在这方面,研究人员还探究了类层次结构、类相似性和对象部分作为有助于知识转移的区分特征。
另一个重点是学习对齐潜在的图像-文本嵌入,使用深度学习的视觉语义嵌入空间。最近的工作 CLIP 和 Align 通过收集百万级的图像-文本对,然后进行训练,突破了这一极限,使用对比学习的联合图像-文本模型。这些模型可以直接转换为一套分类数据集,并取得非常好的性能,在开放词汇的识别方面,我们侧重于检测的对象是使用任意文本作为输入的。
2.2 第二点:增加目标检测的词汇量
扩大数据收集的规模是昂贵的。之前有工作从多个数据集中统一了标签空间的目标检测。zero-shot检测(ZSD)提供了另一个方向。大多数 ZSD方法将区域特征对齐到预先训练的基本类别中的文本embedding。然而,和完全监学习相比存在着巨大的性能差距,为了解决这个问题,Zareian 等人(2021)利用图像对骨干模型进行了预训练,使用检测数据集来调整预先训练好的模型。相反,我们使用图像文本预训练模型作为教师模型来监督学生对象检测器,只评估了几十个类别,而我们是第一个评估超过1000个类别的工作。
三、整体思路
整体的思路是把检测问题转换为proposal分类问题。
【Open-Vocabulary Object Detection的第一个挑战是对本地新类别目标的检测,作者修改了标准的二阶段目标检测器,例如Mask RCNN进行修改,作者替换了它的定位模块,即第二阶段的边界框回归和对于每个感兴趣的区域掩码预测,这些模块只预测所有类别的单个边界框和单个掩码,而不是预测每一个类。这种分类不可知模块可以推广到新的目标检测上。】
看上图的中间,把每个类别的文本标签通过预训练的CLIP投影到多模态空间中得到类别文本向量,然后Inference的时候每个proposal的特征也投影到多模态空间中,再把proposal的特征和类别文本特征进行比对,就可以对proposal进行分类了。
在训练阶段,论文提出首先进行图像的ROI裁剪。先将标注区域的图片裁剪出来,再通过Pre-trained Image Encoder编码得到标注区域的image embeddings。
第二阶段就是通过Mask R-CNN产生类别无关的region embeddings。
那么怎么获得这些image embeddings和region embeddings呢?
论文给出的答案是进行知识蒸馏。
由于CLIP的模型太大,直接使用会计算开销显然过大,所以本文选择映入蒸馏来获得一个相对较小的模型。基本类别转化成文本送入pre-trained text encoder产生text embeddings,将region embeddings和text embeddings进行点积然后softmax归一化,监督信号是对应类别位置1,其余位置为0。
在推理阶段,首先将基本类别和新增类别转化成文本送入pre-trained text encoder产生text embeddings(分别为绿色和蓝色部分),同时通过Mask R-CNN产生类别无关的region embeddings,然后将region embeddings和text embeddings进行点积然后softmax归一化,新增类别(蓝色部分)取最大值的类别为该区域的预测结果。
其中proposal特征的提取是通过用CLIP的模型进行蒸馏学习到的,如下图最右侧所示:
proposal经过head来得到proposal在多模态空间中的特征,其中ViLD-text是在文本模态上,使得proposal的特征逼近文本类别标签的多模态空间特征;而ViLD-image是在视觉模态上,使得proposal的特征逼近用proposal裁剪下的图片送入CLIP之后得到的多模态空间特征。
文本嵌入作为分类器(ViLD-文本):我们使用 CLIP 生成的文本嵌入评估 ViLD-文本,并将其与 (大型纯文本语料库)GloVe 文本embedding中对比。
蒸馏图像embedding(ViLD-image):我们评估 ViLD-image,它从裁剪区域提案的图像嵌入,由 CLIP 的图像编码器推断,蒸馏权重为 1.0。
实验表明,结合客观性的表现对其他方面没有帮助ViLD 的变体提高性能,所以我们只将它应用于 ViLD-image。 在没有使用任何对象类别标签进行训练的情况下,ViLD-image的APr达到了11.2 APr ,而整体 AP的达到了11.5。 这表明视觉蒸馏有效用于开放词汇检测,但在裁剪区域上的性能不如CLIP。
文本+视觉embedding (ViLD):ViLD 显示了使用文本嵌入 (ViLD-text) 将蒸馏损失 (ViLDimage) 与分类损失相结合的好处。 我们在附录表 7 中探索了不同的超参数设置,并观察到两个AP之前存在trade-off,这表明 ViLD-text 和 ViLD-image 之间存在竞争。 在上表中,我们比较ViLD 与其他方法。 它的 APr 比 ViLD-text 高 6.0,比 ViLD-image 高 4.9,这一实验结果表明结合这两个学习目标可以提高新类别的表现。 ViLD优于 Supervised-RFS 3.8 APr,表明我们的开放式词汇检测方法在尾部较少的类别,优于其他的全监督模型。
因为基于CLIP这样强大的预训练模型,才能使得object detection能够真正的面向open world。同时就结构来看,novel AP达到了27.6,相较于之前Zareian的方法,提高了将近五个点,也将这个领域的性能带到了新高度。