【计算机视觉 | 目标检测】RegionCLIP: Region-based language-image pretraining

简介: RegionCLIP的目的便是实现从image-text pairs的匹配到region-text pairs的匹配。构建一个模型进行图像区域的推理研究(如目标检测),目的是学习一个包含丰富的对象概念的区域视觉-语义空间,以便它可以用于开放词汇的目标检测。实质上就是训练一个视觉编码器V,使它可以编码图像区域,并将它们与语言编码器L编码的区域描述相匹配。

一、提出原因

使用(image-text pairs)图像-文本对数据的对比语言图像预训练模型(Contrastive language-image pretraining,CLIP)在图像分类方面的zero-shot和迁移学习的取得了非常好的结果。但是,直接应用CLIP这样的模型来进行图像区域推理(如目标检测)效果将会不好。主要原因:CLIP只是进行图像整体与文本描述匹配,而不能捕获图像区域(image regions)与其对应文本之间的细粒度对齐(fine-grained alignment)。也就是CLIP建立的是image-text pair的匹配,并没有对图像里某个目标/对象进行文字描述的匹配,也并不能准确定位图片上的区域。

二、目的

因此,RegionCLIP的目的便是实现从image-text pairs的匹配到region-text pairs的匹配。构建一个模型进行图像区域的推理研究(如目标检测),目的是学习一个包含丰富的对象概念的区域视觉-语义空间,以便它可以用于开放词汇的目标检测。实质上就是训练一个视觉编码器V,使它可以编码图像区域,并将它们与语言编码器L编码的区域描述相匹配。

image.png
上图主要是说明CLIP模型在图像区域的分类效果不好,而该作者的核心想法便是进行一个图像区域与其对应的文本描述的学习。

三、思想方法

从图像描述的文本语料中解析的对象概念,并这些概念填充到预定义的模板中来形成图像区域描述(prompt templates操作)。根据输入图像及其生成的候选区域(如RPN来生成),使用一个预先训练好的CLIP模型来进行图像区域与其区域描述的匹配,形成了region-text pairs数据,即为图像区域创建相应的“伪”标签。此外,我们结合“伪”图像区域-文本描述对(“pseudo” region-text pairs)和真实的图像-文本对(ground-truth image-text pairs),通过对比学习和知识精馏对我们的视觉语言模型(VLP)进行预训练,从而学习region representations。

四、具体步骤

4.1 符号说明

$V_t$表示CLIP的Visual encoder,$L$表示CLIP的Language encoder,$V$表示自己(RegionCLIP)的Visual encoder。

主要方法就是,先利用CLIP预训练模型进行图像与文本描述的匹配(Image-text pretraining),从而训练一个Visual encoder $V_t$和Language encoder $L$,然后,进行region-text pretraining,将$V_t$作为teacher model,$V$作为student model,利用知识蒸馏(Knowledge Distillation,KD)的方法,将$V_t$学到的知识提取到$V$,而Language encoder $L$在image-text pretraining与region-text pretraining,始终保持一致。

image.png

4.2 Image-text pretraining(CLIP)

即利用CLIP预训练一个image-text level的Visual encoder $V_t$和Language encoder $L$。

4.3 Region-text pretraining

首先是region-text pairs的生成,这里又分为Visual region representation和Semantic region representation。

4.3.1 Visual region representation

关于visual region representation的表达,文中指出将目标检测任务分解为定位与识别。

首先利用现成的目标定位器(off-the-shelf object localizers,如RPN)生成一些候选区域$r$(proposed regions),(实际上,默认使用了只带bounding boxes标签,不带分类标签进行RPN的预训练),因此,这里便是使用RPN进行图像区域的定位的操作。

将由RPN形成的候选区域$r$(proposed regions)经过visual encoder $V_t$ 进行Visual region representation(这里通过了特征池化feature pooling(如RoIAlign)的方法对RPN形成的候选区域的特征进行池化),形成每个候选区域$r$对应Visual 特征$v$。

4.3.2 Semantic region representation

Semantic region representation的实现相对来说更为容易一些,文中指出,利用现成的语言解析器(off-the-shelf language parsers)从文本语料库(text corpus,指的就是对图片的描述文本)提取出有关目标/对象的词库(a pool of object concepts,感觉就是提出图像中对象的名称,图片有猫,就将图片对应文本描述中cat这个词提取出来).然后将这个object concepts pool转化为prompt templates,(比如:cat-->a photo of a cat),就相当于从对图像的描述转化为了对图像区域的更细节的描述。

然后利用第一步CLIP训练好的language encoder $L$ 来进行 Semantic region representation(感觉就是word embedding,转化为向量)形成对应的semantic embeddings $l$。

4.3.3 Alignment of region-text pairs

通过对前面visual encoder与language encoder分别形成的regions feature $v$ 和 semantic embeddings $l$ 计算其之间的余弦相似度(内积)进行一个匹配,选择对应相似度最高的作为一个region-text pair。这样就为每一个图像区域生成了一个伪标签(pseudo label for each region):
$$ S(v,l)=\frac{v^T\cdot l}{||v||\cdot ||l||} $$

4.3.4 Pretraining scheme

形成region-text pairs数据后联合现存的image-text pairs均使用,就可以开始自己的visual encoder $V$ 的预训练来进行visual region representation。(值得注意的是visual encoder $V$ 是经由teacher visual encoder $V_t$ 来初始化的),文中设计对比损失和蒸馏损失(contrastive and a distillation loss)。
$$ L_{cntrst}=\frac{1}{N}\sum_i-\log(p(v_i,l_m)) $$

其中:
$$ p(v_i,l_m)=\frac{\exp(S(v_i,l_m)/T)}{\exp(S(v_i,l_m)/T)+\sum_{k\in N_{r_i}}\exp(S(v_i,l_k)/T)} $$

image.png
考虑到之前设计的contrastive loss是针对region-level的,而在训练过程中使用了image-text pairs数据,因此,还应该设计image-level contrastive loss,对于image就直接当作由一个框覆盖了所有的区域(不管里面有多少对象)即可。

image.png

论文后面就是使用RegionCLIP进行一些相关实验(迁移到Open-Vocabulary Object Detection和Fully Supervised Object Detection、Zero-shot Inference for Object Detection以及一些消融对比实验),还没有继续仔细看。

相关文章
|
7月前
|
算法 计算机视觉
计算机视觉目标检测性能指标
目标检测是计算机视觉领域中的一个重要任务,其目标是在图像或视频中识别出物体的位置和类别。为了评估目标检测算法的性能,需要使用一系列指标来量化模型的准确性、召回率、精确率以及对不同类别的处理能力。本文将详细介绍常见的目标检测性能指标,包括精确率、召回率、F1分数、IoU、AP、mAP、P-R曲线等,同时提供相关公式和案例。
237 0
|
7月前
|
机器学习/深度学习 编解码 监控
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-1
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-1
|
7月前
|
机器学习/深度学习 监控 算法
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
|
7月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
134 2
|
7月前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
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设备的学习者参考。
|
7月前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
7月前
|
机器学习/深度学习 编解码 算法
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)-2
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)-2

热门文章

最新文章