《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID Controllers》

期刊: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

图1

PID 控制器包含三个组件:比例 (P) 控制器、积分 (I) 控制器和导数 (D) 控制器,如图所示。PI控制器的实现可以写成:

其中,P 控制器专注于当前信号,而 I 控制器累积所有过去的信号。由于积累的惯性效应,当信号发生相反变化时,简单的PI控制器的输出会发生超调。然后,引入D控制器,如果信号变小,D分量将变为负值,并作为阻尼器来减少超调。 

输出为:

其中:

 

k_{mn}为第m层核的第n个值。由于|k_{mn}|大多分布在(0,0.01)中,且以1为界,因此随着层数的增加,各项的系数呈指数递减。因此,对于每个输入向量,项目数量越多意味着对最终输出做出贡献的可能性越大。对于细节, I\left [ i-1 \right ]I\left [ i \right ]I\left [ i+1 \right ]占据了总条目数的70%以上,说明细节更关注局部信息。相反, I\left [ i-1 \right ]I\left [ i \right ]I\left [ i+1 \right ]只占上下文分支总条目的26%以下,因此上下文分支强调的是周围信息。从图-Bottom可以看出,上下文分支对本地信息变化的敏感性低于细节分支。细节分支和上下文分支在空间域中的行为类似于P(当前)和I(所有以前)控制器在时间域中的行为

z^{-1}替换为PID控制器z-变换中的e^{-jw},可以表示为:

当输入频率 ω 增加时,I 和 D 控制器的增益将分别变小和更大,因此 P、I 和 D 控制器作为全通、低通滤波器和高通滤波器工作。由于PI控制器更关注输入信号的低频部分,不能立即对信号的快速变化做出反应,因此它固有地存在超调问题。D控制器通过启用对输入信号变化敏感的控制输出来减少超调。图3-Bottom显示,细节分支解析各种语义信息,即使不准确,而上下文分支聚合低频上下文信息,并与语义上的大平均滤波器类似地工作。直接融合详细和上下文信息会导致一些细节特征的缺失。因此,我们得出结论,TBN 等价于傅里叶域中的 PI 控制器。 

3.2 PIDNet: A Novel Three-branch Network

为了缓解超调问题,我们将辅助导数分支(ADB)附加到TBN上,在空间上模拟PID控制器,突出高频语义信息。每个对象内部像素的语义是一致的,只沿着相邻对象的边界变得不一致,因此语义的差异仅在对象边界上非零,ADB的目标是边界检测。因此,我们建立了一种新的三分支实时语义分割体系结构,即比例积分网络(PIDNet),如图所示:

图2

S 和 B 分别表示语义和边界,Add 和 Up 分别表示逐元素求和和双线性上采样操作; BASLoss 表示边界感知 CE 损失。在推理阶段将忽略虚线和关联块。 

为了缓解超调问题,我们将辅助导数分支(ADB)附加到TBN上,在空间上模拟PID控制器,突出高频语义信息。每个对象内部像素的语义是一致的,只沿着相邻对象的边界变得不一致,因此语义的差异仅在对象边界上非零,ADB的目标是边界检测。因此,我们建立了一种新的三分支实时语义分割体系结构,即比例积分网络(PIDNet)。

PIDNet 具有三个具有互补职责的分支:比例 (P) 分支解析并保留高分辨率特征图中的详细信息;积分 (I) 分支在本地和全局聚合上下文信息以解析长期依赖关系;导数 (D) 分支提取高频特征来预测边界区域。还采用了级联残差块作为硬件友好性的主干。此外,P、I 和 D 分支的深度设置为中等、深浅以实现高效实现。因此,通过加深和扩大模型来生成一系列PIDNets (PIDNet-S, M和L)。

在第一个 Pag 模块的输出处放置一个语义头来生成额外的语义损失 l_{0} 以更好地优化整个网络。采用加权二元交叉熵损失l_{1}代替骰子损失,处理边界检测不平衡问题,因为粗边界优先突出边界区域,增强小物体的特征。l_{2} 和 l_{3} 表示 CE 损失,而我们使用边界头的输出对 l_{3} 使用边界感知 CE 损失 [46] 来协调语义分割和边界检测任务,并增强 Bag 模块的功能。BAS-Loss的计算可以写成:

其中,t为预定义阈值,b_{i}s_{i,c}\widehat{s_{i,c}}分别为c类的边界头输出、分割真值输出和第i个像元的预测结果.

PIDNet网络最终的损失函数:

根据经验,将PIDNet训练损失的参数设置为\lambda _{0}=0.4\lambda _{1}=20\lambda _{2}=1\lambda _{3}=1, t = 0.8。 

3.3 Pag:有选择地学习高级语义

