当前位置: 首页 > news >正文

[论文笔记] CSFCN

摘要

上下文建模或多级特征融合方法已被证明可以有效提高语义分割性能。 然而,它们并不是专门处理像素上下文不匹配和空间特征不对齐的问题,并且高计算复杂度阻碍了它们在实时场景中的广泛应用。

在这项工作中,我们提出了一种轻量级的上下文和空间特征校准网络(CSFCN),以通过基于池化和基于采样的注意力机制来解决上述问题。

CSFCN包含两个核心模块:上下文特征校准(CFC)模块和空间特征校准(SFC)模块。

CFC采用级联金字塔池化模块来有效捕获嵌套上下文,然后根据像素上下文相似度聚合每个像素的私有上下文,以实现上下文特征校准。

SFC将特征沿通道维度分割为多组子特征,并通过可学习的采样传播其中的子特征,以实现空间特征校准。

对 Cityscapes 和 CamVid 数据集的大量实验表明,我们的方法在速度和准确性之间实现了最先进的权衡。

介绍

我们观察到,上下文不匹配主要来自于上下文建模中的不加区别的处理。 具体来说,用于聚合上下文的常用方法[4]、[5]、[6]为每个像素引入了非自适应上下文,忽略了它们在上下文需求方面的固有差异。 如图 2(a) 所示,对于像素 A 和 B,先前的方法在预定义区域内为它们建模与空间相关的上下文。 然而,激活的上下文区域可能太大或太小,这些不匹配的上下文将带来意想不到的不相关信息或无法提供足够的语义线索。 另一方面,特征错位主要是由重复下采样引起的,这会导致输出(例如特征或预测)和输入图像之间的空间错位。 这个问题在无参数上采样中会加剧,并引入更多的预测误差(特别是在边界处),如图2(b)所示。 考虑到空间注意力(尤其是自注意力)[16],[17]可以捕获每个像素的有益特征并抑制不相关的信息,而其昂贵的计算开销是实时方法无法承受的。 为了解决上述问题,我们提出了一种轻量级的上下文和空间特征校准网络(CSFCN),它具有两种简化的空间注意方式来匹配像素和上下文并将特征与输入对齐。 如图1所示,我们的CSFCN在满足实时性要求的同时,比其他方法实现了更高的精度。

具体来说,为了缓解上下文不匹配问题,我们提出了上下文特征校准(CFC)模块。 与以前以固定方式聚合每个像素的上下文的方法不同,CFC 对每个像素的不同上下文进行建模,即上下文特征是输入的函数,并且也因像素而异。

在这里,我们首先设计了一个级联金字塔池化模块,通过重用池化结果来有效捕获多尺度上下文。 然后,与 selfattention [16]、[18] 类似,但我们不是计算像素到像素的相似度,而是计算像素到上下文的相似度来聚合每个像素的语义相关上下文,从而实现上下文特征校准。 然而,由于池化上下文很容易偏向于具有大模式的特征,因此将它们均匀分布到每个位置将压倒小模式的表示并导致过度平滑的结果。 因此,我们进一步提出了上下文重新校准块(CRB),通过锐化大对象并保留空间细节来有条件地学习局部上下文,如图2(a)所示。

此外,我们引入了空间特征校准(SFC)模块来解决特征错位问题。 源于自注意力 [16]、[18],但 SFC 不是聚合来自所有位置的信息,而是仅从学习的采样位置收集信息,这取决于输入。 直观上,我们只需采样对当前位置预测最有利的特征并将其放置在当前位置,这在实现特征校准的同时大大减轻了计算负担。 此外,我们观察到特征图雕刻了各种语义信息(例如,物体或东西,如图2(b)所示),并且对于不同的特征图通常没有单一的最佳校准方法。 换句话说,统一校准所有特征图会削弱整体特征的区分度。 因此,为了更精细的特征校准,我们首先将通道维度分为多个子特征,然后分别进行校准,这进一步提高了性能。

创新点

1)我们引入了两种简化的自注意力模型 在实现实时分割的同时解决上下文不匹配和特征错位问题的方法。

