涨点技巧 | 旷视孙剑等人提出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为任意目标检测器的检测头。

相关文章
|
2月前
|
机器学习/深度学习 计算机视觉 知识图谱
【YOLOv8改进】MobileViT 更换主干网络: 轻量级、通用且适合移动设备的视觉变压器 (论文笔记+引入代码)
MobileViT是针对移动设备的轻量级视觉Transformer网络,结合CNN的局部特征、Transformer的全局注意力和ViT的表示学习。在ImageNet-1k上,它以600万参数实现78.4%的top-1准确率,超越MobileNetv3和DeiT。MobileViT不仅适用于图像分类,还在目标检测等任务中表现出色,且优化简单,代码已开源。YOLOv8引入了MobileViT块,整合卷积和Transformer结构,提升模型性能。更多详情可参考相关专栏和链接。
|
10天前
|
机器学习/深度学习 算法 计算机视觉
没有公式,不要代码,让你理解 RCNN:目标检测中的区域卷积神经网络
没有公式,不要代码,让你理解 RCNN:目标检测中的区域卷积神经网络
38 0
没有公式,不要代码,让你理解 RCNN:目标检测中的区域卷积神经网络
|
3天前
|
Web App开发 自然语言处理 算法
一文搞懂:【论文笔记】BINE:二分网络嵌入
一文搞懂:【论文笔记】BINE:二分网络嵌入
|
2月前
|
机器学习/深度学习 存储 测试技术
【YOLOv8改进】 YOLOv8 更换骨干网络之 GhostNet :通过低成本操作获得更多特征 (论文笔记+引入代码).md
YOLO目标检测专栏探讨了卷积神经网络的创新改进,如Ghost模块,它通过低成本运算生成更多特征图,降低资源消耗,适用于嵌入式设备。GhostNet利用Ghost模块实现轻量级架构,性能超越MobileNetV3。此外,文章还介绍了SegNeXt,一个高效卷积注意力网络,提升语义分割性能,参数少但效果优于EfficientNet-L2。专栏提供YOLO相关基础解析、改进方法和实战案例。
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
【YOLOv8改进】MCA:用于图像识别的深度卷积神经网络中的多维协作注意力 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO的创新改进和实战案例,包括多维协作注意力(MCA)机制,它通过三分支架构同时处理通道、高度和宽度注意力,提高CNN性能。MCA设计了自适应组合和门控机制,增强特征表示,且保持轻量化。该模块适用于各种CNN,实验证明其在图像识别任务上的优越性。此外,文章还展示了如何在YOLOv8中引入MCA层的代码实现和相关任务配置。
|
2月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】 YOLOv8 更换骨干网络之GhostNetV2 长距离注意力机制增强廉价操作,构建更强端侧轻量型骨干 (论文笔记+引入代码)
该专栏聚焦YOLO目标检测的创新改进与实战,介绍了轻量级CNNs和注意力机制在移动设备上的应用。文章提出了一种名为GhostNetV2的新架构,结合了硬件友好的DFC注意力机制,强化了特征表达能力和全局信息捕获,同时保持低计算成本和高效推理。GhostNetV2在ImageNet上以167M FLOPs达到75.3%的top-1准确率,优于同类模型。创新点包括DFC注意力、模型结构优化和效率提升。源代码可在GitHub和MindSpore平台上找到。此外,还提到了YOLOv8的相关实现和任务配置。
|
2月前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
|
23天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
40 1
|
8天前
|
安全 物联网 Linux
学习Linux对网络安全的重要性
**学习Linux对网络安全至关重要:** 1. 开源操作系统广泛应用于服务器、网络设备,掌握Linux是安全专家必备技能。 2. Linux内置安全特性,如最小权限和防火墙,加上丰富的安全工具,提供强大保障。 3. 可定制性允许灵活配置,满足安全需求,开源社区提供持续更新和教育资源。 4. 学习Linux能提升攻防能力,用于系统加固和渗透测试,适应跨平台安全场景。 5. 随着云计算和物联网发展,Linux在网络安全中的角色日益关键。
33 3
|
3天前
|
监控 安全 Linux
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
11 0

热门文章

最新文章