【Arxiv2023】Detect Everything with Few Examples

【Arxiv2023】Detect Everything with Few Examples

机构:罗格斯大学

论文地址:https://arxiv.org/abs/2309.12969v3

代码地址:https://github.com/mlzxy/devit

本文提出了小样本目标检测领域的SOTA方法DE-ViT,采用元学习训练框架。DE-ViT提出了一种新的区域传递机制用于检测框定位,并且提出了一种空间积分层来讲mask转化为检测框输出。DE-ViT相比之前的方法提升巨大,在COCO数据集上,10-shot提升15AP,30shot提升7.2AP。

文章贡献/创新点

  • 提出了一种FSOD的SOTA方法,DE-ViT,不需要微调。
  • 提出了一种新的区域传递框架,一个将mask转化为box的空间积分层,和一个新的特征投影层。
  • DE-ViT在多个小样本和单样本检测任务上取得了SOTA性能。

虽然本文的性能很高,但本文采用的是DINO预训练的ViT,而不是其他方法采用的ResNet101作为backbone,所以其性能提升也有很大成都是来自于backbone的改进。

小样本目标检测(FSOD)任务定义

FSOD任务有基类 C b a s e C_{base} Cbase和新类 C n o v e l C_{novel} Cnovel两种类别, C = C b a s e ∪ C n o v e l C=C_{base}\cup C_{novel} C=CbaseCnovel并且 C b a s e ∩ C n o v e l = ∅ C_{base}\cap C_{novel}=\emptyset CbaseCnovel=,基类有足够多的样本而新类只有少量样本。对于 K K K-shot小样本任务,数据集中的每个新类只有 K K K个检测框标注,通常 K = 1 , 3 , 5 , 10 , 30 K=1,3,5,10,30 K=1,3,5,10,30

区域传递网络

文章认为,尽管预训练的ViT有很多语义信息,但缺乏用于box回归的坐标信息。通常做法是在基类上微调ViT backbone,但文章发现微调会导致ViT完全过拟合base类别而在新类上性能降低。这一点根据实验结果也可以看出来,如果直接微调的话,基类上 bAP 50 = 48.9 \text{bAP}_{50}=48.9 bAP50=48.9 bAP 75 = 22.5 \text{bAP}_{75}=22.5 bAP75=22.5,性能很高,而新类上 nAP 50 = 4.5 \text{nAP}_{50}=4.5 nAP50=4.5 nAP 75 = 2.2 \text{nAP}_{75}=2.2 nAP75=2.2性能很低,说明直接微调会验中过拟合到base类别上,新类根本训不出来。

新类上性能折半的问题在很多方法中都有存在,尤其是基于微调的方法。例如,TFA方法在10-shot的COCO数据集上基类上 bAP = 33.9 \text{bAP}=33.9 bAP=33.9而新类上 nAP = 10 \text{nAP}=10 nAP=10,在30-shot的COCO数据集上基类 bAP = 34.5 \text{bAP}=34.5 bAP=34.5而新类 nAP = 13.5 \text{nAP}=13.5 nAP=13.5。在新类上的性能下降比较严重。

为了解决这个问题,文章先用现成的RPN网络为图片生成候选区,并将候选区扩大一定比例来获取上下文信息。这些初始候选区会输入区域传递网络,经过逐层传播和微调,让其逐步拟合到物体真值检测框。而在微调过程中,作者并没有直接预测bounding box坐标,而是先预测mask输出,然后提出了一种可学习的空间积分层来将mask转化为bounding box输出。整体框架如下图所示:

区域传递网络

区域传递层

假设图片经过backbone和RoI后得到了相应的候选区 r r r和相应的候选区特征 h h h。区域传递层会根据之前所有次传播输出的候选区 r 0 : t − 1 ∈ R t × K × K r_{0:t-1}\in\mathbb R^{t\times K\times K} r0:t1Rt×K×K和上一次传播输出的候选区特征 h t − 1 ∈ R S × K × K h_{t-1}\in\mathbb R^{S\times K\times K} ht1RS×K×K来输出更新后的候选区 r t ∈ R 1 × K × K r_t\in\mathbb R^{1\times K\times K} rtR1×K×K、特征 h t ∈ R S × K × K h_t\in\mathbb R^{S\times K\times K} htRS×K×K、检测框坐标 b t ∈ R 4 b_t\in\mathbb R^4 btR4和类别分数 c t ∈ R c_t\in\mathbb R ctR。除了 b t b_t bt c t c_t ct,PL模块的其他输入和输出是相同的,因此可以堆叠提高性能。下面是PL模块的更新准则:

h t = f update , t ( c o n c a t ( r 0 : t − 1 , h t − 1 ) ; θ ) , h t , r e g i o n = f region , t ( h t ; θ ) r t = σ ( h t , r e g i o n ) , b t = f integral , t ( h t , r e g i o n ; θ ) c t = f class , t ( WeightedAvgPool ( h t , r t ) ; θ ) h_t=f_{\text{update},t}(\mathrm{concat}(r_{0:t-1},h_{t-1});\theta), h_{t,region}=f_{\text{region},t}(h_t;\theta)\\ r_t=\sigma(h_t,region), b_t=f_{\text{integral},t}(h_{t,region};\theta)\\ c_t=f_{\text{class},t}(\text{WeightedAvgPool}(h_t,r_t);\theta) ht=fupdate,t(concat(

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值