2)我们设计了一个基于池化的上下文特征校准模块,该模块通过将像素与基于池化的上下文进行匹配来定制每个像素的上下文。

)我们设计了一个基于采样的空间特征校准模块,它对每个位置最具代表性和信息量的特征进行采样

相关工作

A. Generic Semantic Segmentation 

1) Context Modeling:  2) Feature Fusion:  3) Efficient Transformer:

B. Real-Time Semantic Segmentation

感兴趣可看

方法框架

A. Network Architecture

所提出的CSFCN的整体架构如图3所示,它采用非对称编码器-解码器架构。 具体来说,CSFCN 采用轻量级骨干网络来提取多级特征。 之后,我们设计了上下文特征校准模块来为每个像素构建私有上下文以增强其辨别力。 此外,我们使用空间特征校准模块进行空间特征校准,以产生具有精确边界的强语义特征。 不失一般性,我们采用 ImageNet [38] 中预训练的 ResNet-18 [37] 作为主干网络,其他 CNN 也可以用作我们方法中的主干网络。

B. Context Feature Calibration Module

上下文信息可以提供丰富的场景类别先验,以纠正意外的错误分类。 然而,以前的方法[4]、[5]、[6]聚合了预定义区域内的上下文,并忽略了并非所有上下文对给定像素的分类贡献相同,这不可避免地导致上下文不匹配的问题。

此外,捕获的上下文严重偏向于大对象,因为它们包含更多像素,并导致小对象的过度平滑结果。 基于上述见解,我们提出了一个上下文特征校准模块(CFC)来定制和细化每个像素的语义上下文。

通常,大型物体或物体在图像中占主导地位,全局上下文通常与它们相似,但与空间细节不同。 受这种直觉的启发,我们将上下文与每个像素进行匹配,以捕获对其分类最具指导意义的上下文。 也就是说,我们聚合来自语义更接近的区域而不是空间更接近的区域的上下文

具体来说,给定特征 X ∈ RC×H×W,我们首先处理 X 以捕获高度抽象的多尺度上下文 Z ∈ RC×M。 然后,我们计算像素上下文相似度 ɵ∈ RN×M,又名空间注意力图,其中 N = H × W 和 M 分别表示像素和上下文的总数。 我们采用 ɵ 作为指导来聚合每个 像素 的上下文,以实现上下文特征校准。 最后,我们进一步调整每个语义上下文的响应值以生成细粒度的上下文,从而实现上下文重新校准。 从数学上讲,我们的 CFC 可以定义为:

 其中 xi , yi , αi , z j ∈ RC×1 分别表示输入、输出、重新校准因子和上下文。 i的范围为[1,···,H×W],f(·)表示计算特征之间亲和度的成对函数。

模块详细信息

我们在图4中说明了我们的CFC模块。为了追求效率,我们设计了级联金字塔池化(CPP)块来重用前几层的池化结果,从而减少不必要的冗余计算。 如图 4 所示,给定特征 X ∈ RC×H×W,我们首先采用 1 × 1 卷积层生成降维特征 Q ∈ RC′×H×W,其中 C′ 远小于 C

(默认情况下,C′ = 32,C = 256)。 然后,我们使用 CPP 块来收获多尺度上下文 Z ∈ RC×M。

特别地,当池化层的输出高度n ∈ [1, 2, 3](一般情况下,输出宽度等于高度)时。默认情况下, 我们设置 n = [1, 2, 3, 6]。 由于池化层在同质空间网格(例如3×3)上进行池化,因此当输入的纵横比不为1时,这可能会导致池化特征的信息冗余。为此,我们保持纵横比为 池化输出大小等于输入。 例如,在方形裁剪上训练时,我们的最小输出大小为 1 × 1,而对于 1024 × 2048 输入,其大小将为 1 × 2。 最后,我们将 Z 输入两个卷积层(使用 BN 和 ReLU)以产生两种形式的上下文表示,即 K ∈ RC′×M 和 V ∈ RC×M。

然后,我们将 Q 重塑并转置为 RN×C′,并在 Q 和 K 之间进行矩阵乘法,并添加一个 softmax 层以产生像素上下文相似性 ɵ∈ RN×M:

其中 ɵi, j 表示第 i 个像素 Qi 和第 j 个上下文 Kj 之间的亲和度。

最后,我们在 V 和  ɵT 之间执行矩阵乘法以获得校准的语义上下文 E ∈ RC×N 并将 E 重塑为 RC×H×W。         获得校准上下文E后,我们将其发送到上下文重新校准块(CRB)以生成精炼上下文E'。 CRB采用类残差设计[37],可以表示为:

 其中 α ∈ RC×H×W 表示重新校准因子,W1 ∈ R C 4 ×C×1×1 和 W2 ∈ RC×C 4 ×3×3 表示卷积层。贴一下原文 ()

 在这里,我们选择 tanh 函数来删除冗余信息并突出显示上下文中的有益信息(例如边界和小对象)。 最后,我们对 X 和 E′ 进行逐元素求和以生成最终的。这里我们采用求和而不是串联操作来减少计算成本。

C. Spatial Feature Calibration Module

        为了弥补逐步下采样造成的空间细节损失,之前的方法 采用跨级特征融合来增强具有低级细节的高级语义特征。 给定低分辨率特征 Fℓ ∈ RCℓ×Hℓ×Wℓ 和高分辨率特征 Fℏ ∈ RCℏ×Hℏ×Wℏ ,他们首先通过标准双线性插值对 Fℓ 进行上采样,然后将 Fℏ 和上采样的 Fℓ 添加或连接以获得输出。 然而,由于空间错位和巨大的表示差距,直接融合它们仍然无法达到令人满意的性能。

        此外,由于特征图编码各种语义信息[39],沿通道维度[17]、[22]执行统一特征对齐也会损害性能。 为了缓解这些问题,我们将通道的维度分组为多个子特征以分别执行校准操作,并无缝集成门控机制以自适应地融合跨级特征。

关于特征校准,我们建议采用特征重采样来重建特征。

ps特征重采样

具体来说,假设特征图上每个位置的空间坐标为 {(1, 1) , (1, 2) , 。 。 。 , (H, W)} 学习到的 2D 偏移图为 1 ∈ R2×H×W。 我们的校准函数 T(·) 可以表示为:

   在 p = (h+11 h,w, w+12 h,w) 处采样特征来导出输出 Uh,w。 由于 p 表示任意(分数)位置,因此等式: 等式5 枚举所有积分位置并使用双线性插值核获得采样位置的特征。 直观上,如图3中SFC中的采样过程所示,我们只是采样对当前位置(蓝点)最有利的特征来替换当前位置(绿点)特征进行校准。 此外,为了更精细的校准,我们沿着通道维度将特征 F 分成 G 组,然后分别对齐每组内的特征,如图 5 所示。

由于F′ℏ通常包含丰富的空间细节,而F′ℓ包含更多语义,仅仅校准然后融合它们并不能产生令人满意的性能。 这是因为单独的特征校准无法处理特征之间巨大的代表性差异。 因此,我们进一步建议通过门控策略自适应地融合校准语义特征 F′ ℓ 和细粒度特征 F′ ℏ,弥合它们之间的表示差距:

 其中 βℓ 和 βℏ 表示门掩模。

1)模块详细信息:为了提高效率,我们将校准和融合过程集成在单个空间特征校准模块中。 如图 5 所示,给定特征 Fℓ ∈ RCℓ×Hℓ×Wℓ 和 Fℏ ∈ RCℏ×Hℏ×Wℏ ,我们首先通过两个卷积层将它们的通道统一为相同的数字 C(默认= 128)。 其次,我们采用双线性插值对 Fℓ 进行上采样。 然后,将上采样的 Fℓ 和 Fℏ 连接起来。

