涨点技巧 | 旷视孙剑等人提出i-FPN:用于目标检测的隐式特征金字塔网络(文末获取论文)(一)

简介: 涨点技巧 | 旷视孙剑等人提出i-FPN:用于目标检测的隐式特征金字塔网络(文末获取论文)(一)

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可以表示为:

image.png

其中为骨干网络的多尺度特征。是第个跨尺度连接块。是特征金字塔特征融合之后的结果。

上述显式FPNs在提高检测性能的同时,往往会获得有限的感受野。简单地增加块的数量将导致较大的参数负担和内存消耗。

例如,EfficientDet堆叠了7个权重无关的BiFPN Block以融合来自不同Level的特征。一个简单的减少参数量的方法是weight-sharing跨连接块(这意味着 in Eq.1)。当堆叠的数量接近无穷时,这种weight-sharing块的输出会收敛到一个固定的点,这很类似于机器翻译结果和序列建模。如果不动点确实存在,则它应满足:

image.png

其中是平衡特征金字塔。是带参数的非线性变换,它在所有堆叠块之间共享。这里把求解不动点的过程称为隐式FPN。

image.png

为了求解满足上式的不动点,可以使用两种求解器。一个是展开权重共享块。然而,它也会导致非常大的内存负担。作为一种替代方法,可以采用黑箱寻根方法,如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模型

深层序列模型可表示为:

image.png

其中为Transformation Blocks。隐含序列是参数为的第个变换的输出。而最近的研究表明,在每个块上采用相同的变换仍然可以达到相当的效果,这意味着:

image.png

当叠加无限次时,这种权重共享块的输出趋向于收敛到一个平衡状态:

image.png

在此基础上,进一步提出DEQ来直接计算以下非线性系统的平衡点:

image.png

平衡点对应于无限深度网络的最终变换块的输出。DEQ建议用黑箱寻根方法来求解平衡点,而不是显式地堆叠无限块。理论上,给定初始隐藏状态,任何黑盒寻根方法都可以用来访问平衡点。

3.2 隐式特征金字塔网络

总体架构如图所示,它由特征提取、隐式特征金字塔网络和检测头组成:

image.png

这里采用标准ResNet为主干网络来提取特征,对于i-FPN,初始金字塔特征被初始化为零,并与Backbone特征相加。然后求和特征作为非线性变换的输入,这里为隐函数;进一步通过利用均衡特征求解器求解隐式模型的不动点可以得到均衡特征金字塔。最后,将产生的平衡特征金字塔特征送入检测头,生成最终的分类和回归预测结果。

3.2.1 Residual-Like Iteration

在这里提出了以模拟无限深度的FPN模拟i-FPN的结构Residual-Like Iteration(类残差迭代)。

image.png

如图所示,首先将主干网络所提取的特征与初始化的特征求和,然后将得到的特征进一步输入到非线性变换中,生成中间特征。然后中间特征和原始主干网络所提取的特征反复经过上述过程。当细化求和特征时,向无限次迭代这个过程带来越来越小的贡献,直到网络达到一个平衡的特征金字塔。这样就可以总结类残差迭代为:

image.png

其不动点P可以用DEQ中的展开解算器或Broyden解算器得到。与ResNet类似,类残差迭代也得益于通过shortcut进行残差学习。主干网络提取的特征作为强先验来指导非线性变换的残差学习。因此,类残差迭代可以避免i-FPN的梯度消失问题,理论上可以得到一个无限深度的FPN。

不同于MDEQ中复杂的交互设计类残差迭代简单而有效,简洁的设计使信息传播顺畅,增强i-FPN的特征学习。

3.2.2 Nonlinear Transformation

如前所述,利用非线性变换构造i-FPN的隐函数。因此,的结构决定了隐式建模的表示能力。对于的设计,可以采用文献中已有的几种策略。

image.png

