Cross-Layer Feature Pyramid Transformer for Small Object Detection in Aerial Images
论文链接:http://arxiv.org/abs/2407.19696
代码链接:https://github.com/duzw9311/CFPT
一、摘要
目标检测在航空图像中一直是一项具有挑战性的任务,因为物体的尺寸通常很小。目前大多数检测器优先考虑新的检测框架,往往忽视了对基本组件,如特征金字塔网络的研究。本文引入了Cross-Layer Feature Pyramid Transformer (CFPT),这是一种专为航空图像中小目标检测设计的无上采样器特征金字塔网络。CFPT集成了两种精心设计的注意力块,具有线性的计算复杂度:Cross-Layer Channel-Wise Attention (CCA)和Cross-Layer Spatial-Wise Attention(CSA)。CCA通过沿空间维度划分通道标记组来实现跨层交互,而CSA通过沿通道维度划分空间标记组来实现跨层交互。通过集成这些模块,CFPT能够在一步之内实现跨层交互,从而避免了与逐元素求和和逐层传输相关的语义差距和信息丢失。此外,CFPT还融入了全局上下文信息,这增强了小目标检测的性能。为了在跨层交互过程中进一步提高位置意识,基于层间相互感受野提出了Cross-Layer Consistent Relative Positional Encoding(CCPE)。在两个具有挑战性的航空图像目标检测数据集上评估了CFPT的有效性,即VisDrone2019-DET和TinyPerson。大量的实验证明了CFPT的有效性,它优于最先进的特征金字塔网络,同时计算成本更低。
二、创新点
论文提出了一种用于空中图像中小目标检测的新型特征金字塔网络,名为跨层特征金字塔Transformer(CFPT)。如图2所示,CFPT是无上采样器的,可以避免上采样引起的额外计算和内存使用,以提高计算效率。CFPT由两个精心设计的Transformer块组成,即跨层通道注意力(CCA)和跨层空间注意力(CSA)。CCA沿着通道维度进行跨层特征交互,而CSA沿着空间维度进行跨层特征交互。通过整合这两个模块,模型可以在一步之内实现跨层信息传递,从而减少由于语义差距导致的性能下降,并最小化与逐层传播相关的信息损失。此外,CFPT有效地整合了对小目标至关重要的全局上下文信息,并通过跨尺度邻域交互优先考虑富含小对象信息的浅层特征图,这些能力通常是传统FPN所无法实现的。此外,为了增强模型在捕获全局上下文信息时的位置意识,提出了跨层一致相对位置编码(CCPE),使模型能够利用跨层的空间和通道点的位置先验来推导出更准确的相似矩阵[13]。
-
提出了一种新型的无上采样器特征金字塔网络CFPT,用于空中图像中小物体的检测。CFPT可以在一步内完成多尺度特征交互,并通过跨层邻域交互组明确地为浅层特征映射提供更多关注,实现了无损信息传输,同时引入了局部归纳偏置。
-
提出了两种具有线性计算复杂度的跨层注意力块,即CCA和CSA,它们促进了不同方向(即空间维度和通道维度)的跨层信息交互。通过整合这两种方法,CFPT可以有效地捕捉到小物体所需的全局上下文信息,同时保持较低的计算成本。
-
提出了CCPE,一种基于层间相互感受野的新的位置编码,旨在增强模型在跨层交互过程中的空间和通道位置意识。
-
通过在VisDrone2019-DET和TinyPerson数据集上的广泛实验,证明了CFPT在空中图像中小物体检测方面的有效性。
目录
三、原理
A. Overview
如图4所示,CFPT使用多个并行的CBR块来构建特征提取网络(例如ResNet [34])的多级特征图输出,用于交叉层特征交互的输入,从而减少计算复杂度并满足大多数检测器的架构要求。通过利用堆叠的跨层注意力模块(CAMs),CFPT能够增强模型利用全局上下文信息和跨层多尺度信息的能力。
具体来说,CAM模块由一系列跨层通道注意力(CCA)和跨层空间注意力(CSA)组成。CCA促进了沿着通道维度的局部跨层交互,通过每个通道标记组内的交互建立了沿着空间维度的全局感受野。相反,CSA促进了沿着空间维度的局部跨层交互,通过每个空间标记组内的交互捕获了沿着通道维度的全局上下文信息。此外,通过在CAM的输入和输出之间使用残差连接进一步提高了梯度的增益。
假设CBR块后的每个尺度特征图可以表示为
X
=
X
i
∈
R
H
i
×
W
i
×
C
i
=
0
L
−
1
X = {X_{i} \in R^{H_{i}×W_{i}×C}}^{L−1}_{i=0}
X=Xi∈RHi×Wi×Ci=0L−1,其中
L
L
L是输入层的数量,每个特征图的空间分辨率
H
i
×
W
i
H_{i} ×W _{i}
Hi×Wi随着
i
i
i的增加而增加,同时保持相同的通道数
C
C
C。上述过程可以描述为
Y
=
C
A
M
(
X
)
=
C
S
A
(
C
C
A
(
X
)
)
+
X
(1)
Y = CAM(X) = CSA(CCA(X)) + X \tag1
Y=CAM(X)=CSA(CCA(X))+X(1)
其中,
Y
=
{
Y
i
∈
R
H
i
×
W
i
×
C
}
i
=
0
L
−
1
Y = \{Y_{i} \in R^{H_{i}×W_{i}×C}\}^{L−1}_{i=0}
Y={Yi∈RHi×Wi×C}i=0L−1是一组跨层交互后保持与输入特征图相同形状的多尺度特征图集。
CFPT消除了复杂的特征上采样操作和逐层信息传输机制,这些机制在层间传输过程中容易导致信息丢失,并增加了计算负载和内存访问延迟。相反,利用尺度间的相互感受野大小对多尺度特征图执行局部分组操作,并通过一步跨层邻近交互操作促进尺度间的信息混合。这种方法使得每个尺度的特征能够以平衡的方式(即使层之间相距较远)获取其他层的信息,同时促进了自纠正,并受益于局部交互提供的归纳偏置[32]。
B. Cross-layer Channel-wise Attention
假设CCA的输入特征图集合为
X
=
{
X
i
∈
R
H
i
×
W
i
×
C
}
i
=
0
L
−
1
X = \{X_{i} \in R^{H_{i}×W_{i}×C}\}^{L−1}_{i=0}
X={Xi∈RHi×Wi×C}i=0L−1。如图5(a)所示,CCA在通道维度上跨层执行多尺度邻域交互,从而为每个通道标记提供全局空间维度的上下文信息。为了构建交互输入,首先对每个尺度的特征图执行通道重建(CR),以确保它们具有相同的空间分辨率,从而获得
X
^
=
{
X
^
i
∈
R
H
0
×
W
0
×
H
i
W
i
H
0
W
0
×
C
}
i
=
0
L
−
1
\hat{X} = \{\hat{X}_{i} \in R^{H_{0}×W_{0}×\frac{H_{i}W_{i}}{H_{0}W_{0}} ×C}\}^{L−1}_{i=0}
X^={X^i∈RH0×W0×H0W0HiWi×C}i=0L−1。CR是一种类似于YOLOv5中Focus的操作,但它不同之处在于它不使用额外的操作进行特征映射。相反,CR将空间维度的特征值堆叠到通道维度上,从而在保持效率的同时实现了统一的空间分辨率。上述过程可以描述为
X
^
=
C
R
(
X
)
(2)
\hat{X} = CR(X)\tag2
X^=CR(X)(2)
重叠通道级patch分区(OCP)
形成通道级的token组,这可以被视为局部区域沿通道维度的重叠区域中的patch嵌入 [25],其中不同尺度特征图的patch大小各不相同。具体来说,根据多尺度特征的形状,相邻特征图的通道大小在
X
^
\hat{X}
X^中相差一个因子
4
4
4(即
H
i
W
i
H
0
W
0
=
4
i
\frac{H_{i}W_{i}}{H_{0}W_{0}} = 4^{i}
H0W0HiWi=4i)。为了构建重叠的邻近交互组,引入一个扩展因子
α
\alpha
α在
X
^
\hat{X}
X^上执行OCP,结果得到
X
~
=
{
X
~
i
∈
R
C
×
(
4
i
+
α
)
×
H
0
W
0
}
i
=
0
L
−
1
\tilde{X} = \{\tilde{X}_{i} \in R^{C×(4^{i}+\alpha)×H_{0}W_{0}}\}^{L−1}_{i=0}
X~={X~i∈RC×(4i+α)×H0W0}i=0L−1。上述过程可以描述为
X
~
=
O
C
P
(
X
^
,
α
)
(3)
\tilde{X} = OCP(\hat{X},\alpha)\tag3
X~=OCP(X^,α)(3)
以第 i i i层的特征图进行示例,在获得 X ~ i \tilde{X}_{i} X~i之后,使用跨层一致的多头注意力来捕捉空间维度上的全局依赖关系,从而得到交互结果 Y ~ i ∈ R C × ( 4 i + α ) × H 0 W 0 \tilde{Y}_{i} \in R^{C×(4^{i}+\alpha)×H_{0}W_{0}} Y~i∈RC×(4i+α)×H0W0。
( Q i , K i , V i ) = ( W i q X ~ i , W i k X ~ i , W i v X ~ i , ) (4) (Q_{i},K_{i},V_{i}) = (W^{q}_{i}\tilde{X}_{i}, W^{k}_{i}\tilde{X}_{i}, W^{v}_{i}\tilde{X}_{i},)\tag4 (Qi,Ki,Vi)=(WiqX~i,WikX~i,WivX~i,)(4)
Y ~ i = S o f t m a x ( Q i K d k + P i ) V (5) \tilde{Y}_{i}=Softmax(\frac{Q_{i}K}{\sqrt{d_{k}}} + P_{i})V\tag5 Y~i=Softmax(dkQiK+Pi)V(5)
在式中, W q , W i k , W i v ∈ R C × C W^{q},W^{k}_{i} ,W^{v}_{i} \in R^{C×C} Wq,Wik,Wiv∈RC×C 是线性投影矩阵。 K = [ K 0 , K 1 , . . . , K L − 1 ] ∈ R C × ∑ i = 0 L − 1 ( 4 i + α ) × H 0 W 0 K = [K_{0},K_{1},...,K_{L−1}] \in R^{C×\sum^{L−1}_{i=0} (4^{i}+\alpha)×H_{0}W_{0}} K=[K0,K1,...,KL−1]∈RC×∑i=0L−1(4i+α)×H0W0 和 V = [ V 0 , V 1 , . . . , V L − 1 ] ∈ R C × ∑ i = 0 L − 1 ( 4 i + α ) × H 0 W 0 V = [V_{0},V_{1},...,V_{L−1}] \in R^{C×\sum^{L−1}_{i=0} (4^{i}+\alpha)×H_{0}W_{0}} V=[V0,V1,...,VL−1]∈RC×∑i=0L−1(4i+α)×H0W0分别表示连接后的键和值,其中 [ ⋅ ] [·] [⋅]表示连接操作。 P i P_{i} Pi 表示第 i i i个跨层一致相对位置编码(CCPE),详细信息将在下面内容中介绍。注意,为了简化,只考虑头数为1的情况。实践中采用多头机制为每个通道token捕捉全局依赖。
在获得特征图每个尺度的交互结果 Y ~ = Y ~ i i = 0 L − 1 \tilde{Y} ={\tilde{Y}_{i}}^{L−1}_{i=0} Y~=Y~ii=0L−1后,应用**反向重叠通道式Patch分区(ROCP)**来恢复OCP的影响,并获得 Y = Y ~ i ∈ R H 0 × W 0 × H i W i H 0 W 0 × C L − 1 i = 0 Y = {\tilde{Y}_{i} \in R^{H_{0}×W_{0}×\frac{H_{i}W_{i}}{H_{0}W_{0}} ×C}}^{L−1}{i=0} Y=Y~i∈RH0×W0×H0W0HiWi×CL−1i=0。作为OCP的反向操作,ROCP旨在使用与OCP相同的卷积核大小和步长来恢复原始的空间分辨率。
最后,使用**空间重建(SR)**来获得结果
Y
=
Y
i
∈
R
H
i
×
W
i
×
C
i
=
0
L
−
1
Y ={Y_{i} \in R^{H_{i}×W_{i}×C}}^{L−1}_{i=0}
Y=Yi∈RHi×Wi×Ci=0L−1,其形状与输入
X
X
X 匹配。
Y
=
S
R
(
Y
^
)
=
S
R
(
R
O
C
P
(
Y
~
,
α
)
)
Y = SR(\hat{Y}) = SR(ROCP( \tilde{Y}, \alpha))
Y=SR(Y^)=SR(ROCP(Y~,α))
C. Cross-layer Spatial-wise Attention
由于输入特征图的通道尺寸在CBR块之后匹配(例如256),因此不需要像CCA那样使用CR和SR方法对齐它们的尺寸。因此,可以直接执行重叠的空间token分区(OSP)来形成空间token组,这可以被视为在不同尺度上使用不同大小的矩形框对特征图进行滑动裁剪。假设OSP的扩展因子为
β
\beta
β,通过上述操作,可以得到
X
^
=
X
^
i
∈
R
H
0
×
W
0
×
(
2
i
+
β
)
2
×
C
i
=
0
L
−
1
\hat{X} = {\hat{X}_{i} \in R^{H_{0}×W_{0}×(2^{i}+\beta)^{2}×C}}^{L−1}_{i=0}
X^=X^i∈RH0×W0×(2i+β)2×Ci=0L−1。上述过程可以表示为:
X
^
=
O
S
P
(
X
,
β
)
(7)
\hat{X} = OSP(X,\beta)\tag7
X^=OSP(X,β)(7)
然后,可以在跨层的空间相关token组内进行局部交互,并使用跨层一致的多头注意力来沿通道维度捕获全局依赖关系,从而获得
Y
^
=
Y
^
i
∈
R
H
0
×
W
0
×
(
2
i
+
β
)
2
×
C
i
=
0
L
−
1
\hat{Y} = {\hat{Y}_{i} \in R^{H_{0}×W_{0}×(2^{i}+\beta)^{2}×C}}^{L−1}_{i=0}
Y^=Y^i∈RH0×W0×(2i+β)2×Ci=0L−1。对于第
i
i
i层的特征图,这个过程可以表示如下:
( Q i , K i , V i ) = ( W i q X ^ i , W i k X ^ i , W i v X ^ i , ) (8) (Q_{i},K_{i},V_{i}) = (W^{q}_{i}\hat{X}_{i}, W^{k}_{i}\hat{X}_{i}, W^{v}_{i}\hat{X}_{i},)\tag8 (Qi,Ki,Vi)=(WiqX^i,WikX^i,WivX^i,)(8)
Y
^
i
=
S
o
f
t
m
a
x
(
Q
i
K
d
k
+
P
i
)
V
(9)
\hat{Y}_{i}=Softmax(\frac{Q_{i}K}{\sqrt{d_{k}}} + P_{i})V \tag9
Y^i=Softmax(dkQiK+Pi)V(9)
其中,
W
q
W^{q}
Wq,
W
i
k
W^{k}_{i}
Wik ,
W
i
v
∈
R
C
×
C
W^{v}_{i} \in R^{C×C}
Wiv∈RC×C 是线性投影矩阵。
K
=
[
K
0
,
K
1
,
.
.
.
,
K
L
−
1
]
∈
R
H
0
×
W
0
×
∑
i
=
0
L
−
1
(
2
i
+
β
)
2
×
C
K = [K_{0},K_{1},...,K_{L−1}] \in R^{H_{0}×W_{0}×\sum^{L−1}_{i=0} (2^{i}+\beta)^{2}×C}
K=[K0,K1,...,KL−1]∈RH0×W0×∑i=0L−1(2i+β)2×C和
V
=
[
V
0
,
V
1
,
.
.
.
,
V
L
−
1
]
∈
R
H
0
×
W
0
×
∑
i
=
0
L
−
1
(
2
i
+
β
)
2
×
C
V = [V_{0},V_{1},...,V_{L−1}] \in R^{H_{0}×W_{0}×\sum^{L−1}_{i=0} (2^{i}+\beta)^{2}×C}
V=[V0,V1,...,VL−1]∈RH0×W0×∑i=0L−1(2i+β)2×C。
P
i
Pi
Pi 表示第
i
i
i 层的跨层一致相对位置编码(CCPE)。
使用反向重叠空间patch分区(ROSP)来逆转OSP的效果,并获得交互结果集
Y
=
Y
i
∈
R
H
i
×
W
i
×
C
i
=
0
L
−
1
Y = {Y_{i} \in R^{H_{i}×W_{i}×C}}^{L−1}_{i=0}
Y=Yi∈RHi×Wi×Ci=0L−1。
Y
=
R
O
S
P
(
Y
^
,
β
)
0
(1)
Y = ROSP(\hat{Y}, \beta) \tag10
Y=ROSP(Y^,β)0(1)
D. Cross-layer Consistent Relative Positional Encoding
由于在交互过程中,每个标记在其跨层token组内保持特定的位置关系。然而,原始的多头注意力对所有交互标记一视同仁,导致在诸如目标检测的位置敏感任务中结果不够理想。因此,引入**跨层一致相对位置编码(CCPE)**来增强CFPT在交互过程中跨层的定位意识。
CCPE的主要解决方案是基于跨多个尺度的相互感受野的对齐,这是由卷积的性质决定的。以CSA为例,每个空间标记组之间的注意力图集可以表示为 A = A i j ∈ R N × H 0 × W 0 × ( 2 i + β ) 2 × ( 2 j + β ) 2 i , j = 0 L − 1 A = {A_{ij} \in R^{N×H_{0}×W_{0}×(2^{i}+\beta)^{2}×(2^{j}+\beta)^{2}}}^{L−1}_{i,j=0} A=Aij∈RN×H0×W0×(2i+β)2×(2j+β)2i,j=0L−1,其中 N N N是头的数量,且 A i j = Q i K j / d k A_{ij} = Q_{i}K_{j}/\sqrt{d_{k}} Aij=QiKj/dk,如公式9中定义。为了简化,忽略 H 0 H_{0} H0和 W 0 W_{0} W0,并定义 s i h = s i w = 2 i + β s^{h}_{i} = s^{w}_{i} = 2^{i} + \beta sih=siw=2i+β和 s j h = s j w = 2 j + β s^{h}_{j} = s^{w}_{j} = 2^{j} + \beta sjh=sjw=2j+β,其中 ( s i h , s i w ) (s^{h}_{i} ,s^{w}_{i}) (sih,siw)和 ( s j h , s j w ) (s^{h}_{j} ,s^{w}_{j}) (sjh,sjw)分别表示第 i i i层和第 j j j层中空间token组的宽度和高度。因此,注意力图集可以重新表示为 A = A i j ∈ R N × s i h s i w × s j h s j w i , j = 0 L − 1 A = {A_{ij} \in R^{N×s^{h}_{i} s^{w}_{i} ×s^{h}_{j} s^{w}_{j}}}^{L−1}_{i,j=0} A=Aij∈RN×sihsiw×sjhsjwi,j=0L−1。
CCPE的过程如图6所示。定义一个可学习的codebook C ∈ R N × ( 2 s L − 1 h − 1 ) × ( 2 s L − 1 w − 1 ) C \in R^{N×(2s^{h}_{L−1}−1)×(2s^{w}_{L−1}−1)} C∈RN×(2sL−1h−1)×(2sL−1w−1),并通过计算任何两个token之间的跨层一致相对位置索引来从codebook中获取它们之间的相对位置信息。为了简化,考虑第 i i i层和第 j j j层空间token组之间的交互,其中 P i ∈ R s i h × s i w × 2 P_{i} \in R^{s^{h}_{i} ×s^{w}_{i} ×2} Pi∈Rsih×siw×2和 P j ∈ R s j h × s j w × 2 P_{j} \in R^{s^{h}_{j} ×s^{w}_{j} ×2} Pj∈Rsjh×sjw×2分别表示它们各自的绝对坐标矩阵。
P
i
=
(
p
i
w
,
p
i
h
)
∣
p
i
w
∈
[
0
,
s
i
w
−
1
]
,
p
i
h
∈
[
0
,
s
i
h
−
1
]
P
j
=
(
p
j
w
,
p
j
h
)
∣
p
j
w
i
n
[
0
,
s
j
w
−
1
]
,
p
j
h
∈
[
0
,
s
j
h
−
1
]
(11)
P_{i} = {(p^{w}_{i} ,p^{h}_{i}) |p^{w}_{i} \in [0,s^{w}_{i} −1],p^{h}_{i} \in [0,s^{h}_{i} −1]} \\ P_{j} = {(p^{w}_{j} ,p^{h}_{j} ) |p^{w}_{j} in [0,s^{w}_{j} −1],p^{h}_{j} \in [0,s^{h}_{j} −1]} \tag{11}
Pi=(piw,pih)∣piw∈[0,siw−1],pih∈[0,sih−1]Pj=(pjw,pjh)∣pjwin[0,sjw−1],pjh∈[0,sjh−1](11)
为了获得
P
j
P_{j}
Pj相对于
P
i
P_{i}
Pi的相对位置信息,首先使用它们各自的空间token组大小将坐标中心化,以获得
P
^
i
\hat{P}_{i}
P^i和
P
^
j
\hat{P}_{j}
P^j。
P
^
i
=
{
(
p
^
i
w
,
p
^
i
h
)
∣
p
^
i
w
=
p
i
w
−
⌊
s
i
w
2
⌋
,
p
^
i
h
=
p
i
h
−
⌊
s
i
h
2
⌋
}
P
^
j
=
{
(
p
^
j
w
,
p
^
j
h
)
∣
p
^
j
w
=
p
j
w
−
⌊
s
j
w
2
⌋
,
p
^
j
h
=
p
j
h
−
⌊
s
j
h
2
⌋
}
(12)
\hat{P}_{i} = \{(\hat{p}^{w}_{i}, \hat{p}^{h}_{i}) | \hat{p}^{w}_{i} = p^{w}_{i} − ⌊\frac{s^{w}_{i}}{2}⌋, \hat{p}^{h}_{i} = p^{h}_{i} −⌊\frac{s^{h}_{i}}{2}⌋\} \\ \hat{P}_{j} =\{(\hat{p}^{w}_{j}, \hat{p}^{h}_{j}) | \hat{p}^{w}_{j} = p^{w}_{j} −⌊\frac{s^{w}_{j}}{2}⌋, \hat{p}^{h}_{j} = p^{h}_{j} −⌊\frac{s^{h}_{j}}{2}⌋\} \tag{12}
P^i={(p^iw,p^ih)∣p^iw=piw−⌊2siw⌋,p^ih=pih−⌊2sih⌋}P^j={(p^jw,p^jh)∣p^jw=pjw−⌊2sjw⌋,p^jh=pjh−⌊2sjh⌋}(12)
然后可以通过将它们的坐标投影到最大的空间token组来推导出
P
~
i
\tilde{P}_{i}
P~i和
P
~
j
\tilde{P}_{j}
P~j。
P
~
i
=
(
p
~
i
w
,
p
~
i
h
)
∣
p
~
i
w
=
p
~
i
w
s
L
−
1
w
s
i
w
,
p
~
i
w
=
p
~
i
h
s
L
−
1
h
s
i
h
P
~
j
=
(
p
~
i
j
w
,
p
~
j
h
)
∣
p
~
j
w
=
p
~
j
w
s
L
−
1
w
s
j
w
,
p
~
j
w
=
p
~
j
h
s
L
−
1
h
s
j
h
(13)
\tilde{P}_{i} ={(\tilde{p}^{w}_{i}, \tilde{p}^{h}_{i}) | \tilde{p}^{w}_{i} = \frac{\tilde{p}^{w}_{i} s^{w}_{L-1}}{s^{w}_{i}}, \tilde{p}^{w}_{i} = \frac{\tilde{p}^{h}_{i} s^{h}_{L-1}}{s^{h}_{i}}} \\ \tilde{P}_{j} ={(\tilde{p}^{w}_{ij}, \tilde{p}^{h}_{j}) | \tilde{p}^{w}_{j} = \frac{\tilde{p}^{w}_{j} s^{w}_{L-1}}{s^{w}_{j}}, \tilde{p}^{w}_j} = \frac{\tilde{p}^{h}_{j} s^{h}_{L-1}}{s^{h}_{j}} \\ \tag{13}
P~i=(p~iw,p~ih)∣p~iw=siwp~iwsL−1w,p~iw=sihp~ihsL−1hP~j=(p~ijw,p~jh)∣p~jw=sjwp~jwsL−1w,p~jw=sjhp~jhsL−1h(13)
随后,可以计算
P
~
i
\tilde{P}_{i}
P~i和
P
~
j
\tilde{P}_{j}
P~j之间的相对距离,并将相对距离转换为codebook索引。
D
i
j
=
(
d
i
j
w
,
d
i
j
h
)
∣
d
i
j
w
=
p
~
i
w
−
p
~
j
w
,
d
i
j
h
=
p
~
i
h
−
p
~
j
h
I
i
j
=
(
I
i
j
w
,
I
i
j
h
)
∣
I
i
j
w
=
d
i
j
w
+
s
L
w
−
1
,
I
i
j
h
=
d
i
j
h
+
s
L
h
−
1
(14)
D_{ij} = {(d^{w}_{ij},d^{h}_{ij}) |d^{w}_{ij} =\tilde{p}^{w}_{i} − \tilde{p}^{w}_{j} ,d^{h}_{ij} = \tilde{p}^{h}_{i} − \tilde{p}^{h}_{j}} \\ I_{ij} = {(I^{w}_{ij},I^{h}_{ij}) |I^{w}_{ij} = d^{w}_{ij} + s^{w}_{L} −1,I^{h}_{ij} = d^{h}_{ij} + s^{h}_{L} −1} \tag{14}
Dij=(dijw,dijh)∣dijw=p~iw−p~jw,dijh=p~ih−p~jhIij=(Iijw,Iijh)∣Iijw=dijw+sLw−1,Iijh=dijh+sLh−1(14)
最后,从C中提取出相应的位置嵌入向量,使用索引
I
i
j
I_{ij}
Iij,并将它叠加到原始注意力图
A
i
j
A_{ij}
Aij上,得到增强位置信息的输出
A
^
i
j
\hat{A}_{ij}
A^ij。
A
^
i
j
=
A
i
j
+
f
(
C
,
I
i
j
)
(15)
\hat{A}_{ij} = A_{ij} + f(C,I_{ij})\tag{15}
A^ij=Aij+f(C,Iij)(15)
其中,
f
(
a
,
b
)
f(a,b)
f(a,b)是用于从codebook中提取非整数坐标(由式13导出)时确保可微性的双线性插值函数,其中
a
a
a表示codebook,
b
b
b表示非整数坐标矩阵。
E. Complexity Analysis
本节将分析CCA和CSA的计算复杂度。此外,由于空间维度和通道维度的token组的大小在训练和测试阶段保持不变,因此它们的计算复杂度与输入特征图的空间分辨率成线性关系。
-
Cross-layer Channel-wise Attention: 考虑一组输入特征图,记为 X = X i ∈ R H i × W i × C i = 0 L − 1 X = {X_{i} \in R^{H_{i}×W_{i}×C}}^{L−1}_{i=0} X=Xi∈RHi×Wi×Ci=0L−1。此外,设 α \alpha α表示在CCA中使用的扩展因子。CCA的总计算复杂度包括线性投影的 O ( ∑ i = 0 L − 1 ( 4 H i W i C 2 ) ) O(\sum^{L−1}_{i=0}(4H_{i}W_{i}C^{2})) O(∑i=0L−1(4HiWiC2)),注意力交互的 O ( ∑ i = 0 L − 1 ( 2 C ( 4 i + α ) 2 H 0 W 0 ) ) O(\sum^{L−1}_{i=0} (2C(4^{i} + \alpha)^{2}H_{0}W_{0})) O(∑i=0L−1(2C(4i+α)2H0W0)),以及FFN的 O ( ∑ i = 0 L − 1 ( 8 H i W i C 2 ) ) O(\sum^{L−1}_{i=0}(8H_{i}W_{i}C^{2})) O(∑i=0L−1(8HiWiC2))。
-
Cross-layer Spatial-wise Attention: 假设输入特征图的集合为 X = X i ∈ R H i × W i × C i = 0 L − 1 X = {X_{i} \in R^{H_{i}×W_{i}×C}}^{L−1}_{i=0} X=Xi∈RHi×Wi×Ci=0L−1。此外,设\beta表示CSA中使用的扩展因子。CSA的总计算复杂度包括线性投影的 O ( ∑ L − 1 i = 0 ( 4 H i W i C 2 ) ) O(\sum{L−1}_{i=0} (4H_{i}W_{i}C^{2})) O(∑L−1i=0(4HiWiC2)),注意力交互的 O ( ∑ i = 0 L − 1 ( 2 C ( 2 i + β ) 4 H 0 W 0 ) ) O(\sum^{L−1}_{i=0} (2C(2^{i} + \beta)4H_{0}W_{0})) O(∑i=0L−1(2C(2i+β)4H0W0)),以及FFN的 O ( ∑ i = 0 L − 1 ( 8 H i W i C 2 ) ) O(\sum^{L−1}_{i=0} (8H_{i}W_{i}C^{2})) O(∑i=0L−1(8HiWiC2))。
四、实验
A. Datasets
对所提出的CFPT的有效性进行了评估,将其应用于两个专门为无人机视角下的小目标检测而设计的具有挑战性的数据集:VisDrone2019-DET[2]和TinyPerson [3]。
-
VisDrone2019-DET: 本数据集由无人机拍摄的7,019张图像组成,其中6,471张图像用于训练,548张用于验证。它包括十类标注:自行车、带蓬三轮车、三轮车、面包车、公共汽车、卡车、摩托车、行人、人物和汽车。图像的分辨率大约为 2000 × 1500 2000 ×1500 2000×1500像素。
-
TinyPerson: 本数据集由无人机收集,主要用于远距离场景中小物体的检测,因为物体的平均长度不到20像素。它包含1610张图像,其中794张用于训练,816张用于测试。数据集包含72651个标记实例,分为两组:“海中人物”和“陆地人物”。为了简化,将上述两类合并为一个名为“人物”的单一类别。
B. Implementation Details
使用PyTorch [48]和MMdetection工具箱[49]实现了提出的CFPT。所有模型都在单个RTX 3090上进行训练和测试,批量为2。使用SGD作为模型训练的优化器,学习率为0.0025,动量为0.9,权重衰减为0.0001。在VisDrone2019-DET数据集上进行了消融究和比较,使用了输入分辨率为 1333 × 800 1333×800 1333×800和1×计划(12个epoch),以加速模型的收敛,在训练开始时采用了线性预热策略。为了在VisDrone2019-DET数据集上比较各种最先进的检测器的性能,作者遵循CEASC [20]对模型进行了15个epoch的训练以确保完全收敛。
在TinyPerson数据集[3]实验中,通过将高分辨率图像分割成大小均匀的块,重叠率为30%,来减少过度的内存使用。每个块按比例缩放,以确保最短边尺寸为512像素。为了全面评估模型性能,在模型训练中设置批量为1,采用1×计划,并同时进行多尺度训练和多尺度测试。
C. Comparison with Other Feature Pyramid Networks
首先将提出的CFPT与基于RetinaNet [1]的各种最先进的特征金字塔网络在VisDrone2019-DET数据集上进行性能比较。如表I所示,CFPT在不同的骨干网络(包括ResNet-18、ResNet-50和ResNet-101)上实现了RetinaNet的最佳结果,在性能和计算复杂性之间达到了最佳平衡。此外,与专注于空中图像中小物体检测的SSFPN相比,CFPT在参数更少(-3.8 M,-3.5 M,和-3.5 M)和FLOPs更低(-55.5 G)的情况下实现了更好的性能(+0.8 AP,+0.5 AP,和+0.4 AP)。这证明了CFPT在小物体检测中的适用性。
D. Comparison with State-of-the-Art Methods
为了进一步验证CFPT的有效性,将最先进检测器中的特征金字塔网络替换为CFPT,并在VisDrone2019-DET和TinyPerson数据集上比较它们的表现。
-
VisDrone2019-DET: 用CFPT替换了GFL[43]中的特征金字塔,并与各种最先进的检测器进行了性能比较。如表 II所示,CFPT应用提高了基于ResNet-18、ResNet-50和ResNet-101的GFL性能,分别提高了0.8 AP、0.7 AP和0.7 AP。尽管参数数量略有增加,分别为0.3 M、0.2 M和0.2 M。与CEASC [20]相比,参数仅增加了0.1 M,但实现了显著的性能提升(+0.7 AP、+0.6 AP和+0.6 AP),证明了CFPT的有效性。
-
TinyPerson: 为了在TinyPerson数据集上的比较,使用 [3]中定义的评价指标来全面评估模型的性能。观察到GFL [43]在细粒度检测方面表现出色,这一点从其在AP-tiny75指标上的卓越表现可以看出,而FSAF [41]在粗粒度预测方面更为有效,这一点从其在AP-tiny25和AP-tiny50指标上可以看出。因此,将CFPT集成到GFL和FSAF中,以评估其在这两种场景下的适应性。如表III所示,CFPT带来了显著的性能提升,包括GFL的2.4 AP-tiny增益(44.2 AP-tiny v.s 41.8 AP-tiny)和FSAF的2.0AP-tiny增益(44.5 AP-tiny v.s 42.5 AP-tiny),所有性能指标都显示了提升。因此,集成CFPT有效地提高了模型在小对象检测方面的性能,证明了其在空中图像中小对象检测的有效性。
E. Ablation Study
-
Order of CCA and CSA: 研究了在应用CCA和CSA的顺序对模型性能的影响。具体来说,比较了三种解决方案的性能,如图7所示,包括CCA→CSA、CSA→CCA和CCA+CSA。如表IV所示,CCA→CSA模式实现了最优性能,AP为22.2。这是因为CCA提供了沿着空间方向的全局感受野,使得CSA能够利用全局上下文信息来预测更准确的注意力图,并获得偏好的邻近细节信息。然而,由于CSA沿着通道方向有一个全局感受野,放在它前面可能会破坏局部性,并阻止CCA准确地专注于空间方面的邻近信息。此外,CCA+CSA将导致CCA和CSA之间没有交互,使得不可能使用彼此的信息进行精炼的信息聚合。
-
Effectiveness of each proposed component: 通过逐步将提出的模块集成到基线模型(即没有FPN的RetinaNet)中来评估每个组件的有效性。如表V所示,CCA和CSA的集成分别显著增强了基线模型3.5 AP和3.4 AP。通过将CCA和CSA集成到一个综合的CAM中,模型实现了3.9 AP的AP增益(22.0AP vs. 18.1 AP)。随后应用CCPE进一步增强了模型的性能,最终实现了22.2的AP。值得注意的是,集成CCA或CSA的性能优于表I中的大多数特征金字塔网络,这强调了它们在空中图像中小物体检测方面的潜力。
报告了每个组件对模型计算复杂度、参数数量和推理速度的影响,如表V所示。当只使用单个组件(例如CCA)时,CFPT与基线模型相比,引入了额外的1.4 M个参数、7.4 G FLOPs和0.004 s/img的推理延迟,同时实现了显著的性能增益(+3.5 AP)。当使用
所有组件时,CFPT引入了额外的2.8 M个参数、14.8 GFLOPs和0.01 s/img的推理延迟,同时实现了显著的性能增益(+4.1 AP)。因此,CFPT可以在性能和计算复杂性之间取得更好的平衡。
-
Number of CAMs: 评估了CAM的数量对模型性能的影响。如表VI所示,增加CAM的数量一致地提高了模型的性能。使用三个CAM,模型实现了22.5的AP,与基线相比增加了4.4个AP(22.5 AP v.s 18.1 AP)。为了更好地平衡计算复杂度和性能,在所有其他实验中将CAM的堆叠数量设置为1,尽管更多的CAM会带来更多的好处。
-
Channel Size reduction factor and MLP ratio: 研究了各种通道尺寸衰减因子(即特征图通道的压缩因子用于注意力交互)和MLP比率(即通道大小在FFNs中的扩展因子)的影响,旨在确定在计算复杂性和模型性能之间取得最佳平衡的最佳组合。如图9所示,当通道尺寸衰减因子设置为4,MLP比率设置为2时,模型实现了计算复杂性和性能之间的最佳平衡。因此,对于在VisDrone2019-DET和TinyPerson数据集上进行的所有实验,始终使用这种组合方案。
F. Qualitative Analysis
对CFPT进行了定性分析,通过在VisDrone2019-DET和TinyPerson数据集上可视化检测结果,所有可视化的置信度阈值设置为0.3。图8将CFPT应用于GFL,并与基线模型(即GFL)和CEASC在VisDrone2019-DET数据集上进行定性比较。CFPT的应用有效地降低了模型的漏检率(第一和第三行)和误检率(第二行),从而提高了其整体性能。此外,图8的第三行展示了CFPT在小物体检测方面的有效性。如图10所示,TinyPerson数据集上的检测结果进一步验证了上述解释,表明CFPT有效地降低了漏检和误检率,同时增强了模型检测小物体的能力。
五、总结
文中引入了CFPT,这是一种新颖的无上采样器特征金字塔网络,专为空中图像中的小目标检测而设计。CFPT能够明确地更多地关注浅层特征映射,并放弃基于静态核的交互方案,以减轻尺度差异对模型性能的影响,使其特别适合于空中图像中的目标检测。具体来说,CFPT包含两个精心设计的注意力块,具有线性的计算复杂性,即CCA和CSA。这两个模块从不同的角度捕获上下文信息,它们的集成为模型提供了检测小目标时至关重要的全局上下文建模能力。此外,为了增强跨层交互过程中的位置关系,提出了一种新的位置编码方法,称为CCPE。在两个具有挑战性的空中数据集上进行的广泛实验表明,CFPT在减少计算成本的同时,优于最先进的特征金字塔网络。