PIDNet: 受PID控制器启发的实时语义分割网络

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


导读

来自德克萨斯A&M大学,语义分割网络从两分支网络进化到了三分支网络。

28a9886420f5fed24e0fa9ced8d002f6.png

摘要

两分支网络架构在实时语义分割任务中展现出了其高效性和有效性。然而,直接融合高分辨率细节和低频上下文会带来详细特征容易被周围上下文信息淹没的缺点。这种过冲现象限制了现有两分支模型分割准确性的提升。在本文中,我们建立了卷积神经网络(CNN)与比例积分微分(PID)控制器之间的联系,并揭示了两分支网络等同于比例积分(PI)控制器,本质上也遭受类似的过冲问题。为了解决这个问题,我们提出了一种新颖的三分支网络架构:PIDNet,它包含三个分支分别解析详细信息、上下文信息和边界信息,并利用边界注意力指导详细分支和上下文分支的融合。我们的PIDNet系列模型在推断速度和准确性之间实现了最佳折衷,其准确性在Cityscapes和CamVid数据集上超过了所有具有相似推断速度的现有模型。具体而言,PIDNet-S在Cityscapes数据集上实现了78.6%的mIoU和93.2 FPS的推断速度,在CamVid数据集上实现了80.1%的mIoU和153.7 FPS的推断速度。

cafcf5197090042bb9dee40c0684fc3d.png

1、介绍

比例积分微分(PID)控制器是一个经典概念,已被广泛应用于现代动态系统和过程控制中,如机器人操作、化学过程和电力系统等。尽管近年来已开发出许多具有更好控制性能的先进控制策略,但由于其简单性和鲁棒性,PID控制器仍然是大多数工业应用的首选。此外,PID控制器的概念也被扩展到了许多其他领域。例如,研究人员将PID概念引入图像去噪、随机梯度下降和数值优化等领域,以获得更好的算法性能。在本文中,我们通过运用PID控制器的基本概念设计了一种新颖的架构,用于实时语义分割任务,并通过广泛的实验表明,我们的模型性能超越了所有先前的工作,并在推断速度和准确性之间实现了最佳折衷,如图1所示。

语义分割是一项基础的视觉场景解析任务,其目标是对输入图像中的每个像素分配特定的类别标签。随着智能化需求的增长,语义分割已成为自动驾驶、医学影像诊断和遥感影像等应用的基本感知组件。自从FCN问世以来,它相对于传统方法取得了显著的进步,深度卷积网络逐渐主导了语义分割领域,并提出了许多代表性模型。为了获得更好的性能,引入了各种策略来赋予这些模型在大规模范围内学习像素间上下文依赖关系的能力,同时不丢失重要细节。尽管这些模型取得了令人鼓舞的分割准确性,但所需计算成本过高,这严重阻碍了它们在实时场景(如自动驾驶车辆和机器人手术)中的应用。

为了满足实时或移动设备的要求,研究人员在过去为语义分割提出了许多高效且有效的模型。具体来说,ENet采用了轻量级解码器并在早期阶段降低了特征图的分辨率。ICNet在复杂的深层路径中对小尺寸输入进行了编码,以解析高级语义。MobileNets用深度可分离卷积替换了传统的卷积。这些早期的工作减少了分割模型的延迟和内存使用,但较低的准确性极大地限制了它们在实际应用中的表现。最近,基于双分支网络(TBN)架构的许多新颖且有前景的模型被提出,并在速度和准确性之间达到了最新的权衡。在本文中,我们从PID控制器的角度审视了TBN的架构,并指出TBN等同于PI控制器,这会导致如图2所示的过冲问题。为了解决这个问题,我们设计了一种新颖的三分支网络架构,即PIDNet,并在Cityscapes、CamVid和PASCAL Context数据集上证明了它的优越性。我们还提供了消融研究和特征可视化,以更好地理解PIDNet中各模块的功能。源代码可通过以下链接访问:https://github.com/XuJiacong/PIDNet