与HRNet中的特征融合模块类似,一种直接的方法是构建密集的FPN(见图4(a))。每个输出特征都与所有输入特征相连接。如果输入特征与输出特征处于同一水平,则连接表示横向连接(紫色线),可以通过一个1×1的卷积层来实现。如果输入特征的level高于输出,则输入特征通过操作进行处理,包括1×1卷积,然后是上采样(蓝线)。对于较低的输入,输入特征以步幅为2的几个3×3卷积向下采样(黄线)。

image.png

虽然每一层的输出特征从所有的输入层收集信息,但每一层的非线性还远远不能令人满意。为了缓解这种情况,每个输入特征首先被注入Res-Block中。每个级别的Res-Block包括一个shortcut和两个3×3卷积,然后组规范化(GN)。

image.png

考虑到骨干网络提取的特征仅与相邻层次具有较高的相关性,作者进一步采用金字塔卷积(如下图中的虚线所示)来减少计算冗余,有效融合跨尺度特征。因此,i-FPN中的非线性变换可表示为:

image.png

其中,为第级的输入特征。是第级的Res-Block。如果, 表示单个的3x3卷积层。如果i<j,表示包含一个3x3卷积层,然后是双线性上采样的操作。在中可以使用积分BN和deformable kernel。

3.3 Optimization

前面提到不动点可以通过展开或黑箱解算得到。对于展开解算器,整个优化过程遵循链式规则。利用梯度更新骨干网络参数和非线性变换。在部分主要描述使用黑盒解算器时的优化过程。对于黑箱求解器,i-FPN的整体优化过程包括正向求解反向传播

正向求解

采用DEQ中引入的改进Broyden求解器来求解不动点。这里定义函数:

image.png

因此,不动点等于的零点。给定骨干网络提取的特征B, =0的根可以用Broyden方法求解:

image.png

在是雅可比矩阵的逆,是步长。然而,在目标检测中,由于输入维度非常高导致雅可比矩阵通常非常大并且很难计算。因此,可以进一步采用一种有效的Broyden方法:

其中是雅可比矩阵逆的低秩近似。

反向传播

与传统的遵循链式规则的反向传播不同,作为一种替代基于平衡特征金字塔更新骨干网络和的参数:

式中L为任意目标检测器的总损失函数,包括分类损失和回归损失。它可以由:

其中p是最终预测,y是ground-truth。H为任意目标检测器的检测头。

相关文章
|
17天前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
47 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
17天前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
37 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
6天前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
19 3
|
17天前
|
机器学习/深度学习 Web App开发 人工智能
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。
25 2
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
|
17天前
|
机器学习/深度学习 编解码 算法
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
MobileNetV3是谷歌为移动设备优化的神经网络模型,通过神经架构搜索和新设计计算块提升效率和精度。它引入了h-swish激活函数和高效的分割解码器LR-ASPP,实现了移动端分类、检测和分割的最新SOTA成果。大模型在ImageNet分类上比MobileNetV2更准确,延迟降低20%;小模型准确度提升,延迟相当。
41 1
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
|
17天前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
55 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
5天前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
【YOLO11改进 - C3k2融合】C3k2融合YOLO-MS的MSBlock : 分层特征融合策略,轻量化网络结构
|
17天前
|
编解码 人工智能 文件存储
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
YOLOv7是一种新的实时目标检测器,通过引入可训练的免费技术包和优化的网络架构,显著提高了检测精度,同时减少了参数和计算量。该研究还提出了新的模型重参数化和标签分配策略,有效提升了模型性能。实验结果显示,YOLOv7在速度和准确性上超越了其他目标检测器。
34 0
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
|
3月前
|
人工智能 算法 安全
【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 赛后总结之31页论文及代码
本文总结了2023年第十三届MathorCup高校数学建模挑战赛C题的解题过程,详细阐述了电商物流网络在面临突发事件时的包裹应急调运与结构优化问题,提出了基于时间序列预测、多目标优化、遗传算法和重要性评价模型的综合解决方案,并提供了相应的31页论文和代码实现。
70 0
|
2天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第23天】在数字化时代,网络安全和信息安全已经成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全和信息安全的基本知识。通过本文的学习,您将能够更好地保护自己的个人信息和数据安全。