【计算机视觉 | 目标检测】Open-vocabulary Object Detection via Vision and Language Knowledge Distillation

简介: 在这项工作中,我们考虑借用预训练的开放词汇分类模型中的知识来实现open vocabulary检测。

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进行分类了。

image.png

在训练阶段,论文提出首先进行图像的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的模型进行蒸馏学习到的,如下图最右侧所示:

image.png
proposal经过head来得到proposal在多模态空间中的特征,其中ViLD-text是在文本模态上,使得proposal的特征逼近文本类别标签的多模态空间特征;而ViLD-image是在视觉模态上,使得proposal的特征逼近用proposal裁剪下的图片送入CLIP之后得到的多模态空间特征。
image.png

文本嵌入作为分类器(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的方法,提高了将近五个点,也将这个领域的性能带到了新高度。

相关文章
|
7月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
134 2
|
2月前
|
机器学习/深度学习 算法 安全
基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)
基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)
31 0
|
7月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
3月前
|
人工智能 并行计算 PyTorch
AI计算机视觉笔记十八:Swin Transformer目标检测环境搭建
本文详细记录了Swin Transformer在AutoDL平台上的环境搭建与训练过程。作者从租用GPU实例开始,逐步介绍了虚拟环境的创建、PyTorch安装、mmcv及mmdetection的配置,并解决了安装过程中遇到的各种问题,如cython版本冲突等。最后,通过修改代码实现目标检测结果的保存。如需了解更多细节或获取完整代码,请联系作者。原文链接:[原文链接](请在此处插入原文链接)。
|
3月前
|
机器学习/深度学习 人工智能 算法
AI计算机视觉笔记十一:yolo5+Deepsort实现目标检测与跟踪(CPU版)
DeepSORT是一种基于深度学习的计算机视觉跟踪算法,扩展了SORT算法,通过添加外观描述符减少身份切换,提高跟踪效率。本文档提供了DeepSORT环境搭建步骤,包括创建虚拟环境、安装依赖及解决常见错误等,最终实现人员和车辆的跟踪计数功能。适合无GPU设备的学习者参考。
|
4月前
|
UED 开发工具 iOS开发
Uno Platform大揭秘:如何在你的跨平台应用中,巧妙融入第三方库与服务,一键解锁无限可能,让应用功能飙升,用户体验爆棚!
【8月更文挑战第31天】Uno Platform 让开发者能用同一代码库打造 Windows、iOS、Android、macOS 甚至 Web 的多彩应用。本文介绍如何在 Uno Platform 中集成第三方库和服务,如 Mapbox 或 Google Maps 的 .NET SDK,以增强应用功能并提升用户体验。通过 NuGet 安装所需库,并在 XAML 页面中添加相应控件,即可实现地图等功能。尽管 Uno 平台减少了平台差异,但仍需关注版本兼容性和性能问题,确保应用在多平台上表现一致。掌握正确方法,让跨平台应用更出色。
61 0
|
4月前
|
数据采集 API TensorFlow
简化目标检测流程:深入探讨TensorFlow Object Detection API的高效性与易用性及其与传统方法的比较分析
【8月更文挑战第31天】TensorFlow Object Detection API 是一项强大的工具,集成多种先进算法,支持 SSD、Faster R-CNN 等模型架构,并提供预训练模型,简化目标检测的开发流程。用户只需准备数据集并按要求处理,选择预训练模型进行微调训练即可实现目标检测功能。与传统方法相比,该 API 极大地减少了工作量,提供了从数据预处理到结果评估的一站式解决方案,降低了目标检测的技术门槛,使初学者也能快速搭建高性能系统。未来,我们期待看到更多基于此 API 的创新应用。
40 0
|
5月前
|
机器学习/深度学习 人工智能 算法
计算机视觉:目标检测算法综述
【7月更文挑战第13天】目标检测作为计算机视觉领域的重要研究方向,近年来在深度学习技术的推动下取得了显著进展。然而,面对复杂多变的实际应用场景,仍需不断研究和探索更加高效、鲁棒的目标检测算法。随着技术的不断发展和应用场景的不断拓展,相信目标检测算法将在更多领域发挥重要作用。
|
7月前
|
SQL Java 关系型数据库
MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法
MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法
125 0
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
114 4