本文的主要贡献如下:

  • 我们建立了深度卷积神经网络(CNN)与PID控制器之间的联系,并基于PID控制器架构提出了一系列三分支网络。

  • 提出了高效的模块,如Bag融合模块,旨在平衡详细特征和上下文特征,以提高PIDNet的性能。

  • PIDNet在所有现有模型中实现了推断速度和准确性之间的最佳折衷。特别是在Cityscapes测试集上,PIDNet-S实现了78.6%的mIoU和93.2 FPS的速度,而PIDNet-L呈现了实时域中最高的准确性(80.6%的mIoU),并且没有使用加速工具。

2、相关工作

2.1 高精度语义分割

早期的语义分割方法基于编码器-解码器架构,其中编码器通过步幅卷积或池化操作逐渐扩大其感受野,而解码器则通过反卷积或上采样从高级语义恢复详细信息。然而,在编码器-解码器网络的下采样过程中,空间细节很容易被忽略。为了解决这一问题,提出了扩张卷积,它能够在不减少空间分辨率的情况下扩大视场。基于此,DeepLab系列通过在网络中使用不同扩张率的扩张卷积,相较于之前的工作取得了显著的改进。需要注意的是,扩张卷积不适合硬件实现,因为其非连续的内存访问。PSPNet引入了一个金字塔池化模块(PPM)来解析多尺度上下文信息,而HRNet利用了多条路径和双边连接来学习和融合不同尺度下的表示。受到注意力机制在语言机器中解析长距离依赖的能力的启发,非局部操作被引入到计算机视觉领域,并导致了许多准确的模型。

1720bf5f08fe20b6f966bb159a3f95f3.png

2.2 实时语义分割

为了实现推断速度和准确性之间的最佳折衷,已经提出了许多网络架构,大致可以总结如下。

轻量级编码器和解码器 SwiftNet采用了一个低分辨率输入来获取高级语义,以及另一个高分辨率输入来为其轻量级解码器提供足够的细节。DFANet通过修改基于深度可分离卷积的Xception的架构引入了一个轻量级骨干网络,并减小了输入大小以获得更快的推断速度。ShuffleSeg采用了结合了通道洗牌和组卷积的ShuffleNet作为其骨干网络,以减少计算成本。然而,这些网络大多仍是编码器-解码器架构的形式,它们要求信息流通过深度编码器,然后再逆向通过解码器,这引入了大量的延迟。此外,由于GPU上深度可分离卷积的优化尚不成熟,传统的卷积虽然具有更多的FLOPs和参数,但呈现出更快的速度。因此,我们寻求更加高效的模型,避免卷积分解和编码器-解码器架构。

双分支网络架构 上下文依赖可以通过大型感受野来提取,而空间细节对于边界界定和小规模物体识别至关重要。为了兼顾这两方面,BiSeNet的作者提出了一种双分支网络(TBN)架构,该架构包含两个不同深度的分支,用于上下文嵌入和细节解析,以及一个特征融合模块(FFM)来融合上下文和详细信息。基于这种架构,已经提出了几项后续工作来增强其表示能力或减少模型复杂度。具体来说,DDRNet引入了双边连接以增强上下文分支和细节分支之间的信息交换,实现在实时语义分割中达到了最新成果。然而,直接融合原始的详细语义和低频上下文信息存在风险,即物体边界可能会被周围的像素过度侵蚀,小物体可能会被邻近的大物体淹没(如图2和3所示)。

71677458ea84893cb2e1c2d27b9f8fb2.png

3、方法

c3e58f67e1ae5ddaa064f9082cff8bc2.png

3.1. PIDNet:一种新型三分支网络

