PromptDet: Towards Open-vocabulary Detection using Uncurated Images
2022/8/11 23:24:40
本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解
- 2024-12-25安卓NDK 是什么?-icode9专业技术文章分享
- 2024-12-25caddy 可以定义日志到 文件吗?-icode9专业技术文章分享
- 2024-12-25wordfence如何设置密码规则?-icode9专业技术文章分享
- 2024-12-25有哪些方法可以实现 DLL 文件路径的管理?-icode9专业技术文章分享
- 2024-12-25错误信息 "At least one element in the source array could not be cast down to the destination array-icode9专业技术文章分享
- 2024-12-25'flutter' 不是内部或外部命令,也不是可运行的程序 或批处理文件。错误信息提示什么意思?-icode9专业技术文章分享