C/C++教程

PromptDet: Towards Open-vocabulary Detection using Uncurated Images

本文主要是介绍PromptDet: Towards Open-vocabulary Detection using Uncurated Images,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

使用image-text pair数据+anation数据训练的2阶段检测模型FastRCNN,具有开集检测能力

1、动机

引入image-text pair LAION-400M数据集,训练开集检测模型

2、模型

2阶段检测模型Fast RCNN,分类层换成CLIP模型text encoder生成分类器
针对image-text pair数据集LAION-400M利用方式的问题,区别于OVRCNN,使用self-training方式,为image-text pair 数据生成box伪标签,然后进行训练

2.1 RPL(Region Prompt Learning)

分类使用CLIP的text encoder生成的text encoding, 由于CLIP预训练text encoder对齐的image是场景为中心的,不是目标检测需要对齐的object为中心的,因此使用Prompt方式进行微调

2.2 训练过程

  • 1、RPL:LVIS base 类别数据训练Prompt,train prompt by crop image from LVIS base 类别,注意这里的crop不是按照gt的wigth和heigh直接crop,而是都放大了3倍,而且每类取200组。
  • 2、sourcing:按照PRL得到的prompt和knn索引从LAION-400M构造LAION-novel数据集,该数据集每novel类选择300张图片作为训练集用于后续self-training(数据筛选方式是通过 CLIP计算image embedding和每个类别的RPL的text embedding,每个类别去相似度得分最高的Top K,实验证明K越大效果越好,最终选300.注意这里是用RPL和CLIP image encoder在整图的image embedding去计算相似度,通过这种方式选出以object为中心的那些图片)
  • 3、迭代执行第1和第2步(实验表明迭代提点),第二步需要找到base 类别的图片,然后用LVIS base类别+第二步新找到的base类别图片,有会到第一步做RPL,更新prompt,继而继续更新LAION-novel数据集
  • 4、一个learning schedule:LVIS-base image训练Fast RCNN 6 epoch,然后用LVIS-base+LAION-novel训练6 epoch,然后训练6 x learning schedule

3、效果

LVIS:

COCO:

4、消融实验

4.1、RPL

文本prompt有用,RPL更有用,这里应该是RPL和souring迭代后的RPL,从下面第二个表格看不迭代性能比原来还差

4.2、Proposal选择

proposal框的选择方式,框的置信度最高的选择方式最好

4.3、LAION-novel每张图片生成伪box个数

按照以上置信度选择top20最好

4.3、LAION-novel每类图片个数

结论是每类图片越多越好

4.4、self-training组件是否训练

RPN和bbox head都需要训练

这篇关于PromptDet: Towards Open-vocabulary Detection using Uncurated Images的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!