之后,我们将它们输入到卷积块中以预测两组偏移图 1ℓ ∈ R(2×G)×H×W 和 1ℏ ∈ R(2×G)×H×W,用于对齐两个级别的特征和两个 门掩码 βℓ, βℏ ∈ R1×H×W 用于控制两个级别的特征信息流。 最后,校准后的跨级特征进行逐元素求和以获得输出。 综上所述,我们的SFC模块可以正式写为:

 其中 U (·) 表示双线性上采样函数,Wℓ ∈ RCℓ×C′×3×3 和 Wℏ ∈ RCℏ×C×3×3 表示具有 BN 和 ReLU 的卷积层。

注意,我们采用残差思想来减轻初始阶段大偏移和掩模预测误差的负面影响,这使得我们可以将SFC插入到网络中,而不会影响其原始性能(如果卷积块被构造为零映射)。 也就是说,我们将卷积块的最后一个卷积层的权重初始化为零,以逐渐学习更准确的偏移量和掩模。 此外,我们选择对门掩模采用 1 + tanh 激活。 因此,最初,T(F, 0) 成为恒等映射,且 β = 1 + tanh(0) = 1。现在,SFC 可以表示为:

 此时,我们的SFC模块相当于[3]、[8]和[9]中的简单特征融合策略。

实验

上下文特征校准:在我们的方法中,上下文的粒度会显着影响性能,很大程度上取决于 M 的值,而 M 的值由池化层输出大小决定。 为此,我们通过改变输出大小进行了一组对比实验。

如表二所示,保持池化层输入和输出的宽高比(KAR)一致可以明显提高性能(76.96% vs. 77.59%),而无需增加来自更细粒度上下文的过多计算。 此外,我们发现性能随着上下文数量(M)的增加而增加,而当输出大小超过(1,2,3,6)时性能趋于稳定。 请注意,过于详细的划分(例如,(1,3,6,8))将导致性能下降(77.27% vs. 77.59%),可能是因为输出包含的上下文信息太少,无法提供高质量的语义线索。 最终,考虑到效率和准确性之间的折衷,我们采用(1,2,3,6)作为默认设置。

表 III 显示了各种上下文建模方法的结果。 为了公平比较,我们在相同的设置下重现所有比较的模块,并将它们统一附加到降维层(DRL,图 3 中的绿色箭头)。 如表三所示,在类似或更低的计算成本下,我们的 CFC 优于其他同行。 例如,当 FLOP 较低时,CFC 达到 78.09% mIoU,比 AlignCM [22] (77.26%) 高 0.83 个百分点。 特别是,CFC 以更快的速度实现了最佳性能,超越了 PAM [16](77.56% vs. 78.09%),而我们的 FLOP 减少了 81.4%。

 空间特征校准:我们将 SFC 模块附加到没有 DRL 的主干网的 Stage4 来研究其能力。 请注意,如果我们将 SFC 放在 DRL 之后(如 CFC),其计算量和性能将会下降。 表IV列出了不同设置的实验结果。 我们可以看到,进行分组校准可以明显提高性能。 例如,当使用 1 + tanh 激活时,设置 G = 2 的性能比 G = 1(即,无分组)高出 0.97%(77.15% vs. 78.12%),并且仅产生很小的额外计算负担(6.73G vs. 6.80) G)。 同时,1+tanh 也取得了比 sigmoid 更好的性能(77.37% vs. 78.12%),这可能是因为其优越的初始性能。 此外,不同的分组数也会带来不同的性能提升。 最后,考虑到性能和效率之间的权衡,我们选择 G = 2 和 1 + tanh 激活作为默认设置。

此外,我们还将SFC与其类似方法进行了比较。 表V给出了结果,其中“校准”和“融合”表示SFC仅执行特征校准或门控融合。 为了公平比较,我们还在相同的设置下重现了所有比较的模块。 据观察,直接校正预测输出的iGUM[42]很难获得高精度。 此外,FAM [17]和AlignFA [22]对齐不同级别的特征并直接混合多级别特征,忽略了不同级别特征和子特征之间的差异,导致性能较差(76.21%和75.25%mIoU) 。 同时,采用注意力特征融合的iAFF[43]取得了相对优越的性能(77.22%)。 相比之下,我们的SFC不仅校准了每组多级特征中的子特征,而且采用加权融合策略来弥合它们之间的表示差距,从而获得更领先的性能(78.12% mIoU和70.02 FPS)。

