【多尺度条形池化与通道注意力的图像语义分割】论文精讲

本文介绍了一种针对自然场景图像分割的新型网络SPCANet,它结合了改进的条形池化技术和二阶通道注意力机制,有效应对形状多样性、距离和光照等因素,提升了Cityscapes数据集上的mIoU指标1.2%。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文:论文链接

出处:中国图象图形学报


目录

1.摘要

2.网络结构 

2. 1 改进的条形池化技术

2.2 二阶通道注意力机制

3.结果


1.摘要

 目的 针对自然场景下图像语义分割易受物体自身形状多样性、距离和光照等因素影响的问题,本文提出 一种新的基于条形池化与通道注意力机制的双分支语义分割网络(strip pooling and channel attention net,SPCANet)。 方法 SPCANet 从空间与内容两方面对图像特征进行抽取。 首先,空间感知子网引入 1 维膨胀卷积与多尺度思想 对条形池化技术进行优化改进,进一步在编码阶段增大水平与竖直方向上的感受野;其次,为了提升模型的内容感 知能力,将在 ImageNet 数据集上预训练好的 VGG16(Visual Geometry Group 16-layer network)作为内容感知子网,以 辅助空间感知子网优化语义分割的嵌入特征,改善空间感知子网造成的图像细节信息缺失问题。 此外,使用二阶 通道注意力进一步优化网络中间层与高层的特征选择,并在一定程度上缓解光照产生的色差对分割结果的影响。 结果 使用 Cityscapes 作为实验数据,将本文方法与其他基于深度神经网络的分割方法进行对比,并从可视化效果 和评测指标两方面进行分析。 SPCANet 在目标分割指标 mIoU(mean intersection over union)上提升了 1. 2% 。 结论 提出的双分支语义分割网络利用改进的条形池化技术、内容感知辅助网络和通道注意力机制对图像语义分割进行 优化,对实验结果的提升起到了积极作用。

2.网络结构 

2. 1 改进的条形池化技术

前两天刚看了一篇条形卷积(strip conv)的文章,需要的可以往前翻我的笔记。今天就看到了条形池化(strip pooling)的操作,最近“条形操作”水逆啊。

话不多说。直接看操作吧:

 将输入的特征图同时送入两个子分支进行不 同维度(水平和竖直方向)的编码。

step1:在水平方向上, 使用1 × n 的池化操作将特征图变换成形状为 n × 1 的特征表示(输入特征图(n × n) );

step2:使用一组并行的膨胀卷积对 特征图进行特征提取,膨胀率选为(0, 6, 12, 18);

step3:将这些并行分支产生的特征图采用 concatenate 特征融合方式进行特征融合;

step4:最邻近插值法 将 n × 1 的特征图恢复至n× n;

step5:垂直方向上一致,通过 n × 1池化操作将特征图变成1 × n ,其他操作与水平方向上一致,最终得到垂直方向上的n×n的特征图;

step6:将两个分支 的结果通过加操作来完成特征融合;

step7:叠加后的特征图送入 1 × 1 的卷积、 sigmoid 函数得到权重矩阵;

step8:将权重矩阵与原始特征图进行相乘,得到更新后的特征图。

2.2 二阶通道注意力机制

该模块核心思想是通过计算通道间的相关性权重矩阵来更新输入特征图,主要操作也比较简单:

step1:使用协方差对输入特征图的通道关系进行关联性表示;

step2:接着池化函数中进行特征转换,并使用两个卷积层进行 特征调整(这两个卷积层中间使用 ReLU( rectified linear unit)来增加非线性);

step3:通过函数 sigmoid 将权重归一化到0-1,与条形池化模块的权重矩阵功能类似;

step4:将权重矩阵与原始特征图相乘得到更新后的特征图。

3.结果

实验数据为Cityscapes数据集。

 

 


结论:虽然论文精度和结果提升比较浅,但中间的两个模块(条形池化、通道注意力)确是最近论文的热点,所以看到标题就忍不住进来看一眼,可没有内涵该文章是“标题党”的意思。

整理不易,欢迎一键三连!

### 条形池化的概念实现 条形池化是一种改进的空间池化方法,旨在通过调整池化窗口形状来适应目标对象的不同几何特性。相比于传统的方形池化窗口,条形池化能够更好地处理长条形结构(如草地)或离散分布的目标(如柱子),从而减少无关区域带来的干扰信息[^1]。 #### 条形池化的原理 条形池化的核心在于设计一种灵活的池化机制,使得池化窗口可以根据目标对象的特点动态调整其形状和大小。具体来说,条形池化可以被理解为在特征图上沿特定方向进行加权平均的操作。这种操作允许模型关注更细长的方向性特征,而不是简单地对整个方形区域内所有像素取均值或最大值。 #### 条形池化的实现方式 以下是条形池化的一种常见实现思路: 1. **定义条形窗口** 首先,在输入特征图上定义一系列条形窗口。这些窗口通常沿着水平、垂直或其他指定方向延伸,并覆盖不同的位置和尺度。 2. **聚合特征** 对于每个条形窗口内的特征值,采用某种聚合函数(如求平均值或最大值)。这一步骤可以通过卷积运算高效完成。 3. **组合多方向结果** 将不同方向上的条形池化结果拼接在一起形成最终的特征表示。这种方法有助于捕捉目标对象的多种空间模式。 下面是一个简单的 Python 实现示例,展示如何利用 PyTorch 构建基本的条形池化层: ```python import torch import torch.nn as nn import torch.nn.functional as F class StripPooling(nn.Module): def __init__(self, channels, strip_size=(1, 7)): super(StripPooling, self).__init__() self.strip_pool_h = nn.AdaptiveAvgPool2d((strip_size[0], None)) self.strip_pool_w = nn.AdaptiveAvgPool2d((None, strip_size[1])) def forward(self, x): _, _, h, w = x.size() x_strip_h = self.strip_pool_h(x).expand(-1, -1, h, w) x_strip_w = self.strip_pool_w(x.permute(0, 1, 3, 2)).permute(0, 1, 3, 2).expand(-1, -1, h, w) out = torch.cat([x, x_strip_h, x_strip_w], dim=1) return out ``` 上述代码中,`AdaptiveAvgPool2d` 被用来创建自适应大小的条形池化窗口。通过 `expand` 方法将池化后的特征重新扩展回原始尺寸以便后续融合。 #### 条形池化深度学习中的应用 条形池化广泛应用于图像分割领域,特别是在面对复杂场景下的精细语义解析时表现出显著优势。它不仅提升了模型对于细长物体或不规则分布目标的理解能力,还能够在一定程度上缓解因背景噪声引起的误分类问题。 此外,结合其他先进的深度学习框架和技术栈(例如 YOLOv5/YOLOv8 和 PySide6),条形池化还可以进一步拓展至实际工业应用场景中,比如商品保质期识别检测系统的设计开发过程中作为核心组件之一参构建高效的视觉分析流水线[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zy_destiny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值