为了缓解过冲问题,我们在 TBN 中附加了一个辅助导数分支(ADB),以在空间上模仿 PID 控制器并突出高频语义信息。物体内部像素的语义是一致的,只有在相邻物体边界处变得不一致,因此语义的差异仅在物体边界处非零,ADB 的目标是边界检测。相应地,我们建立了一种新的三分支实时语义分割架构,即比例积分导数网络(PIDNet),如图 4 所示。

PIDNet 具有三个互补职责的分支:比例(P)分支在高分辨率特征图中解析和保留详细信息;积分(I)分支在局部和全局范围内聚合上下文信息以解析长程依赖关系;导数(D)分支提取高频特征来预测边界区域。我们采用了级联残差块作为主干结构以利于硬件实现。此外,P、I 和 D 分支的深度分别设置为适中、深和浅,以实现高效实施。因此,通过加深和拓宽模型,我们生成了一系列的 PIDNet(PIDNet-S、M 和 L)。

我们在第一个 Pag 模块的输出处放置了一个语义头,以生成额外的语义损失 ( l_0 ),以便更好地优化整个网络。为了避免使用 dice 损失,我们采用加权二元交叉熵损失 ( l_1 ) 来处理边界检测中的不平衡问题,因为粗略的边界更有利于突出边界区域并增强小物体的特征。( l_2 ) 和 ( l_3 ) 表示交叉熵(CE)损失,而对于 ( l_3 ),我们利用边界头的输出采用边界感知交叉熵损失,以协调语义分割和边界检测任务,并增强 Bag 模块的功能。边界感知损失(BAS-Loss)的计算可以写为:

cf9543630a0394690bbede732ec0e645.png

其中,𝑡是预定义的阈值,, 和分别是边界头的输出、第 𝑖个像素针对类别 𝑐的分割真实标签和预测结果。因此,PIDNet 的最终损失函数可以表示为:

769c3b025eb483fede6c5ba74e3ac2ef.png

经验上,我们将 PIDNet 训练损失的参数设置为 = 0.4 , = 20 ,  = 1 , = 1  和t = 0.8。

3.2. Pag:选择性学习高层语义

63ba04092e6110b0b6db624f2276b844.png

侧向连接增强了不同尺度特征图之间的信息传输,并提高了模型的表现能力。在 PIDNet 中,I 分支提供的丰富和准确的语义信息对于 P 和 D 分支的细节解析和边界检测至关重要,这两个分支包含的层数和通道相对较少。因此,我们将 I 分支视为其他两个分支的后备,并使其能够向它们提供所需的信息。不同于 D 分支直接添加所提供的特征图,我们引入了一个像素注意力引导融合模块(Pag),如图 5 所示,用于 P 分支以选择性地学习来自 I 分支的有用语义特征而不被淹没。Pag 的基本概念借鉴自注意力机制。定义 P 分支和 I 分支特征图中对应像素的向量分别为和,则 Sigmoid 函数的输出可以表示为:

65e868da2114a8525233f85176e3b573.png

其中 𝜎表示这两个像素属于同一物体的可能性。如果 𝜎 较高,我们更信任,因为 I 分支在语义上丰富且准确;反之亦然。因此,Pag 的输出可以表示为:

08494de186a5c9a6a4c1897c0c7d2c22.png

3.3. PAPPM:快速聚合上下文

b7b939a1e6cd6b104f40588022e6e437.png

为了更好地构建全局场景先验,PSPNet引入了一个金字塔池化模块(PPM),该模块在卷积层前将多尺度池化图拼接起来形成局部和全局上下文表示。文献提出的深度聚合 PPM(DAPPM)进一步改进了 PPM 的上下文嵌入能力,并展示了优越的性能。然而,DAPPM 的计算过程无法并行化,这导致计算耗时较长,并且 DAPPM 在每个尺度上包含的通道数过多,可能会超出轻量级模型的表现能力。因此,我们修改了 DAPPM 中的连接方式,使其可以并行化,如图 6 所示,并将每个尺度的通道数从 128 减少到 96。这个新的上下文采集模块被称为并行聚合 PPM(PAPPM),并在 PIDNet-M 和 PIDNet-S 中应用,以保证它们的速度。对于我们的深层模型:PIDNet-L,我们仍然选择了 DAPPM,考虑到它的深度,但我们减少了其通道数以降低计算量并提高速度。

