期刊:CVPR
年份:2023
代码:https://github.com/XuJiacong/PIDNet
摘要
双分支网络架构已经证明了它在实时语义分割任务中的有效性和有效性。然而,高分辨率细节和低频上下文的直接融合的缺点是细节特征很容易被周围的上下文信息淹没。这种超调现象限制了现有双分支模型的分割精度的提高。在本文中,我们在卷积神经网络 (CNN) 和比例积分 (PID) 控制器之间建立联系,并表明双分支网络等效于比例积分 (PI) 控制器,这固有地存在类似的超调问题。为了缓解这个问题,我们提出了一种新颖的三分支网络架构:PIDNet,它包含三个分支来分别解析详细、上下文和边界信息,并采用边界注意力来指导详细和上下文分支的融合。我们的PIDNets家族在推理速度和准确性之间取得了最好的权衡,其准确性超过了所有现有模型,在cityscape和CamVid数据集上的推理速度相似。具体来说,PIDNet-S 在 Cityscapes 上以 93.2 FPS 的推理速度实现了 78.6% 的 mIOU,在 CamVid 上以 153.7 FPS 的速度实现了 80.1% mIOU。
Introduce
PID控制器的概念:
- 比例-积分-微分(PID)控制器是一个经典的控制理论概念,广泛应用于现代动态系统和过程,如机器人操控、化学过程和电力系统等。尽管近年来开发了许多具有更好控制性能的高级控制策略,但由于其简单性和鲁棒性,PID控制器仍然是大多数工业应用的首选。
PID控制器在其他领域的应用:
- PID控制器的思想已经被扩展到其他领域,例如图像去噪、随机梯度下降和数值优化,以提高算法性能。
背景与动机:
- 传统的两分支网络架构在实时语义分割任务中表现出效率和效果,但存在融合高分辨率细节和低频上下文信息时细节特征容易被上下文信息淹没的问题,这种现象限制了现有模型的分割精度提升。
主要贡献:
- 我们在深度CNN和PID控制器之间建立联系,提出了一种基于PID控制器结构的三分支网络架构。
- 提出了有效的模块,例如旨在平衡详细和上下文特征的 Bag 融合模块,以提高 PIDNets 的性能。
- PIDNet 在所有现有模型中都达到了推理速度和准确性之间的最佳权衡。特别是,PIDNet-S 在 Cityscapes 测试集上以 93.2 FPS 的速度实现了 78.6% 的 mIOU,PIDNet-L 在没有加速工具的 Cityscapes 测试集上展示了最高的准确度(80.6% mIOU)。
Related Work
高精度语义分割:
- 早期的语义分割方法基于编码器-解码器架构,通过步进卷积或池化操作逐步扩大感受野,并通过反卷积或上采样从高级语义中恢复细节信息。但这种架构可能会在下采样过程中忽略空间细节。
- 为了解决这个问题,提出了扩张卷积(dilated convolution),它在不降低空间分辨率的情况下扩大视野。DeepLab系列利用不同扩张率的扩张卷积取得了显著的性能提升。
- 金字塔池化模块(PPM)被引入以解析多尺度上下文信息。HRNet利用多路径和双边连接来学习和融合不同尺度的表示。
- 非局部操作(non-local operation)被引入计算机视觉,以提高模型的准确性。
实时语义分割:
- 许多网络架构被提出以在推理速度和准确性之间取得最佳平衡。例如,SwiftNet采用轻量级编码器和解码器,并在早期阶段对特征图进行下采样。
- DFANet通过修改Xception的架构引入轻量级骨干网络,该架构基于深度可分离卷积,并减小输入尺寸以提高推理速度。
- ShuffleSeg采用ShuffleNet作为其骨干网络,结合通道Shuffle和组卷积来降低计算成本。
- 作者指出,尽管这些网络减少了延迟和内存使用,但它们的准确性显著限制了在现实世界中的应用。
两分支网络架构(TBN):
- 为了同时考虑上下文依赖性和空间细节,BiSeNet提出了包含两个不同深度分支的TBN架构,分别用于上下文嵌入和细节解析,并使用特征融合模块(FFM)来融合上下文和细节信息。
- 基于TBN的后续工作提出了增强其表示能力或减少模型复杂性的改进。例如,DDRNet引入了双边连接以增强上下文和细节分支之间的信息交换。
PID控制器与TBN的类比:
- 作者将TBN架构与PID控制器进行了类比,指出TBN等同于PI控制器,存在过度响应问题。为了解决这个问题,作者提出了PIDNet,它通过添加一个辅助导数分支(ADB)来模拟空间上的PID控制器,并突出高频语义信息。
PIDNet的优势:
- 通过在TBN中引入ADB,PIDNet能够更好地平衡细节和上下文信息,从而提高分割精度。作者还进行了消融研究和特征可视化,以更好地理解PIDNet中每个模块的功能。
Method
3.1 PID
PID 控制器包含三个组件:比例 (P) 控制器、积分 (I) 控制器和导数 (D) 控制器,如图所示。PI控制器的实现可以写成:
其中,P 控制器专注于当前信号,而 I 控制器累积所有过去的信号。由于积累的惯性效应,当信号发生相反变化时,简单的PI控制器的输出会发生超调。然后,引入D控制器,如果信号变小,D分量将变为负值,并作为阻尼器来减少超调。
输出为:
其中:
为第m层核的第n个值。由于||大多分布在(0,0.01)中,且以1为界,因此随着层数的增加,各项的系数呈指数递减。因此,对于每个输入向量,项目数量越多意味着对最终输出做出贡献的可能性越大。对于细节, ,, 占据了总条目数的70%以上,说明细节更关注局部信息。相反, ,, 只占上下文分支总条目的26%以下,因此上下文分支强调的是周围信息。从图-Bottom可以看出,上下文分支对本地信息变化的敏感性低于细节分支。细节分支和上下文分支在空间域中的行为类似于P(当前)和I(所有以前)控制器在时间域中的行为。
将替换为PID控制器z-变换中的,可以表示为:
当输入频率 ω 增加时,I 和 D 控制器的增益将分别变小和更大,因此 P、I 和 D 控制器作为全通、低通滤波器和高通滤波器工作。由于PI控制器更关注输入信号的低频部分,不能立即对信号的快速变化做出反应,因此它固有地存在超调问题。D控制器通过启用对输入信号变化敏感的控制输出来减少超调。图3-Bottom显示,细节分支解析各种语义信息,即使不准确,而上下文分支聚合低频上下文信息,并与语义上的大平均滤波器类似地工作。直接融合详细和上下文信息会导致一些细节特征的缺失。因此,我们得出结论,TBN 等价于傅里叶域中的 PI 控制器。
3.2 PIDNet: A Novel Three-branch Network
为了缓解超调问题,我们将辅助导数分支(ADB)附加到TBN上,在空间上模拟PID控制器,突出高频语义信息。每个对象内部像素的语义是一致的,只沿着相邻对象的边界变得不一致,因此语义的差异仅在对象边界上非零,ADB的目标是边界检测。因此,我们建立了一种新的三分支实时语义分割体系结构,即比例积分网络(PIDNet),如图所示:
S 和 B 分别表示语义和边界,Add 和 Up 分别表示逐元素求和和双线性上采样操作; BASLoss 表示边界感知 CE 损失。在推理阶段将忽略虚线和关联块。
为了缓解超调问题,我们将辅助导数分支(ADB)附加到TBN上,在空间上模拟PID控制器,突出高频语义信息。每个对象内部像素的语义是一致的,只沿着相邻对象的边界变得不一致,因此语义的差异仅在对象边界上非零,ADB的目标是边界检测。因此,我们建立了一种新的三分支实时语义分割体系结构,即比例积分网络(PIDNet)。
PIDNet 具有三个具有互补职责的分支:比例 (P) 分支解析并保留高分辨率特征图中的详细信息;积分 (I) 分支在本地和全局聚合上下文信息以解析长期依赖关系;导数 (D) 分支提取高频特征来预测边界区域。还采用了级联残差块作为硬件友好性的主干。此外,P、I 和 D 分支的深度设置为中等、深浅以实现高效实现。因此,通过加深和扩大模型来生成一系列PIDNets (PIDNet-S, M和L)。
在第一个 Pag 模块的输出处放置一个语义头来生成额外的语义损失 以更好地优化整个网络。采用加权二元交叉熵损失代替骰子损失,处理边界检测不平衡问题,因为粗边界优先突出边界区域,增强小物体的特征。 和 表示 CE 损失,而我们使用边界头的输出对 使用边界感知 CE 损失 [46] 来协调语义分割和边界检测任务,并增强 Bag 模块的功能。BAS-Loss的计算可以写成:
其中,t为预定义阈值,、、分别为c类的边界头输出、分割真值输出和第i个像元的预测结果.
PIDNet网络最终的损失函数:
根据经验,将PIDNet训练损失的参数设置为, , , , t = 0.8。
3.3 Pag:有选择地学习高级语义
在PIDNet中,I分支提供的丰富而准确的语义信息对于P和D分支的详细解析和边界检测至关重要,这两个分支都包含相对较少的层和通道。因此,我们将 I 分支视为其他两个分支的备份,并使其能够为它们提供所需的信息。与D分支直接添加所提供的特征映射不同,我们引入了像素-注意力引导融合模块(Pag),如图3所示,用于P分支选择性地从I分支学习有用的语义特征而不会被淹没。
工作原理:Pag模块利用来自P分支和I分支的特征图,通过计算对应像素之间的关联度来实现特征的选择性融合。这种关联度是通过一个Sigmoid函数输出的,表示两个像素属于同一对象的可能性。
定义来自P和I分支的特征映射中对应像素的向量分别为和,则Sigmoid函数的输出可以表示为:
其中 σ 表示这两个像素属于同一对象的可能性。如果 σ 很高,我们更多地信任 ,因为 I 分支在语义上丰富且准确,反之亦然。因此,Pag 的输出可以写成:
优势:通过Pag模块,网络能够在不同的情况下动态调整对细节和上下文信息的依赖,从而在保持高分辨率细节的同时,也能够捕捉到更广泛的上下文信息。
3.4 PAPPM:上下文的快速聚合
为了更好地构建全局场景先验,PSPNet[59]引入了一个金字塔池化模块(PPM),该模块在卷积层之前连接多尺度池化映射,形成局部和全局上下文表示。之前论文提出的深度聚合PPM (DAPPM)进一步提高了PPM的上下文嵌入能力,表现出了优越的性能。然而,DAPPM的计算过程在深度上无法并行化,耗时长,且DAPPM每个尺度包含的通道过多,可能超出轻量级模型的表示能力。因此,我们修改DAPPM中的连接以使其可并行化,如图4所示,并将每个尺度的通道数量从128减少到96。这种新的上下文收集模块被称为并行聚合PPM (PAPPM),并应用于PIDNet-M和PIDNet-S以保证它们的速度。对于我们的深度模型:PIDNet-L,我们仍然选择考虑其深度的DAPPM,但减少其通道数以减少计算量和提高速度。
工作原理:
- PAPPM通过并行处理不同尺度的特征图来实现快速的上下文聚合。它使用不同尺寸的池化窗口来捕获不同范围的上下文信息,并将这些信息合并以形成全面的上下文表示。
3.5 Bag:平衡细节和上下文
给定 ADB 提取的边界特征,我们使用边界注意力来指导详细 (P) 和上下文 (I) 表示的融合。具体来说,我们设计了一个Boundary-attention-guided融合模块(Bag),如图 5 所示,分别填充具有详细和上下文特征的高频和低频区域。请注意,上下文分支在语义上是准确的,但它丢失了太多的空间和几何细节,特别是对于边界区域和小对象。由于细节分支更好地保留了空间细节,我们迫使模型更多地沿着边界区域信任详细的分支,并利用上下文特征来填补其他领域。定义P、I、D特征映射对应像素的向量分别为、、,则Sigmoid、Bag、Light-Bag的输出可表示为:
其中 f 指的是卷积、批量归一化和 ReLU 的组合。尽管我们在 Light-Bag 中用两个 1×1 卷积替换了 Bag 中的 3 × 3 卷积,但 Bag 和 Light-Bag 的功能是相似的,即当 σ > 0.5 时,模型更信任细节特征,否则首选上下文信息。
Result
Cityscapes 上的速度和准确性比较。其他分割数据集预训练的模型用 † 标记;标有 * 的模型的推理速度在我们的平台上进行了测试。PIDNet的GFLOPs是基于全分辨率输入导出的。
Conclusion
本文提出了一种新的三分支网络架构:PIDNet用于实时语义分割。PIDNet在推理时间和准确性之间取得了最好的结果。然而,由于PIDNet利用边界预测来平衡细节和上下文信息,边界周围的精确注释(通常需要大量时间)是首选以获得更好的性能。