在PIDNet中,I分支提供的丰富而准确的语义信息对于P和D分支的详细解析和边界检测至关重要,这两个分支都包含相对较少的层和通道。因此,我们将 I 分支视为其他两个分支的备份,并使其能够为它们提供所需的信息。与D分支直接添加所提供的特征映射不同,我们引入了像素-注意力引导融合模块(Pag),如图3所示,用于P分支选择性地从I分支学习有用的语义特征而不会被淹没。

图3 Pag模块的说明。σ(x) 表示 Sigmoid 函数;这里所有卷积的内核大小均为 1 × 1

工作原理:Pag模块利用来自P分支和I分支的特征图,通过计算对应像素之间的关联度来实现特征的选择性融合。这种关联度是通过一个Sigmoid函数输出的,表示两个像素属于同一对象的可能性。

定义来自P和I分支的特征映射中对应像素的向量分别为\overrightarrow{v_{p}}\overrightarrow{v_{i}},则Sigmoid函数的输出可以表示为:

 其中 σ 表示这两个像素属于同一对象的可能性。如果 σ 很高,我们更多地信任 \overrightarrow{v_{i}},因为 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,但减少其通道数以减少计算量和提高速度。

图4 PAPPM的并行结构。Avg (5,2) 表示内核大小为 5×5 且步长为 2 的平均池化。

工作原理

  • PAPPM通过并行处理不同尺度的特征图来实现快速的上下文聚合。它使用不同尺寸的池化窗口来捕获不同范围的上下文信息,并将这些信息合并以形成全面的上下文表示。

3.5 Bag:平衡细节和上下文 

图5 (a) Bag 和 (b) 极端情况中的 Light-Bag 模块的单通道实现。P、I 和 D 分别指详细、上下文和边界分支的输出。σ 表示 Sigmoid 函数的输出。

