通过视觉和语言知识蒸馏实现开放词汇目标检测.
本文目标是训练一个开放词汇目标检测器,该检测器可以检测文本输入所描述的任何新类别中的目标。作者把开放词汇目标检测分解成两个子问题:广义目标提议和开放词汇图像分类;通过训练数据集中的基本类别来训练R-CNN中的区域提议网络,然后使用预训练的开放词汇图像分类模型(如CLIP)对裁剪后的目标区域进行分类。
ViLD修改了标准的两阶段目标检测器,把Mask R-CNN中第二阶段针对RPN提取区域的分类模块替换为与类别无关的边界框预测模块,从而使得网络能够提取感兴趣目标的预测,并可以泛化到与类别无关的新目标中。
CLIP是一种在大量图像和文本对上训练的神经网络。作为这种多模态训练的结果,CLIP可用于查找最能代表图像的文本片段,或查找给定文本查询的最合适图像。由于CLIP通过预训练的图像编码器和文本编码器分别提取图像嵌入和文本嵌入,因此需要使检测器提取的区域特征$\cal R$与图像嵌入$\cal V$共享特征空间,这一步通过L1损失蒸馏实现:
\[\mathcal{L}_{\text{ViLD-image}}=\frac{1}{M}\sum_{\hat{r}\in\hat{P}}||\mathcal{V}(\text{crop}(I,\hat{r}_{\{1\times,1.5\times\}}))-\mathcal{R}(\phi(I),{\hat{r}})||_1\]对于学习到的区域特征$\cal R$,与所有预先设置的文本嵌入$\cal T$计算余弦相似度,并通过softmax激活实现对该区域的分类。在训练时文本嵌入仅包括训练集中的基本类别,在推理时文本可以包括所有感兴趣的目标。
\[\begin{aligned} & \mathbf{e}_r=\mathcal{R}(\phi(I),r)\\ & \mathbf{z}(r)=\left[s i m(\mathbf{e}_r,\mathbf{e}_{b g}),s i m(\mathbf{e}_r,\mathbf{t}_1),\cdots,s i m(\mathbf{e}_r,\mathbf{t}_{|C_B|})\right]\\ &\mathcal{L}_{\text{ViLD-text}}=\frac{1}{N}\sum_{r\in P}\mathcal{L}_{\text{CE}}\left(s o f t m a x(\mathbf{z}(r)/\tau),y_r\right) \end{aligned}\]