文章目录[隐藏]
DeFRCN: Decoupled Faster R-CNN for Few-Shot Object Detection
关键词
涉及领域
Object Detection; Few-show;
前人架构
Faster RCNN
模型框架
总体框架
详细框架
解决的问题:
多任务问题
Faster R-CNN的三个模块构成了一个统一的多任务学习(MTL)框架,但这些子网络的优化目标之间存在一定的不一致性。具体来说,利用从参数共享的主干中提取的特征图,RPN的目标是生成与类无关的区域建议,告诉网络看哪里,而RCNN目标执行基于区域的检测类别,以确定要看什么。此外,分类头需要平移不变特征,而定位头则需要平移协变特征。尽管多任务学习通常有助于提高目标检测的端到端性能,如faster R-CNN[39]所示,但也可能导致单个任务出现次优的解决方案,以平衡它们的目标不匹配问题[8,53]。
backbone问题
根据[39]中的论点,共享主干的最终目标是提取尽可能适合于所有下游任务的一般特征。事实上,从图中梯度流动的角度来看,RPN和RCNN通过共享的骨干网相互交换优化信息。然而,由于RPN和RCNN之间的潜在矛盾,我们注意到当前的架构可能会导致整个框架的小样本检测能力降低。此外,小样本检测阶段检测器
F
n
o
v
e
l
F_{novel}
Fnovel的共享主干通常来自基础训练阶段时的基础检测器
F
b
a
s
e
F_{base}
Fbase的微调。在这两阶段跨域过程中,RPN可能会出现前景-背景混淆问题,这意味着基础训练阶段的背景proposal可能成为新微调阶段的前景。
创新性结构
1、Gradient Decoupled Layer(GDL)
解决的问题:backbone问题。
结构图如下:
结构函数化如下:
其中
G
(
)
G()
G()为GDL模块,
A
(
)
A()
A()为仿射矩阵,
λ
\lambda
λ为超参数,
x
x
x为输入特征图。
结构描述:
- 前向传播时,GDL的作用主要是进行仿射变换Affine
A
(
x
)
A(x)
- 反向传播时,GDL的主要作用是 反向传播的梯度会根据模块的不同(RPN或RCNN),乘上一个不同的
λ
\lambda
λ
\lambda
当整体模型进行优化时,RPN和RCNN模块的梯度优化不受影响。但Backbone的优化会受到GDL模块的影响。
θ
b
\theta_b
θb代表backbone的优化参数,可以看到,在加入了GDL模块后,
θ
b
\theta_b
θb的优化情况就受到
λ
1
\lambda_1
λ1和
λ
2
\lambda_2
λ2的影响。如果我们把
λ
1
\lambda_1
λ1设为0,那么Backbone的优化方向就只会被RCNN模块影响,RPN模块不会反向传播到Backbone模块。反之同理。
伪代码
2、 Prototypical Calibration Block(PCB)
解决的问题:为了在推理时有效地解耦分类和定位任务。
模型结构图:
PCB模块由一个来自ImageNet预训练模型的强classifier、一个RoIAlign层和一个prototype bank组成。
具体作用:消除高置信度的假正例和恢复低置信度的真正例。
实现步骤:面对M-way K-shot任务,支持集S,PCB首先提取图片的原始特征图,然后根据真值boxes应用RoIAlign层来产生MK个实例表示。基于这些特征,我们把支持集S缩小为原型库
P
=
{
p
c
}
c
=
1
M
P = \{p_c\}^{M}_{c=1}
P={pc}c=1M。
p
c
p_c
pc定义如下:
S
c
S_c
Sc为支持集
S
S
S中具有相同标签
c
c
c的样本形成的子集。在得到来自box classifier的proposal(
y
i
^
=
(
c
i
,
s
i
,
b
i
)
\hat{y_i}=(c_i,s_i,b_i)
yi^=(ci,si,bi),
c
i
c_i
ci为该proposal的预测类别,
s
i
s_i
si为该proposal的预测置信度,
b
i
b_i
bi为该proposal的预测检测框)后,PCB在proposal中的box上先应用RoIAlign层生成目标特征
x
i
x_i
xi。然后计算
x
i
x_i
xi和
p
c
i
{p_c}_i
pci之间的余弦相似度。公式如下:
最后,我们对余弦相似度
s
i
c
o
s
s_i^{cos}
sicos和检测器预测的proposal中的置信度
s
i
s_i
si进行加权聚合。
此外,我们在小样本检测器和PCB模块间不分享任何参数,因此PCB不仅可以保证分类任务中物体平移不变性的质量,还可以更好的解耦RCNN中的分类任务和回归任务。
此外PCB模块是离线的,不需要进行任何进一步的训练,即插即用。
个人理解:其实PCB模块只是又引入了一个图像特征提取模型,这个模型没有像backbone和head那样被训练调整过,因此可以保留对分类任务的专一性,不会受到回归任务的影响,从而提高小样本分类的效果。
版权声明:本文为CSDN博主「chujiaming4fw」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42173552/article/details/121358516
暂无评论