📝论文下载地址
👨🎓论文作者
📦模型讲解
[背景介绍]
近年来,随着深度卷积神经网络的发展,目标检测在自然图像中取得了巨大的成功。使用主流目标检测方法(例如Faster-RCNN,YOLO,SSD),在遥感图像中检测也取得了重大进展。在遥感图像是向下观察目标的,并且目标始终是任意方向的,因此很难将传统检测方法应用于遥感和航空图像中的定向物体。此任务面临以下重大挑战:
①在遥感图像中,大多数目标具有比自然图像(例如房屋,车辆)相似的形状和更少的外观特征。这些目标可能会导致错误检测,因为在这种情况下目标形状比目标外观更明显。
②复杂的背景、目标的尺寸增加了目标检测的难度,尤其是对于小而密集的目标。
③遥感视图导致了目标的不同方向,因此该模型必须获取代表方向的参数。
[网络结构]
[定向框的表示]
作者的方法中定向框表示为
[
x
,
y
,
w
,
h
,
o
]
[x,y,w,h,o]
[x,y,w,h,o]。在表示中,
[
x
m
i
n
,
y
m
i
n
,
x
m
a
x
,
y
m
a
x
]
[x_{min},y_{min},x_{max},y_{max}]
[xmin,ymin,xmax,ymax]描述对象水平边界框,参数
[
o
]
[o]
[o]表示对象边界框的方向角。但是,网络很难在这种表示形式中预测目标位置。因此,为了让网络准确地预测目标,我们使用几何变换来重建OBB的表示。
如下图所示,作者首先通过一步网络回归HBB,它使用回归点计算预选框和HBB边界之间的偏移量。因此,
[
l
,
t
,
r
,
b
]
[l,t,r,b]
[l,t,r,b]分别表示为左,上,右,下。然后将方向角转换为
[
w
,
h
]
[w,h]
[w,h]。因此,将角度分为两个不同的预测任务。这样,原始的OBB表示为
[
l
,
t
,
r
,
b
,
w
,
h
]
[l,t,r,b,w,h]
[l,t,r,b,w,h],便于网络预测。

[一步网络结构]
大多数遥感影像数据集都缺乏精度和数量。将backbone在ImageNet上进行预训练,并在目标数据集中进行微调,例如DOTA和HRSC2016。这样,网络能够从遥感图像中提取更精细的特征。

KaTeX parse error: Expected '\right', got '}' at position 85: …lfloor\frac{s}2}̲\right\rfloor+y…其中
[
x
,
y
]
[x,y]
[x,y]是图像上的位置,
[
x
s
,
y
s
]
[x_s,y_s]
[xs,ys]是特征上的位置,
s
s
s表示特征图的数量。框回归分支预测对象的HBB偏移,这将输出四维向量,表示特征图中每个位置的
[
l
,
t
,
r
,
b
]
[l,t,r,b]
[l,t,r,b]。偏移量通过以下方式计算:
l
=
x
−
x
min
,
t
=
y
−
y
min
r
=
x
max
−
x
,
b
=
y
max
−
y
\begin{array}{ll}l=x-x_{\min }, & t=y-y_{\min } \\r=x_{\max }-x, & b=y_{\max }-y\end{array}
l=x−xmin,r=xmax−x,t=y−yminb=ymax−y
在一般数情况下,一步网络的分类层、回归层对于角度的回归没有很多的关系,因此作者需要在分类层中添加了一个新层或者在回归层进行回归,二维向量进一步表示为 [ w , h ] [w,h] [w,h],这也是表示目标方向的参数。此外,还分别使用两个卷积层来预测 [ w , h ] [w,h] [w,h]参数。将此分支称为方向分支,这是head上的第三个分支。此head设计为:

在上图中,作者使用IE模块从其他分支提取特征,并将其组合到方向特征,以生成最终特征以进行方向回归。
[自监督IE模块]
为了提供更多的特征并提高定向预测的准确性,作者使用自注意模块构建了一个相互作用的分支,以获取来自分类和检测框回归分支的特征,这些特征可能会通过自注意机制进行重新安排。自注意可以建立这些特征图之间的关系,并确定哪个特征更适合定向回归。这些特征将与注意相结合,然后添加到定向分支中,如下图所示。

仅由三个1x1卷积层和一个softmax层构成自注意模块。然后分别使用三个不同的卷积层通过
f
(
x
)
,
g
(
x
)
,
h
(
x
)
f(x),g(x),h(x)
f(x),g(x),h(x)将特征投影到三个特征空间,
f
(
x
)
f(x)
f(x)和
g
(
x
)
g(x)
g(x)通过softmax函数一起形成注意力图。此外,注意力图指示输入特征的相对量,并给出在
h
(
x
)
h(x)
h(x)的反馈,其呈现原始特征图的注意力。注意力由以下各项计算:
α
=
s
o
f
t
m
a
x
(
f
(
x
)
T
g
(
x
)
)
\alpha=softmax(f(x)^Tg(x))
α=softmax(f(x)Tg(x))其中
f
(
x
)
T
g
(
x
)
f(x)^Tg(x)
f(x)Tg(x)输出是一个
N
×
N
N×N
N×N的特征图
s
s
s,
N
N
N是特征图
x
x
x的数目。在
s
s
s中每一行使用softmax函数:
α
j
,
i
=
exp
(
s
i
j
)
∑
i
=
1
N
exp
(
s
i
j
)
\alpha_{j, i}=\frac{\exp \left(s_{i j}\right)}{\sum_{i=1}^{N} \exp \left(s_{i j}\right)}
αj,i=∑i=1Nexp(sij)exp(sij)然后自注意层的输出
o
=
(
o
1
,
o
2
,
.
.
.
,
o
j
,
.
.
.
,
o
N
)
o=(o_1,o_2,...,o_j,...,o_N)
o=(o1,o2,...,oj,...,oN)。
N
N
N表示输入和输出特征图的数量。
o
j
=
∑
i
=
1
N
α
j
,
i
h
(
x
i
)
o_{j}=\sum_{i=1}^{N} \alpha_{j, i} h\left(x_{i}\right)
oj=i=1∑Nαj,ih(xi)注意层的输出乘以比例参数
γ
\gamma
γ并加回输入特征图,因此自注意模块的输出为:
y
i
=
γ
o
i
+
x
i
y_{i}=\gamma o_{i}+x_{i}
yi=γoi+xi
[损失函数]
为了训练网络,作者给出了损失函数,该函数是在特征图上所有位置上计算的:
L
=
1
N
pos
L
cls
+
λ
N
pos
L
reg
+
ω
N
pos
L
ori
L=\frac{1}{N_{\text {pos}}} L_{\text {cls}}+\frac{\lambda}{N_{\text {pos}}} L_{\text {reg}}+\frac{\omega}{N_{\text {pos}}} L_{\text {ori}}
L=Npos1Lcls+NposλLreg+NposωLori
其中
N
p
o
s
N_{pos}
Npos表示正样本的数量。
L
c
l
s
L_{cls}
Lcls表示通过Focal Loss计算分类损失。计算回归损失
L
r
e
g
L_{reg}
Lreg:
L
r
e
g
=
B
C
E
(
P
centerness
,
G
centerness
)
+
Smooth
L
1
(
P
ltrb
,
G
ltrb
)
+
(
1
−
IOU
(
(
P
ltrb
,
G
ltrb
)
)
\begin{aligned} L_{r e g}=& B C E\left(P_{\text {centerness}}, G_{\text {centerness}}\right) \\ &+\operatorname{Smooth}_{L 1}\left(P_{\text {ltrb}}, G_{\text {ltrb}}\right) \\ &+\left(1-\operatorname{IOU}\left(\left(P_{\text {ltrb}}, G_{\text {ltrb}}\right)\right)\right. \end{aligned}
Lreg=BCE(Pcenterness,Gcenterness)+SmoothL1(Pltrb,Gltrb)+(1−IOU((Pltrb,Gltrb))
在回归损失中构造中心损失,并且将标准二进制交叉熵损失用于中心点。中心损失的目的是希望网络预测接近目标中心点的回归。
P
l
t
r
b
P_{ltrb}
Pltrb,
G
l
t
r
b
G_{ltrb}
Gltrb表示预测和真实HBB。 HBB的预测
P
l
t
r
b
P_{ltrb}
Pltrb来自回归分支,作者进一步使用IOU来计算HBB。
L
o
r
i
L_{ori}
Lori之间的IOU损失,其构造如下:
L
ori
=
Smooth
L
1
(
P
w
h
,
G
w
h
)
+
(
1
−
IOU
(
P
w
h
,
G
w
h
,
P
ltrb
,
G
ltrb
)
)
\begin{aligned}L_{\text {ori}} &=\operatorname{Smooth}_{L 1}\left(P_{w h}, G_{w h}\right) \\&+\left(1-\operatorname{IOU}\left(P_{w h}, G_{w h}, P_{\text {ltrb}}, G_{\text {ltrb}}\right)\right)\end{aligned}
Lori=SmoothL1(Pwh,Gwh)+(1−IOU(Pwh,Gwh,Pltrb,Gltrb))
P
w
h
P_{wh}
Pwh,
G
w
h
G_{wh}
Gwh表示来自定向分支的预测结果和真实结果。作者还使用Smooth-L1损失和IOU损失,使用OBB计算IOU损失。因此,参数
[
l
,
t
,
r
,
b
]
[l,t,r,b]
[l,t,r,b]和
[
w
,
h
]
[w,h]
[w,h]结合起来将HBB转换为OBB。因为计算OBB IOU在训练过程中的计算量太大,作者为OBB形成了不同版本的IOU,它是通过以下方式计算的内部框:
l
n
=
∣
l
−
w
∣
,
t
n
=
∣
t
−
h
∣
,
r
n
=
∣
r
−
w
∣
,
b
n
=
∣
b
−
h
∣
\begin{aligned}l_{n}=|l-w|, & t_{n}=|t-h|, \\r_{n}=|r-w|, & b_{n}=|b-h|\end{aligned}
ln=∣l−w∣,rn=∣r−w∣,tn=∣t−h∣,bn=∣b−h∣其中
[
l
n
,
t
n
,
r
n
,
b
n
]
[l_n,t_n,r_n,b_n]
[ln,tn,rn,bn]表示内框偏移量。可以使用偏移量来计算OBB上IOU的简单版本。
[推理]
给定输入图像,Backbone生成 N N N级特征图,并使用最后三层输出作为FPN的输入。FPN将三个特征图融合在一起,并为head生成最终特征图。head包含三个分支,每个分支完成不同的任务,分类分支用于分类任务,回归分支用于边界框预测任务,方向分支用于预测定向任务。head共享三个特征图。每个分支生成的预测的大小与backbone生成的特征图的大小相同,可以将每个预测结果上的位置投影到图像上的某个位置,选择分类置信度高于0.5的框作为结果。
[结果分析]
作者在DOTA和HRSC2016挑战数据集上评估提出的IENet。
[训练细节]
将数据集中的所有图像裁剪为1024×1024像素以提高存储效率,并且为了进行数据增强,还进行随机翻转和随机旋转(0,90,180,270),以避免数据集中类别之间的不平衡。
ResNet-101用作backbone。批量大小设置为16,学习率以0.01初始化,使用随机梯度下降(SGD)进行100K次迭代,权重衰减和动量分别设置为0.0001和0.9。
[与最先进方法的比较]



[消融研究]
几何变换 使用DCN训练FCOS,并直接回归OBB的五个参数。IENet将角度分为两个参数 [ w , h ] [w,h] [w,h],有六个参数可以预测。
