赞
踩
摘要
在实时语义分割任务中,双分支网络架构具有良好得效率和有效性。然而,高分辨率细节和低频上下文的直接融合存在细节特征容易被周围上下文信息淹没的缺点。这种超调现象限制了现有双分支模型分割精度的提高。在本文中,我们将卷积神经网络 (CNN) 和比例积分微分 (PID) 控制器联系起来,揭示了双分支网络等同于比例积分 (PI) 控制器,后者天生就存在类似的超调问题。为了缓解这个问题,我们提出了一种新颖的三分支网络架构:PIDNet,它包含三个分支来分别解析详细信息、上下文信息和边界信息,并使用边界注意来指导详细分支和上下文分支的融合。我们的 PIDNet 系列实现了推理速度和准确性之间的最佳平衡,并且它们的准确性超过了在 Cityscapes 和 CamVid 数据集上具有相似推理速度的所有现有模型。具体而言,PIDNet-S 在 Cityscapes 上以 93.2 FPS 的推理速度实现 78.6% mIOU,在 CamVid 上以 153.7 FPS 的速度实现 80.1% mIOU。
1.引言
比例-积分-微分 (PID) 控制器是一个经典概念,已广泛应用于现代动态系统和过程,例如机器人操纵 [3]、化学过程 [24] 和电力系统 [25]。尽管近年来已经开发出许多具有更好控制性能的先进控制策略,但由于 PID 控制器的简单性和鲁棒性,它仍然是大多数工业应用的首选。此外,PID 控制器的思想已扩展到许多其他领域。例如,研究人员将 PID 概念引入图像去噪 [32]、随机梯度下降 [1] 和数值优化 [50] 以获得更好的算法性能。在本文中,我们利用 PID 控制器的基本概念为实时语义分割任务设计了一种新颖的体系结构,并证明了我们模型的性能超越了之前的所有工作,并在推理速度和准确性之间实现了最佳平衡, 如图 1 所示,通过广泛的实验。
语义分割是视觉场景解析的一项基本任务,目的是将输入图像中的每个像素分配给特定的类标签。随着智能化需求的增加,语义分割已成为自动驾驶[16]、医学影像诊断[2]和遥感影像[54]等应用的基本感知组件。 从 FCN [31] 开始,与传统方法相比取得了很大的改进,深度卷积神经网络逐渐主导了语义分割领域,并提出了许多具有代表性的模型 [4, 6, 40, 48, 59, 60]。为了获得更好的性能,引入了各种策略以使这些模型具备学习大规模像素之间的上下文依赖性而不会丢失重要细节的能力。尽管这些模型实现了令人鼓舞的分割精度,但需要太多的计算成本,这严重阻碍了它们在实时场景中的应用,例如自动驾驶汽车 [16] 和机器人手术 [44]。
为了满足实时或移动需求,研究人员过去提出了许多高效和有效的语义分割模型。具体来说,ENet [36] 采用轻量级解码器并在早期阶段对特征图进行下采样。具体来说,ENet [36] 采用轻量级解码器并在早期阶段对特征图进行下采样。ICNet [58] 在复杂和深度路径中编码小尺寸输入以解析高级语义。 MobileNets [21, 42] 用深度可分离卷积取代了传统卷积。这些早期工作减少了分割模型的延迟和内存使用,但低准确度极大地限制了它们在现实世界中的应用。 最近,文献中提出了许多基于双分支网络 (TBN) 架构的新颖且有前途的模型,并在速度和准确性之间实现了 SOTA 权衡 [15、20、38、39、52]。
在本文中,我们从 PID 控制器的角度来看待 TBN 的架构,并指出 TBN 等同于 PI 控制器,它存在如图 2 所示的超调问题。为了缓解这个问题,我们设计了一种新颖的三分支网络架构,即 PIDNet,并展示了它在 Cityscapes [12]、CamVid [5] 和 PASCAL Context [33] 数据集上的优越性。我们还提供消融研究和特征可视化,以更好地理解 PIDNet 中每个模块的功能。 源代码可以通过以下方式访问:https://github.com/XuJiacong/PIDNet
本文的主要贡献有三方面:
• 我们在深度CNN 和PID 控制器之间建立了联系,并提出了一个基于PID 控制器架构的三分支网络系列。
• 提出了高效模块,例如旨在平衡细节特征和上下文特征的Bag 融合模块,以提高PIDNet 的性能。
• PIDNet 在所有现有模型中实现了推理速度和准确性之间的最佳平衡。 特别是,PIDNet-S 以 93.2 FPS 的速度实现了 78.6% mIOU,而 PIDNet-L 在没有加速工具的情况下在 Cityscapes 测试集上的实时域中呈现出最高准确度(80.6% mIOU)。
图 1. Cityscapes [12] 测试集上实时模型的推理速度和准确性之间的权衡结果展示。 蓝色星星代表我们的模型,而绿色三角形代表其他模型。
图 2. 动态系统(左 |)和图像分割(| 右)的超调问题。 左 |:二阶系统的 PI 和 PID 控制器的阶跃响应; | 右图:从第一行到最后一行,图像分别从 DDRNet-23 [20] 和 ADB-Bag-DDRNet-23(我们的)的输出真值裁剪而来。
2. 相关工作
本节将分别讨论满足高精度和实时要求的代表性方法。
2.1. 高精度语义分割
早期的语义分割方法基于编码器-解码器架构 [4,31,40],其中编码器通过跨步卷积或池化操作逐渐扩大其感受域,解码器使用反卷积或上采样从高级语义中恢复详细信息。然而,在编码解码器网络的下采样过程中,空间细节很容易被忽略。为了缓解这个问题,提出了扩张卷积[53]来扩大视野而不降低空间分辨率。基于此,DeepLab 系列 [7-9] 通过在网络中采用具有不同扩张率的扩张卷积,实现了对先前工作的巨大改进。请注意,扩张卷积不适合硬件实现,因为它的内存访问不连续。PSPNet [59] 引入了金字塔池模块 (PPM) 来解析多尺度上下文信息,而 HRNet [48] 利用多路径和双边连接来学习和融合不同尺度的表示。受语言机器注意力机制[47]的远程依赖解析能力的启发,非局部操作[49]被引入计算机视觉并产生了许多准确的模型[17、23、55]。
2.2. 实时语义分割
已经提出了许多网络架构来实现推理速度和准确性之间的最佳权衡,大致可以总结如下。
轻量级编码器和解码器 SwiftNet [35] 使用一个低分辨率输入来获取高级语义,并使用另一个高分辨率输入为其轻量级解码器提供足够的细节。DFANet [27] 通过修改基于深度可分离卷积的 Xception [11] 的架构引入了轻量级主干,并减小了输入大小以加快推理速度。ShuffleSeg [18] 采用 ShuffleNet [57],它结合了通道交换和组卷积作为其骨干,以降低计算成本。然而,这些网络中的大多数仍然采用编码器-解码器架构的形式,它们需要信息流通过深度编码器然后反向返回通过解码器,这引入了太多的延迟。此外,由于GPU上深度可分离卷积的优化还不成熟,传统卷积呈现出更快的速度,同时具有更多的FLOPs和参数[35]。因此,我们寻求更有效的模型来避免卷积分解和编码器解码器架构。
双分支网络架构上下文相关性可以通过大感受野提取,空间细节对于边界描绘和小规模物体识别至关重要。为了兼顾双方,BiSeNet [52] 的作者提出了一种双分支网络 (TBN) 架构,其中包含两个具有不同深度的分支,用于上下文映射和细节解析,以及一个特征融合模块 (FFM) 来融合上下文 和详细信息。已经提出了一些基于该架构的后续工作,以提高其表示能力或降低其模型复杂性 [38、39、51]。具体来说,DDRNet [20] 引入了双边连接以增强上下文和详细分支之间的信息交换,在实时语义分割中实现了最先进的结果。然而,直接融合原始详细语义和低频上下文信息存在对象边界被周围像素过度腐蚀以及小对象被相邻大对象淹没的风险(如图 2 和图 3 所示)。
3. 方法
PID 控制器包含三个组件:比例 § 控制器、积分 (I) 控制器和微分 (D) 控制器,如上图3所示。PI控制器的实现可以写成:
c
o
u
t
[
n
]
=
k
p
e
[
n
]
+
k
i
∑
i
=
0
n
e
[
i
]
cout[n]=kpe[n]+kin∑i=0e[i]
O
D
[
i
]
=
K
i
−
3
D
I
[
i
−
3
]
+
⋯
+
K
i
D
I
[
i
]
+
⋯
+
K
i
+
3
D
I
[
i
+
3
]
OD[i]=KDi−3I[i−3]+⋯+KDiI[i]+⋯+KDi+3I[i+3]
图 3. 上图 |:PID 控制器与建议网络之间的类比; | 下:左:将周围的mask区域归零并计算每个像素的当前特征与原始特征之间的相似度; 右图:从第一列到最后一列,图像指的是 DDRNet-23 的真值、所有分支的预测、仅详细分支和仅上下文分支。
3.1. PIDNet:一种新型的三分支网络
为了缓解超调问题,我们在 TBN 上附加了一个辅助导数分支 (ADB),以在空间上模拟 PID 控制器并突出显示高频语义信息。每个对象内部像素的语义是一致的,并且仅在相邻对象的边界上变得不一致,因此语义的差异仅在对象边界处为非零,ADB的目标是边界检测。因此,我们建立了一个新的三分支实时语义分割架构,即比例积分微分网络(PIDNet),如图4所示。
图 4. 我们提出的比例-积分-微分网络 (PIDNet) 的基本架构概览。S和B表示语义和边界,Add和Up分别表示元素求和和双线性上采样操作;BASLoss 表示边界感知 CE 损失 [46]。 在推理阶段将忽略虚线和关联块。
PIDNet 拥有三个职责互补的分支:比例(P)分支解析并保存高分辨率特征图中的详细信息;积分 (I) 分支聚合本地和全局的上下文信息以解析远程依赖;微分(D)分支提取高频特征来预测边界区域。与 [20] 一样,我们还采用级联残差块 [19] 作为硬件友好性的支柱。 此外,P、I和D分支的深度设置为适中、深、浅,以便高效实施。 因此,通过加深和加宽模型生成了一系列 PIDNet(PIDNet-S、M 和 L)。
在 [20, 28, 51] 之后,我们在第一个 Pag 模块的输出处放置了一个语义头,以生成额外的语义损失
l
0
l_0
l0,以便更好地优化整个网络。 代替dice损失 [13],采用加权二元交叉熵损失
l
1
l_1
l1来处理边界检测的不平衡问题,因为粗边界更适合突出边界区域并增强小物体的特征。
l
2
l_2
l2 和
l
3
l_3
l3表示 CE 损失,而我们利用边界意识 CE 损失 [46] 为
l
3
l_3
l3使用边界头的输出来协调语义分割和边界检测任务并增强 Bag 模块的功能。 BAS-Loss的计算可以写成:
l
3
=
−
∑
i
,
c
{
1
:
b
i
>
t
}
(
s
i
,
c
log
s
i
,
c
∗
)
l3=−∑i,c{1:bi>t}(si,clogs∗i,c)
3.2. Pag:有选择地学习高级语义
[20,35,48]中使用的横向连接增强了不同尺度特征图之间的信息传输,提高了它们模型的表示能力。在 PIDNet 中,I 分支提供的丰富而准确的语义信息对于 P 和 D 分支的细节解析和边界检测至关重要,这两个分支都包含相对较少的层和通道。因此,我们将I分支视为其他两个分支的备份,并使其能够向它们提供所需的信息。与直接添加所提供的特征图的D分支不同,我们引入了像素注意力引导融合模块(Pag),如图5所示,用于P分支选择性地从I分支学习有用的语义特征,而不会被淹没。Pag 的基本概念是从注意力机制 [47] 中借用的。 将 P 和 I 分支的特征图中对应像素的向量分别定义为
v
p
→
\overrightarrow{v_p}
vp
和
v
i
→
\overrightarrow{v_i}
vi
,则 Sigmoid 函数的输出可以表示为:
σ
=
S
i
g
m
o
i
d
(
f
p
(
v
p
→
)
⋅
f
i
(
v
i
→
)
)
σ=Sigmoid(fp(→vp)⋅fi(→vi))
图 5. Pag 模块示意图。
σ
(
x
)
σ(x)
σ(x) 表示 Sigmoid 函数; 这里所有卷积的内核大小都是 1×1。
3.3. PAPPM:上下文的快速聚合
为了更好地构建全局场景,PSPNet [59] 引入了金字塔池化模块 (PPM),它在卷积层之前连接多尺度池化操作以形成局部和全局上下文表示。[20]提出的Deep Aggregation PPM (DAPPM)进一步提高了PPM的上下文嵌入能力,表现出优越的性能。 尽管如此,DAPPM 的计算过程不能就其深度进行并行化,这很耗时,而且 DAPPM 包含每个尺度的通道太多,这可能会超过轻量级模型的表示能力。因此,我们修改 DAPPM 中的连接以使其可并行化,如图 6 所示,并将每个规模的通道数从 128 减少到 96。这个新的上下文收集模块称为并行聚合 PPM (PAPPM),并应用于 PIDNet-M 和 PIDNet-S 以保证它们的速度。 对于我们的深度模型:PIDNet-L,考虑到它的深度,我们仍然选择 DAPPM,但减少了它的通道数量以减少计算量和加快速度。
图 6. PAPPM 的并行结构。 Avg (5,2) 表示内核大小为 5×5,步幅为 2 的平均池化。
3.4. BAG:平衡细节和背景
鉴于 ADB 提取的边界特征,我们使用边界注意力来指导详细 § 和上下文 (I) 表示的融合。具体来说,我们设计了一个 Boundary-attention-guided 融合模块(Bag),如图 7 所示,分别用细节和上下文特征填充高频和低频区域。请注意,上下文分支在语义上是准确的,但它丢失了太多空间和几何细节,尤其是对于边界区域和小对象。由于详细分支更好地保留了空间细节,我们强制模型更信任边界区域的详细分支,并利用上下文特征来填充其他区域。定义P、I、D特征图对应像素的向量分别为
v
p
→
\overrightarrow{v_p}
vp
、
v
i
→
\overrightarrow{v_i}
vi
、
v
d
→
\overrightarrow{v_d}
vd
,则Sigmoid、Bag、Light-Bag的输出可以表示为:
s
i
g
m
a
=
S
i
g
m
o
i
d
(
v
d
→
)
sigma=Sigmoid(→vd)
图 7. (a) Bag 和 (b) Light-Bag 模块在极端情况下的单通道实现。 P、I 和 D 分别指详细、上下文和边界分支的输出。
σ
σ
σ 表示 Sigmoid 函数的输出。
4.实验
在本节中,我们的模型将在 Cityscapes、CamVid 和 PASCAL Context 基准上进行训练和测试。
4.1. 数据集
Cityscapes. Cityscapes [12] 是最著名的城市场景数据集之一,其中包含从不同城市的汽车视角收集的 5000 张图像。 这些图像被分成数量为 2975、500 和 1525 的集合,用于训练、验证和测试。图像分辨率为 2048×1024,这对实时模型具有挑战性。 这里只使用了精细的注释数据集。
CamVid. CamVid [5] 提供了 701 张驾驶场景图像,分为 367、101 和 233 用于训练、验证和测试。 图像分辨率为 960×720,注释类别数为 32,其中 11 类用于与以前的工作进行公平比较。
PASCAL Context. ASCAL Context [33] 提供了整个场景的语义标签,其中包含 4998 张用于训练的图像和 5105 张用于验证的图像。虽然此数据集主要用于对高精度模型进行基准测试,但我们在这里使用它来展示 PIDNet 的泛化能力。 评估了 59 级和 60 级场景。
4.2. 实施细节
预训练。 在微调我们的模型之前,我们通过 ImageNet [41] 对它们进行预训练,就像之前的大多数工作一样 [20,34,35]。 我们删除了 D 分支并直接合并最后阶段的特征来构建分类模型。训练 epoch 总数为 90,学习率最初定为 0.1,并在第 30 和 60 个 epoch 乘以 0.1。图像被随机裁剪成 224×224 并水平翻转以进行数据增强。
训练。 我们的训练方案与之前的作品几乎相同 [15、20、52]。 具体来说,我们采用 poly 策略来更新学习率和随机裁剪、随机水平翻转以及在 [0.5, 2.0] 范围内的随机缩放以进行数据扩充。Cityscapes、CamVid 和 PASCAL Context 的训练周期数、初始学习率、权重衰减、裁剪大小和批量大小可以概括为 [484, 1
e
−
2
e^{-2}
e−2, 5
e
−
4
e^{-4}
e−4, 1024×1024,12],[200 , 1
e
−
3
e^{-3}
e−3, 5
e
−
4
e^{-4}
e−4, 960×720, 12] 和 [200, 1
e
−
3
e^{-3}
e−3, 1
e
−
4
e^{-4}
e−4,520×520, 16]。借鉴 [20, 51] 的方法,我们为 CamVid 微调 Cityscapes 预训练模型,并在
l
r
<
5
e
−
4
lr < 5e^{−4}
lr<5e−4时停止训练过程以避免过度拟合。
推理。 在测试之前,我们的模型通过 Cityscapes 和 CamVid 的训练集和验证集进行训练。我们在由单个 RTX3090、PyTorch 1.8、CUDA 11.2、cuDNN 8.0 和 WindowsConda 环境组成的平台上验证推理速度。推理。 在测试之前,我们的模型通过 Cityscapes 和 CamVid 的训练集和验证集进行训练。根据 [10] 和 [20、35、45] 提出的度量协议,我们将批量归一化集成到卷积层中,并将批量大小设置为 1 以度量推理速度。
4.3. 消融研究
用于双分支网络的 ADB。 为了证明 PID 方法的有效性,我们将 ADB 和 Bag 与现有模型相结合。在这里,实现了两个具有代表性的双分支网络:配备 ADB 和 Bag 的 BiSeNet [52] 和 DDRNet [20],并且与其原始模型相比,在 Cityscapes 验证集上实现了更高的精度,如表 1 所示。然而,额外的计算会显着降低它们的推理速度,从而触发我们建立 PIDNet。
表 1. 表 1. BiSeNet 和 DDRNet 的 ADB-Bag 消融研究。
Pag 和 Bag 的结合。 P 分支利用 Pag 模块从 I 分支学习有用的信息,而不会在融合阶段之前不知所措,并且引入 Bag 模块来指导详细特征和上下文特征的融合。如表 2 所示,横向连接可以显着提高模型精度,预训练可以进一步提升其性能。在我们的场景中,Add横向连接和Bag融合模块或Pag横向连接和Add融合模块的组合没有什么意义,因为在整个网络中细节的保存应该是一致的。因此,我们只需要比较Add+Add和Pag+Bag的性能,表2和表3中的实验结果证明了Pag和Bag(或Light Bag)协作的优越性。图8中的特征图可视化显示,与第二个Pag的Sigmoid图中的大对象相比,小对象变得更暗,其中I分支丢失了更详细的信息。此外,边界区域和小物体的特征在 Bag 模块的输出中得到了极大的增强,如图 9 所示,并解释了我们选择粗略边界检测的原因。
表2。Pag和Bag在PIDNet-L上的消融研究。IM表示ImageNet[41]预训练,Add表示元素求和运算,None表示不存在横向连接。
表 3. PIDNet-S 上 PAPPM 和 Light-Bag 的消融研究。
图 8. Pag 模块的特征可视化。 第一行从左到右的映射是原始输入图像,P输入,I输入和第一个Pag的Sigmoid函数的输出; 第二行的地图是第二个 Pag 的 groudtruth、P、I 输入和 Sigmoid 输出; 第三行和第四行是另一张图片。
图 9. Bag 模块的特征可视化。 第一行从左到右的图分别是原始输入图像、真值、DDRNet-23和PIDNet-M的预测;第二行的图是PIDNet-M中Light-Pag的P、I、D输入和最终输出; 第三行和第四行是另一张图片。
PAPPM 的效率。 对于实时模型,繁重的上下文聚合模块可能会大大降低推理速度,并可能超过网络的表示能力。因此,我们提出了由并行结构和少量参数构成的PAPPM。表 3 中的实验结果表明,PAPPM 实现了与 DAPPM [20] 相同的精度,但为我们的轻量级模型提供了 9.5 FPS 的加速。
表 4. PIDNet-L 的额外损失和 OHEM 的消融研究。
额外损失的有效性。 PIDNet 引入了三个额外的损失,以促进整个网络的优化并强调每个组件的功能。 根据表 4,边界损失 l1 和边界感知损失 l3 是获得更好性能所必需的,尤其是边界损失 (+1.1% mIOU),这有力地证明了 D 分支的必要性,并且在线硬示例挖掘 (OHEM) [43] 进一步 提高了准确性。
4.4. 比较
CamVid. 对于 CamVid [5] 数据集,只有 DDRNet 的准确性可以与我们的模型相媲美,因此考虑到我们的平台比他们的平台更先进,我们使用相同的设置在我们的平台上测试其速度以进行公平比较。表 5 中的实验结果表明,我们所有模型的精度都超过了 80% mIOU,而 PIDNet-S-Wider 只是将 PIDNetS 的通道数增加了一倍,达到了最高精度,并且比之前的模型有很大的优势。此外,PIDNet-S 的精度超过了之前的最先进模型:DDRNet-23-S 1.5%mIOU,延迟仅增加了约 1 毫秒。
表 5. CamVid 上的速度和准确度比较。 Cityscapes[12]预训练的模型标有†; 标有 * 的模型的推理速度是在我们的平台上测试的。
Cityscapes. 虑到其高质量注释,以前的实时工作将 Cityscapes [12] 作为标准基准。如表 6 所示,我们测试了近两年发布的模型在同一平台上的推理速度,没有任何加速工具作为 PIDNets 以进行公平比较。实验结果表明,PIDNets 在推理速度和准确性之间取得了最佳平衡。具体而言,PIDNet-L 在速度和精度方面超越 SFNet(ResNet18)† 和 DDRNet-39,将测试精度从 80.4% 提高到 80.64% mIOU,成为实时域中最准确的模型。与推理速度相似的其他模型相比,PIDNet-M 和 PIDNet-S 还提供了更高的准确度。从 PIDNet-S 中移除 Pag 和 Bag 模块,我们提供了一个更快的选项:PIDNet-S-Simple,其泛化能力较弱,但仍然在延迟小于 10 毫秒的模型中呈现出最高的精度。
PASCAL Context. PAPPM 中的 Avg(17, 8) 路径被删除,因为图像尺寸在 PASCAL Context [33] 中太小。与其他两个数据集不同,这里使用多尺度和翻转推理来与以前的模型进行公平比较。尽管与前两个数据集相比,PASCAL Context 中的注释细节较少,但我们的模型仍然在现有的重型网络中取得了具有竞争力的性能,如表 7 所示。
5.结论
本文提出了一种新颖的三分支网络架构:用于实时语义分割的 PIDNet。PIDNet 实现了推理时间和准确性之间的最佳折衷。然而,由于 PIDNet 利用边界预测来平衡详细信息和上下文信息,因此通常需要大量时间的边界周围的精确注释以获得更好的性能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。