1 简介
我们都知道一个典型的基于卷积神经网络的目标检测器主要由3个部分组成:Backbone、Neck和Head;主干部分(如VGG、ResNet或EfficientNet等)主要是从输入图像中提取基本特征,这些Backbone模型通常都会事先在ImageNet上进行预训练。Neck主要是用来产生High-Level的语义特征。检测Head则是将Neck产生的Hight-level特征进行最终分类与回归。
对于Neck现有的方法大多通过构造特征金字塔网络(FPN)来融合多尺度特征进而扩大感受野。FPN的设计遵循一种显式的方式,通过堆叠跨尺度的连接块。
如图(a)所示,骨干网的多尺度特征被输入到几个权重无关的块中。每个块构建跨尺度连接,以融合来自不同Level的Feature。例如,FPN引入自顶向下的路径来逐步融合特征。在FPN的基础上,PANet增加了一个自下而上的路径,将Low-Level特征传递到High-Level特征。NAS-FPN则利用神经结构搜索(NAS)来获得最佳的连接拓扑。而EfficientDet提出了重复堆叠BiFPN Block,这简化了PANet并增加了双向跨尺度连接。
综上所述,显式FPN可以表示为:
其中为骨干网络的多尺度特征。是第个跨尺度连接块。是特征金字塔特征融合之后的结果。
上述显式FPNs在提高检测性能的同时,往往会获得有限的感受野。简单地增加块的数量将导致较大的参数负担和内存消耗。
例如,EfficientDet堆叠了7个权重无关的BiFPN Block以融合来自不同Level的特征。一个简单的减少参数量的方法是weight-sharing跨连接块(这意味着 in Eq.1)。当堆叠的数量接近无穷时,这种weight-sharing块的输出会收敛到一个固定的点,这很类似于机器翻译结果和序列建模。如果不动点确实存在,则它应满足:
其中是平衡特征金字塔。是带参数的非线性变换,它在所有堆叠块之间共享。这里把求解不动点的过程称为隐式FPN。
为了求解满足上式的不动点,可以使用两种求解器。一个是展开权重共享块。然而,它也会导致非常大的内存负担。作为一种替代方法,可以采用黑箱寻根方法,如DEQ中引入的Broyden求解器,直接生成均衡特征金字塔。
后一种方法有2个优点:
- 1、模拟了无限块体叠加而只包含单个块体参数的情况;
- 2、它产生了全局(非常大)接收场的均衡特征,有利于目标检测任务的完成。
DEQ中的隐式函数采用隐式序列与输入序列以复杂的方式交互。这些相互作用可能导致梯度消失问题,并使隐函数的不动点难以用寻根法求解。
因此在本文中进一步开发了一种用于FPN设计的类残差迭代,它简化了复杂的设计。主干特征直接与初始金字塔特征相加,并将其加和后作为非线性变换的输入。类似于ResNet,类残差迭代得益于残差学习,使信息传播平滑进而增强了i-FPN的特征学习能力。
2 前人铺路
2.1 Object Detection
Two-Stage目标检测器首先生成目标提议的候选对象,然后在第2阶段对候选对象进行分类和回归。One-Stage方法直接对每个位置设置的默认锚进行分类和回归。Anchor Free方法旨在摆脱预定义锚点的要求。
One-Stage
- YOLO
- SSD
- YOLO V2
- YOLO V3
- YOLO V4
- DSSD
- FSSD
- ESSD
- DES
- ......
Two-Stage
- RCNN
- SPPNet
- Fast RCNN
- Faster RCNN
- RetinaNet
- Mask RCNN
- Cascade RCNN
Anchor Free
- CornorNet
- CenterNet
- FCOS
Transformer-Based
- DERT
2.2 Pyramidal Representations
多尺度特征表示是检测不同尺度目标的有效方法。通过Neck的跨尺度连接来扩大语义特征的感受野。
- FPN引入了自顶向下的Routing来融合特征;
- PANet在FPN的顶部增加了一条额外的自底向上的路径;
- Bi-FPN简化了PANet,提出了一种新的跨尺度连接方式;
- NAS-FPN利用神经结构搜索获得最优的特征拓扑方式;
- CBNet利用相邻Backbone之间的复合连接来组装多个Backbone,从而形成一个强大的Backbone。
在实现检测结果的同时,这些方法倾向于通过显式地堆叠跨尺度块来扩大感受野。在本文中作者开发了一种用于目标检测的隐式特征金字塔网络。
2.3 Implicit Modeling
其实隐式模型已经研究了几十年。
- RBP通过微分技术隐式训练递归系统;
- 神经ODE采用黑箱ODE求解器隐式建模递归残差块,同时分析递归神经网络(RNN)的稳定性。
- 在序列建模方面,TrellisNet以权重约束的方式叠加了大量的层,而DEQ则通过不动点迭代来模拟无限深度的网络。
- 与TrellisNet类似,RAFT采用了大量改进的GRU块来获得固定的流场。
- 在DEQ的基础上,MDEQ开发了一个用于分类和分割的骨干网络。
i-FPN与MDEQ存在一定的相似之处,但是也存在一些主要差异包括:
- 1)多尺度特征作为强大的先验信息用于学习有效学习隐藏states;
- 2)residual-like迭代更新提出了隐状态有效,避免i-FPN的消失梯度问题;
- 3)在比较困难的检测任务上验证了i-FPN的有效性而MDEQ主要关注的是相对简单的分类问题。
3 本文方法
本文首先对深层平衡模型(DEQ)进行了详细的回顾。在此基础上,提出了隐式特征金字塔网络和类残差迭代算法。最后给出了总体优化过程。
3.1 回顾DEQ模型
深层序列模型可表示为:
其中为Transformation Blocks。隐含序列是参数为的第个变换的输出。而最近的研究表明,在每个块上采用相同的变换仍然可以达到相当的效果,这意味着:
当叠加无限次时,这种权重共享块的输出趋向于收敛到一个平衡状态:
在此基础上,进一步提出DEQ来直接计算以下非线性系统的平衡点:
平衡点对应于无限深度网络的最终变换块的输出。DEQ建议用黑箱寻根方法来求解平衡点,而不是显式地堆叠无限块。理论上,给定初始隐藏状态,任何黑盒寻根方法都可以用来访问平衡点。
3.2 隐式特征金字塔网络
总体架构如图所示,它由特征提取、隐式特征金字塔网络和检测头组成:
这里采用标准ResNet为主干网络来提取特征,对于i-FPN,初始金字塔特征被初始化为零,并与Backbone特征相加。然后求和特征作为非线性变换的输入,这里为隐函数;进一步通过利用均衡特征求解器求解隐式模型的不动点可以得到均衡特征金字塔。最后,将产生的平衡特征金字塔特征送入检测头,生成最终的分类和回归预测结果。
3.2.1 Residual-Like Iteration
在这里提出了以模拟无限深度的FPN模拟i-FPN的结构Residual-Like Iteration(类残差迭代)。
如图所示,首先将主干网络所提取的特征与初始化的特征求和,然后将得到的特征进一步输入到非线性变换中,生成中间特征。然后中间特征和原始主干网络所提取的特征反复经过上述过程。当细化求和特征时,向无限次迭代这个过程带来越来越小的贡献,直到网络达到一个平衡的特征金字塔。这样就可以总结类残差迭代为:
其不动点P可以用DEQ中的展开解算器或Broyden解算器得到。与ResNet类似,类残差迭代也得益于通过shortcut进行残差学习。主干网络提取的特征作为强先验来指导非线性变换的残差学习。因此,类残差迭代可以避免i-FPN的梯度消失问题,理论上可以得到一个无限深度的FPN。
不同于MDEQ中复杂的交互设计类残差迭代简单而有效,简洁的设计使信息传播顺畅,增强i-FPN的特征学习。
3.2.2 Nonlinear Transformation
如前所述,利用非线性变换构造i-FPN的隐函数。因此,的结构决定了隐式建模的表示能力。对于的设计,可以采用文献中已有的几种策略。
与HRNet中的特征融合模块类似,一种直接的方法是构建密集的FPN(见图4(a))。每个输出特征都与所有输入特征相连接。如果输入特征与输出特征处于同一水平,则连接表示横向连接(紫色线),可以通过一个1×1的卷积层来实现。如果输入特征的level高于输出,则输入特征通过操作进行处理,包括1×1卷积,然后是上采样(蓝线)。对于较低的输入,输入特征以步幅为2的几个3×3卷积向下采样(黄线)。
虽然每一层的输出特征从所有的输入层收集信息,但每一层的非线性还远远不能令人满意。为了缓解这种情况,每个输入特征首先被注入Res-Block中。每个级别的Res-Block包括一个shortcut和两个3×3卷积,然后组规范化(GN)。
考虑到骨干网络提取的特征仅与相邻层次具有较高的相关性,作者进一步采用金字塔卷积(如下图中的虚线所示)来减少计算冗余,有效融合跨尺度特征。因此,i-FPN中的非线性变换可表示为:
其中,为第级的输入特征。是第级的Res-Block。如果, 表示单个的3x3卷积层。如果i<j,表示包含一个3x3卷积层,然后是双线性上采样的操作。在中可以使用积分BN和deformable kernel。
3.3 Optimization
前面提到不动点可以通过展开或黑箱解算得到。对于展开解算器,整个优化过程遵循链式规则。利用梯度更新骨干网络参数和非线性变换。在部分主要描述使用黑盒解算器时的优化过程。对于黑箱求解器,i-FPN的整体优化过程包括正向求解和反向传播。
正向求解
采用DEQ中引入的改进Broyden求解器来求解不动点。这里定义函数:
因此,不动点等于的零点。给定骨干网络提取的特征B, =0的根可以用Broyden方法求解:
在是雅可比矩阵的逆,是步长。然而,在目标检测中,由于输入维度非常高导致雅可比矩阵通常非常大并且很难计算。因此,可以进一步采用一种有效的Broyden方法:
其中是雅可比矩阵逆的低秩近似。
反向传播
与传统的遵循链式规则的反向传播不同,作为一种替代基于平衡特征金字塔更新骨干网络和的参数:
式中L为任意目标检测器的总损失函数,包括分类损失和回归损失。它可以由:
其中p是最终预测,y是ground-truth。H为任意目标检测器的检测头。