DeFRCN论文学习(复现)

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)

    A(x).使来自同一个backbone的特征图映射到新的特征空间中,实现一定程度的解耦。

  • 反向传播时,GDL的主要作用是 反向传播的梯度会根据模块的不同(RPN或RCNN),乘上一个不同的

    λ

    \lambda

    λ.从而使方向传播的梯度权重不同。(当模块的

    λ

    \lambda

    λ设为0时,反向传播的梯度为0,这时候主干的优化和RPN或RCNN模块的优化就无关了。具体看下面公式)

当整体模型进行优化时,RPNRCNN模块的梯度优化不受影响。但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

chujiaming4fw

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

目标检测中算法评价指标FPS

一、FPS(每秒传输帧数-Frames Per Second)是什么 FPS就是目标网络每秒可以处理(检测)多少帧(多少张图片),FPS简单来理解就是图像的刷新频率,也就是每秒多少帧,假设目标检测网络

Yolo系列知识点梳理(Yolov1-v5)

1 概述 Yolo系列的模型是大多数做目标检测的图像算法工程师都在使用的,使用时经常也是先用了看看效果再说,如果效果不错,有时间再回头来研究一下模型,有时甚至就忘了回过头来细究。这篇文章