与最先进的比较:我们首先在 Cityscapes 测试数据集上展示各种方法的详细每类结果,以研究 CSFCN 的优越性。 如表七所示,我们的 CSFCN 在大多数类别(例如“道路”、“卡车”和“自行车”)上都达到了最佳 mIoU,这明显优于现有的实时方法(例如 ENet [27]、CGNet [44] ]和PCNet [11])。 尽管如此,与通常采用大扩张主干网(例如,DUC [23])的面向精度的方法(例如,DUC [23])相比,CSFCN 仍然难以处理空间细节相关的类别(例如,“交通灯”和“交通标志”)。 ,ResNet-101 [37])来提取高分辨率特征。 然而,我们的方法也可以实现可比的性能,并且在整体准确率方面优于它(78.7% vs. 77.6%)。 此外,采用MobileNetV3-L作为Backbone的CSFCN也以更少的计算量(21.7G FLOPs)实现了更好的精度(75.1%)。

我们进一步在 Cityscapes 测试集上将 CSFCN 与 SOTA 实时网络进行比较。 特别是,我们在网络名称后面附加 50、75 和 100,分别表示输入大小 512 × 1024、768 × 1536 和 1024 × 2048。 如表八所示,我们的 CSFCN 实现了最佳的速度与准确度权衡,并且以相对较大的优势优于其他竞争对手。 具体而言,CSFCN-100 以更快的速度实现了 78.7% mIoU 的最佳准确率,比 SFANet [12]、MGSeg [1]、HyperSeg [48] 和 BiSeNetV2-L† [33] 分别提高了 0.6%、0.9%、2.9 分别为 % 和 3.4%。 与此同时,我们的 CSFCN-50 在类似的推理速度下比 STDC1-Seg50† [36] 提高了 1.9% mIoU。 特别是,我们的 CSFCN-75 在相同主干网 (ResNet-18) 和相似的 FLOPs (55.3G vs. 56.2G) 下也大幅优于 BiSeNet2 [32] (2.5%)。 特别是,虽然深度卷积可以显着减少计算量(意味着更少的FLOP),但由于内存访问成本或其他原因,其实际推理速度往往低于标准卷积[50]。 因此,与 FBSNet [31] 或 SFANet [12] 等方法不同,我们仅使用标准卷积来获得更快的速度(70.0 FPS)。

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 入门教程(3)基础知识 | 3.1、基础语法
  • 即插即用篇 | YOLOv10 引入矩形自校准模块RCM | ECCV 2024
  • Macbook增加扩展屏待机重开后软件界面错乱问题解决方案
  • 【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用
  • Ready Go
  • rust学习笔记
  • 【QT】系统-上
  • 相机雷达标定
  • 【rpg像素角色】俯视角-行走动画
  • MySQL缓存策略
  • 数据分析-13-时间序列异常值检测的类型及常见的检测方法
  • Linux集群管理-网站集群批量管理-ssh服务
  • MariaDB 导入报错: Error at line 1: Unknown command ‘\-‘. 版本冲突的解决方法
  • 无人机应用新纪元:图形工作站配置推荐与硬件解析
  • 数据结构——复杂度讲解
  • 【EOS】Cleos基础
  • android图片蒙层
  • IndexedDB
  • JAVA SE 6 GC调优笔记
  • Javascript 原型链
  • JS变量作用域
  • markdown编辑器简评
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Web Storage相关
  • yii2中session跨域名的问题
  • 机器学习中为什么要做归一化normalization
  • 软件开发学习的5大技巧,你知道吗?
  • 小试R空间处理新库sf
  • 在weex里面使用chart图表
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​io --- 处理流的核心工具​
  • # centos7下FFmpeg环境部署记录
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #{}和${}的区别?
  • #数据结构 笔记三
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $ git push -u origin master 推送到远程库出错
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (HAL库版)freeRTOS移植STMF103
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (三) diretfbrc详解
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转) 深度模型优化性能 调参
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • ../depcomp: line 571: exec: g++: not found
  • .apk 成为历史!
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET单元测试