IPG-Net: Image Pyramid Guidance Network for Object Detection论文笔记

前言

FPN虽然通过top-down特征融合为浅层特征提供了充足的语义信息,但深层特征可能会缺少位置或空间信息,而空间信息的损失会导致特征不对齐,即anchor和卷积特征之间存在一些偏移,也就是说anchor在经历多次卷积之后,在深层特征上的位置可能和初始位置不一致。除此之外,在较深的卷积层中很容易丢失小目标

由此,本文提出了一种新的网络结构,称为图像金字塔引导网络(Image Pyramid Guidance Network,IPG-Net),它主要包括三部分:IPG子网(image pyramid guidance sub-network),基于ResNet的backbone融合模块

本文的贡献如下:

  • 提出IPG-Net以解决较深的卷积层中的空间信息不足问题和小目标易丢失问题;
  • 提出IPG子网以提取图像金字塔特征;
  • 设计融合模块。

方法实现

IPG-Net: Image Pyramid Guidance Network for Object Detection论文笔记_第1张图片
上图是IPG-Net的整体结构,图(a)是标准的FPN,图(b)就是IPG-Net,包括IPG子网、backbone和融合模块,绿色框表示IPG子网,它的作用是从图像金字塔中提取浅层特征以提供空间信息和细节信息,这些被提取的特征称为图像金字塔特征,负责对backbone进行引导从而使backbone保持空间信息和小目标的特征。红色框就是backbone。蓝色框是融合模块,用于将backbone中的深层特征与IPG子网中的浅层特征融合起来。蓝色箭头表示FPN中的横向连接,最右侧的蓝色特征图表示最终的FPN的输出。

图(b)中的图像金字塔用于为backbone的每一层提供更充足的空间信息。对于backbone中的每一层,通过IPG子网计算相应层级的图像金字塔特征,然后使用融合模块将图像金字塔特征融合到backbone中,最终生成特征金字塔FPN。

1. IPG子网

IPG子网的输入是一个图像金字塔,该图像金字塔可以被表示为:
在这里插入图片描述
其中 H H H W W W是原始输入图像的大小, n n n是图像金字塔的层级,这里 n = 4 n=4 n=4,与标准ResNet的深度相对应。IPG子网的结构如下图所示:
IPG-Net: Image Pyramid Guidance Network for Object Detection论文笔记_第2张图片
IPG子网由两部分组成:一个是 7 × 7 7\times 7 7×7的卷积后跟 2 × 2 2 \times 2 2×2的最大池化,还有一个是残差块。残差块接收想同维数的特征作为输入,输出的特征具有不同的维数,但都与backbone中的特征维数相同。

IPG子网的输出可以被表示为:
IPG-Net: Image Pyramid Guidance Network for Object Detection论文笔记_第3张图片
其中 f ( ⋅ ) f(\cdot) f()表示IPG子网, F H 2 i × W 2 i F_{ \frac{H}{2^i} \times \frac{W}{2^i}} F2iH×2iW表示第 i i i个层级的图像金字塔特征。图像金字塔不同层级的特征共同构成了图像金字塔特征 F F F F F F为backbone提供了充足的空间信息和细节信息。

作者还说明了为什么使用较浅的网络来提取图像金字塔特征:

  • 一方面是因为IPG子网的作用就是获取空间信息或细节信息,而在较深的卷积网络中会丢失这些信息;
  • 另一方面是因为这样的话计算复杂度也不会增加的太多。

2. backbone

backbone是在ResNet的基础上进行修改,在末端添加了几个stage,每个stage都包含两个与ResNet相同的Bottleneck模块。实验表明添加一个stage确实性能更好。之所以设计比标准ResNet更深的卷积网络是因为,IPG子网能够为backbone提供充足的空间信息或细节信息,因此降低了特征对不齐和细节丢失的影响。

3. 融合模块

融合模块可以表现成如下形式, f ( ⋅ ) f(\cdot) f() q ( ⋅ ) q(\cdot) q()分别表示IPG子网和backbone,函数 β \beta β可以用不同的形式,接下来会一一介绍:
在这里插入图片描述
O i O_i Oi是融合模块在第 i i i个层级的输出, I 0 I_0 I0 I i I_i Ii分别是图像金字塔中第0个层级和第1个层级的图像, I 0 I_0 I0也就是原始输入图像了。 β ( ⋅ ) \beta(\cdot) β()表示融合函数, f i ( ⋅ ) f_i(\cdot) fi()表示IPG子网在第 i i i个层级的输出, g i ( ⋅ ) g_i(\cdot) gi()表示backbone在第 i i i个层级的输出。

融合模块有两个输入:来自IPG子网的图像金字塔特征和来自backbone的特征,本文提出三种融合方式:求和(sum)、相乘(product)和连结(concatenation),
IPG-Net: Image Pyramid Guidance Network for Object Detection论文笔记_第4张图片

  • element-wise sum:如图(a)所示,这种方式是将图像金字塔信息作为一种额外的信息,因此目标就是将图像金字塔特征 f i ( I i ) f_i(I_i) fi(Ii)与backbone特征 g i ( I 0 ) g_i(I_0) gi(I0)相加,需要将两种特征的通道维数对齐,这里使用通道维数线性插值操作来进行 C T ( c h a n n e l t r a n s f o r m ) CT(channeltransform) CT(channeltransform)
    在这里插入图片描述
    其中 W , W s , W m W,W_s,W_m W,Ws,Wm表示线性转换。

  • residual product:如图(c)所示,使用 W s ⋅ C T ( f i ( I i ) ) ∗ W m ⋅ g i ( I 0 ) W_s \cdot CT(f_i(I_i))*W_m \cdot g_i(I_0) WsCT(fi(Ii))Wmgi(I0)来表示backbone特征损失的信息,然后使用layer norm操作对输出 O i O_i Oi进行归一化:
    在这里插入图片描述
    L N LN LN表示layer norm操作。

  • concatenation:如图(b)所示,使用连结操作将图像金字塔特征与backbone特征融合起来:
    在这里插入图片描述
    C a t Cat Cat表示连结操作。


结论

本文利用图像金字塔提供一些空间信息和细节信息,与backbone特征融合之后得到的FPN会有更充足的细节信息和语义信息,可以解决特征对不齐问题和深层网络中小目标易丢失问题。

你可能感兴趣的:(目标检测)