3.4. Bag:平衡细节和上下文

给定 ADB 提取的边界特征,我们利用边界注意力来指导细节(P)和上下文(I)表示的融合。具体来说,我们设计了一个边界注意力引导融合模块(Bag),如图 7 所示,用于分别填充高频和低频区域的细节和上下文特征。需要注意的是,上下文分支虽然语义准确,但它丢失了太多的空间和几何细节,特别是在边界区域和小物体方面。得益于细节分支,它更好地保留了空间细节,我们迫使模型在边界区域更信任细节分支,并利用上下文特征填充其他区域。定义 P、I 和 D 特征图中对应像素的向量分别为、和 ,则 Sigmoid、Bag 和 Light-Bag 的输出可以表示为:

0756ffbb249cffbba0d6a4dff0397763.png

其中指的是卷积、批量归一化和 ReLU 的组合。即使我们在 Light-Bag 中用两个 1×1 卷积替换了 Bag 中的 3×3 卷积,Bag 和 Light-Bag 的功能是相似的,即当 > 0.5 时,模型更信任细节特征;否则,更偏好上下文信息。

4、实验

实现细节

预训练 在微调我们的模型之前,我们按照大多数先前的工作使用 ImageNet进行预训练。我们移除了 D 分支,并直接合并了最终阶段的特征以构建分类模型。总的训练轮次为 90 轮,初始学习率为 0.1,在第 30 和 60 轮时乘以 0.1。图像随机裁剪为 224×224 并进行水平翻转以增强数据。

训练 我们的训练协议几乎与先前的工作相同。具体来说,我们采用 poly 策略更新学习率,并进行随机裁剪、随机水平翻转及在 [0.5; 2.0] 范围内的随机缩放来增强数据。Cityscapes、CamVid 和 PASCAL Context 数据集的训练轮次、初始学习率、权重衰减、裁剪大小和批次大小分别为 [484, 1e−2, 5e−4, 1024×1024, 12]、[200, 1e−3, 5e−4, 960×720, 12] 和 [200, 1e−3, 1e−4, 520×520, 16]。我们使用在 Cityscapes 上预训练的模型来微调 CamVid,并在学习率小于 5e−4 时停止训练以避免过拟合。

推理 测试前,我们的模型使用 Cityscapes 和 CamVid 的训练集和验证集进行训练。我们在包含单个 RTX 3090 显卡、PyTorch 1.8、CUDA 11.2、cuDNN 8.0 和 Windows Conda 环境的平台上测量推理速度。我们将批量归一化集成到卷积层中,并将批次大小设置为 1 以测量推理速度。

消融实验

ADB对于双分支网络的作用:

084b314beadb0d6029605e205a6d63ad.png

Pag 和 Bag 的协作

41353d4c83418fb232cf68624e261c78.png

PAPPM的作用:

5160dc24eb9755d118d760343684729b.png

额外的损失函数的作用:

1ab27de0785b74e1ad5681258e092009.png

对比其他方法

69794e764955f78ce095a5b70753305d.png

98519bedb32b4abd8385b2f9f082f454.png

de92613cd95471996c673835a4bf5a65.png

5、结论

本文提出了一种新型三分支网络架构:PIDNet,用于实时语义分割。PIDNet 实现了推理时间和准确性之间最佳的折衷。然而,由于 PIDNet 利用边界预测来平衡细节和上下文信息,为了获得更好的性能,通常需要大量的时间来进行边界周围的精确标注。

d8778848975298022833b11dd5ab441b.png

—END—

论文链接:https://arxiv.org/pdf/2206.02066v3

ca4ee2ad331c9cfcc0253aed587c3104.jpeg

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值