给定 ADB 提取的边界特征,我们使用边界注意力来指导详细 (P) 和上下文 (I) 表示的融合。具体来说,我们设计了一个Boundary-attention-guided融合模块(Bag),如图 5 所示,分别填充具有详细和上下文特征的高频和低频区域。请注意,上下文分支在语义上是准确的,但它丢失了太多的空间和几何细节,特别是对于边界区域和小对象。由于细节分支更好地保留了空间细节,我们迫使模型更多地沿着边界区域信任详细的分支,并利用上下文特征来填补其他领域。定义P、I、D特征映射对应像素的向量分别为\overrightarrow{v_{p}}\overrightarrow{v_{i}}\overrightarrow{v_{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利用边界预测来平衡细节和上下文信息,边界周围的精确注释(通常需要大量时间)是首选以获得更好的性能。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快储存,分布式文件系统,对象储存

Ceph块存储 镜像快照 快照可以保存某一时间点时的状态数据快照是映像在特定时间点的只读逻辑副本希望回到以前的一个状态,可以恢复快照使用镜像、快照综合示例 rbd create img1 --size 10G 创建镜像rbd ls 查看镜像 rbd info img1 #查看…

Win32消息机制原理及消息运转

一.消息机制原理 1.消息类型: WIndows定义的一系列WM_XXX开头的,用来表示键盘按键,鼠标点击,窗口变化,用户自定义等各种消息; 2.消息队列: Windows为每一个正在运行的程序维护一个消息队列应用程序的消…

让DroidVNC-NG支持中文输入

DroidVNC-NG支持控制端输入内容,但是仅支持英文字符,如果需要控制输入法软键盘输入中文的话就没办法了,经过摸索找到了解决办法。 这个解决办法有个条件就是让DroidVNC-NG成为系统级应用(这个条件比较苛刻)&#xff…

【JavaScript】一键入门

目录 一、JS起源 二、JS特点 三、JS组成部分 四、JS引入方式 一、JS起源 Java Script是由网景公司的Live Script发展而来的一种运行在客户端浏览器上的脚本语言,可以实现网页如文本内容、数据动态变化和动画特效等即浏览器与用户交互的这种体验。 二、JS特点 …

当了面试官才知道:做好这3点,面试成功率至少提高50%

关于辉哥: 资深IT从业者, 曾就职于阿里、腾讯、美团、中信科等互联网公司和央企; 两岁小男孩的父亲。 不定期分享职场 | 婚姻 | 育儿 | 个人成长心得体会 关注我,一起学习和成长。 最近作为公司社招面…

昇思25天学习打卡营第9天|使用静态图加速

一、简介: AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。两种运行模式的详细介绍如下: (1)动态图: …

QQ等级评估源码+软件

今天,我将和大家探讨一个与直播、撸礼物相关的主题,它涉及到的是一种特殊的软件及其源码——QQ等级评估工具。在我们的生活中,直播已经成为了一种越来越流行的娱乐方式。不论是音乐会、电子竞技,还是日常生活分享,你都…

基于PHP的初中数学题库管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的初中数学题库管理系统 一 介绍 此初中数学题库管理系统基于原生PHP开发,数据库mysql,系统角色分为学生,教师和管理员。(附带参考设计文档) 技术栈:phpmysqlphpstudyvscode 二 功能 …

【深度学习】python之人工智能应用篇--跨模态生成技术

跨模态生成技术概述 跨模态生成技术是一种将不同模态的数据(如文本、图像、音频、视频等)进行融合和转换的技术。其目标是通过将一个模态的数据作为输入,生成与之对应的另一个模态的输出。这种技术对于突破单一模态的局限性,提高…

【图书推荐】CPython设计与实现“适合所有Python工程师阅读的书籍”

目录 一、图书推荐 |【CPython设计与实现】 1.1、书籍介绍 1.2、内容简介 1.3、适合哪些人阅读 1.4、作者译者简介 1.5、购买链接 一、图书推荐 |【CPython设计与实现】 "深入Python核心,揭秘CPython的设计智慧!📖 对于每一位热衷…

WPF/C#:BusinessLayerValidation

BusinessLayerValidation介绍 BusinessLayerValidation,即业务层验证,是指在软件应用程序的业务逻辑层(Business Layer)中执行的验证过程。业务逻辑层是应用程序架构中的一个关键部分,负责处理与业务规则和逻辑相关的…

【Java Web】Vite构建前端目录结构

目录 一、Vite概述 二、Vite构建Vue3工程化项目 三、ViteVue3项目目录结构 四、ViteVue3项目组件(SFC入门) 五、ViteVue3样式导入方式 六、ViteVue3响应式数据和setup语法糖 一、Vite概述 Vite是一种新型前端构建工具,能够显著提升前端开发体验;Vite结合…

Arduino IDE下载、安装和配置

文章开始先把我自己网盘里的安装包分享给大家,链接:https://pan.baidu.com/s/1cb2_3m0LnuSKLnWP_YoWPw?pwdwwww 提取码:wwww 里面一个是Arduino IDE的安装包,另一个是即将发布的版本。 第一个安装包打开直接按照我的步骤安装就…

【第一周】认识小程序

目录 认识小程序发展历史发展前景发展优势个人企业/创业 账号申请开发工具下载流程使用说明 协作项目交流收益渠道 认识小程序 发展历史 微信小程序自2016年首次提出以来,经历了快速的发展和完善过程,以下是其主要发展历史节点: 2016年1月…

将某列缺失分隔符的文字读入 Excel

有个逗号分隔的 txt,共 10 列,第 3 列有时候缺少分隔符,导致该列缺失,数据不齐只剩 9 列。比如最后两行: 01-0104-0133,MAYO, RONIE #2,202403,2024-03-21 22:51:43.000,1449.49,0.00,0.00,08,6CC6BDAC7E45 17-1782-02…

云端智慧,赋能风电场:工业级控制系统云监控网关

风力发电场监控平台实现对风电场的运行状态和风机的实时数据进行监测、控制和管理,提高风电场的可靠性和运行效率,降低维护成本,实现智能化管理。 风机机组PLC、多功能仪表、无线测温、温度变送器、档位变送器、设备接入网关上传数据服务器。…

STM32G4系列之DAC

一、STM32G4单片机有几个DAC外设? STM32G4单片机共有4个DAC,两个为低速DAC(采样率1MHz),两个为高速DAC(采样率15MHz)。共包括7个通道,3个外部通道和4个内部通道。 三个外部DAC包括DAC1和DAC2,其可以映射到外部管脚&am…

输电线路-防鸟设备神器合集!往这边看看!

有些人可能会很恨鸟儿吧。 综艺《种地吧》第一、第二季分别有陈某、王某负责河虾塘、龙虾塘,每天都会有一个“贵宾”-白鹭,如期而至开吃。兄弟俩对其真的恨,但又没办法,谁让白鹭是国家二级保护动物呢。同样在输电线路上也有这样的…

隐秘而又复杂的恶意软件:SSLoad

SSLoad 是一种隐秘的恶意软件,主要通过钓鱼邮件打开突破口,收集各种信息再回传给攻击者。近期,研究人员发现 SSLoad 通过诱饵 Word 文档投递恶意 DLL 文件,最终部署 Cobalt Strike。另一种攻击方式是利用钓鱼邮件诱导受害者到 Azu…

svn切换分支

现在有一个场景: 在svn中有一个b分支,是基于a分支拉出来的,并且我的b分支在本地已经有了改动,a分支在远端也有了改动, 我想把远端a分支的改动同步到我的本地b分支上,如何操作 目前已知的方法 项目右键-&g…