【论文阅读】Squeeze-and-Attention Networks for Semantic Segmentation(CVPR2020)
论文题目:Squeeze-and-Attention Networks for Semantic Segmentation(用于语义分割的挤压—注意网络)
下载链接:https://arxiv.org/abs/1909.03402
代码:非官方仅SA模块代码:https://github.com/its-mayank/SqueezeAttention-PyTorch
文章贡献:
1. 将语义分割分解为两个子任务:像素预测和像素分组;
2. 提出了SA模块,能兼顾单个像素的多尺度密集预测,及像素组的空间注意,优于SE;
3. 提出了由SA模块构成的SANet网络结构,整合多尺度背景特征和图像级类别信息。
1 背景与动机
分割方法的进步主要是通过改进像素表示来实现精确标记。然而,语义分割并不完全等同于像素预测。
作者认为语义分割可以表示为2个独立的部分:1)像素级预测(每个像素的分类)和 2)像素分组(像素之间的联系)。
以往方法主要是在1)上改进,而忽视了2)。
因此作者引入像素分组的第二个子任务,直接鼓励属于同一类的像素在没有空间限制的情况下被分组在一起,基于像素分组问题设计了SA模块来缓解卷积核的局部约束。
2 相关工作
多尺度上下文
- 拉普拉斯金字塔结构整合多尺度上下文特征,最流行的方法是采用池化操作来收集不同尺度的空间信息。如pspnet,deeplab等。
- 编码器-解码器架构融合具有不同层次语义含义的特征。如FCN、Unet等。
因此作者也采取类似结构,融合了骨干残差网络的4个不同阶段输出,以获得多尺度信息。
通道注意力
- 有选择地对特征图的通道进行加权,有效地提高了传统残差模块的表示能力,但例如SE模块的方法会导致模型参数变多。
图(a)是残差结构,下分支为跳跃连接;图(b)是将SE加入到残差结构的分支中。图中省略了归一化层和激活层。
压缩和激励模块SE的核心思想在于网络训练的同时学习不同通道特征图的权重,使得有利于损失函数下降的特征图的权重变大,而对损失函数下降没有贡献或者贡献较小的特征图权重变小。
压缩步骤:输入是HxWxC的特征图,可以看成是C张HxW的图片,每张图片都用它所有像素点的均值来表示(即每个通道都采用1x1的平均池化),获得1x1xC的大小。
激励步骤:输入是压缩操作的输出,大小为1x1xC,经过2层全连接层,可以认为是一层隐藏层+一层输出层,隐藏层由1x1xC变为1x1xC’(C’<C),输出层由1x1xC’变为1x1xC,即为每个通道代表的特征分配的权重。隐藏层后接ReLU激活函数,输出层后接Sigmoid函数,把权重归一化。
将激励操作后的输出结果1x1xC和原始的特征图HxWxC相乘,得到融合了通道注意力信息的特征的结果。
与提高分类性能的SE模块类似,作者提出SA模块,专门为提高分割结果而设计,如图(c)所示:
SE在下采样时是完全压缩的,变为1x1xC,但SA使用的注意力通道(下分支)是未完全压缩的,可有效地产生非局部空间注意力,同时避免在上采样时需要过大的倍数,模型参数量不大。
SE是由注意力通道获取到权重,乘到Xin上再加上Xres,而SA整合了空间关注,对输出进行聚合以提高分割性能。具体表现在注意力通道获取的Xatt不是乘以Xin,而是乘上主通道的输出Xres,之后再加上Xatt。
论文中,SA的主通道和注意力通道的通道数都减少为特征图的1/4,注意力通道的中间ACONV1的通道数设置为4,下采样pooling和上采样upsample的因数都设置为8。
ACONV和CONV本质上是一样的,只是它属于注意通道所以叫注意卷积(attention convolution)。
3 网络结构
图中蓝色框相当于是编码部分,论文使用扩张的ResNet(resnet50&resnet101)和Effiicinets作为骨干网络,FCN Head是用于生成语义分割的分支,相当于是解码部分。
为了聚合多阶段非局部特征,作者在骨干网络的多阶段输出上采用SA模块,从而得到更好的对象边界和场景解析结果。
整个网络一共包含3个损失,总损失为:
其中参数α和β是权重参数,经测试,在论文所使用的数据集中,α取0.2,β取0.8效果最好。
3个损失具体如下面公式所示:
N是训练集的所有图片总数,M表示空间位置(即若图片大小是a*b,那么M=a*b,为像素点总数),C是类别数。
是SANet的预测值,是真实值。是类别的预测值和真实值,用来计算Lcat。Lcat相当于是一个多标签分类,只判断这张图片中有哪些类别而不管他们的位置。具体为,将骨干网络4个阶段的输出分别经过SA模块后进行concat,之后再进行平均池化和全连接层,获得一个1x1xn(n表示类别总数)的结果,将这个结果跟该张图片的真实多标签进行对比,计算Lcat损失。
Lmask和Lden是通常语义分割的交叉熵损失,Lcat是分类损失。
MASK是最终预测的语义分割结果。
总的来说感觉还是像素分类,Lmask和Lden所对应的真实值应该是一样的,论文只是比一般方法多了Lcat和Lden的loss计算。
4 实验结果
作者在Pascal VOC和Pascal Context两个数据集上进行测试,其中Pascal VOC设置学习率为0.0001,使用预训练的COCO数据集权重,再训练50个epoch;Pascal Context设置学习率为0.001,不使用预训练权重,一共训练80epoch。在两个数据集上均使用了随机梯度下降和 poly learning rate annealing schedule ,设置batchsize为16,骨干网络选用resnet50和resnet101,在多GPU上训练。
1. 使用Pascal Context数据集来确定损失函数中α和β的取值为α=0.2,β=0.8:
具体来说,使用resnet50作为骨干网络,训练20个epoch。左图为当β=0.8时α不同取值的mIoU对应情况,右图为当α=0.2时β不同取值的mIoU对应情况。
2. Lcat和Lden的影响
在Pascal Context上,使用Cat和Den损失后有效了提高了分割的准确率,其中mIoU计算中不包含背景:
3. SANet的有效性
在Pascal Context上,对比SANet和其它的一些方法,其中mIoU计算中包含背景:
以resnet50作为骨干网络的FCN基线结果和SANet分割结果效果对比:
4. SA模块的有效性
在FCN基线上对比SA和SE,骨干网络使用resnet50和resnet101:
resnet101比resnet50效果好一点,SE作用不明显,SA作用明显。
5. 注意力图和特征图的可视化
在Pascal VOC数据集上进行可视化,体现注意力机制的关注点:
bcd分别是在原始输入图片上选择的3个点对应的注意力图,注意力图中的红色区域可以被认为是最关注的像素组。即图b)蓝点关注物为小车,图c)黄点关注牛,图d)红点关注摩托。
在SA模块的低级(SA Head1)和高级(SA Head4)上注意力的侧重点不同。在低级阶段,Attn注意力图有广阔的视野,体现在第1行红色部分分布全局,具体关注点不明显。而在高级阶段,Attn注意图主要集中在所选点周围的区域,体现在第4行,bcd三张图的红色关注部分分别在小车、牛、摩托上。同时,Head4的Main特征图也比Head1语义更强,更清晰。
6. Pascal VOC的一些结果
以下为未使用COCO预训练权重的结果对比,SANet训练80epoch:
使用COCO预训练权重的结果对比:
模型复杂度比较:
MACs:每秒的乘法累积操作,Params:网络参数。使用resnet101作为骨干网络,未使用COCO预训练权重。
参考文档
[1] CVPR2020 语义分割之将像素分类group成整体
[2] Squeeze-and-Attention Networks for Semantic Segmentation
[3] Squeeze-and-Attention Networks for Semantic Segmentation | CVPR2020
【论文阅读】Squeeze-and-Attention Networks for Semantic Segmentation(CVPR2020)相关推荐
- 【论文阅读】Fully Convolutional Networks for Semantic Segmentation【CVPR,PAMI】
摘要 我们的研究表明,卷积网络通过端到端.像素到像素的训练,在语义分割方面比之前的最佳结果有所提高 我们的关键见解是构建完全卷积网络,它接受任意大小的输入,并产生相应大小的输出,并具有有效的推理和学习 ...
- [ICCV2019论文阅读]Asymmetric Non-local Neural Networks for Semantic Segmentation
作者:Zhen Zhu, Mengde Xu, Song Bai, Tengteng Huang, Xiang Bai 机构:Huazhong University of Science and Te ...
- 论文阅读:Regularizing Deep Networks with Semantic Data Augmentation
论文阅读:Regularizing Deep Networks with Semantic Data Augmentation 动机 特征空间的语义变换 Implicit semantic data ...
- 【论文翻译】Fully Convolutional Networks for Semantic Segmentation
论文题目:Fully Convolutional Networks for Semantic Segmentation 论文来源:Fully Convolutional Networks for Se ...
- 论文笔记《Fully Convolutional Networks for Semantic Segmentation》
[论文信息] <Fully Convolutional Networks for Semantic Segmentation> CVPR 2015 best paper key word: ...
- 【Few-Shot Segmentation论文阅读笔记】PANet: Few-Shot Image Semantic Segmentation with Prototype , ICCV, 2019
Abstract Target Question: Few-shot Segmentation 本文主要工作: 基于metric-learning的思想,本文提出了PANet(Prototype Al ...
- 论文阅读 | Residual Conv-Deconv Grid Network for Semantic Segmentation
GridNet发表在BMVC2017,用于语义分割,一篇很早期的文章 论文地址:[here] (文章没有给代码地址,但是里面的网络设计讲的很详细,可以自己复现出来,github上也有很多别人复现的代码 ...
- 论文阅读 (88):Adversarial Examples for Semantic Segmentation and Object Detection
文章目录 1. 概述 2 算法 2.1 稠密对抗生成 2.2 选择用于检测的输入提案 1. 概述 题目:用于语义分割和目标检测的对抗样本 核心点:将对抗性样本的概念扩展到语义分割和对象检测,并提出稠密 ...
- EMANet:Expectation-Maximization Attention Networks for Semantic Segmentation论文解读和代码解读
官方项目地址:含论文和代码 来自北大才子 立夏之光的 ICCV Oral ,理论很漂亮.属于Non local方式 Updated on 2020.1.6 最近一直有人私信我,这个attention ...
- [论文阅读] Cost-Effective REgion-based Active Learning for Semantic Segmentation
论文地址:https://arxiv.org/abs/1810.09726 发表于:BMVC'18 Abstract 最先进的语义分割方法在有监督的情况下使用大量的标注训练图像语料库进行训练.然而,与 ...
最新文章
- 旧手机的新玩法:postmarketOS 已适配上百款安卓手机
- 大数据能成为帮助运动员避免伤病的“洪荒之力”吗
- 《高性能MySQL》の复制
- 微服务实战(三):深入微服务架构的进程间通信
- 你的IT运维管理,是否只是“看起来很美”?
- Java Bullshifier –生成大量随机代码库
- “约见”面试官系列之常见面试题第二十七篇之vue-router的重要属性
- 蚂蚁金服 Service Mesh 落地实践与挑战|成都Service Mesh沙龙预告
- 数塔(HDU-2084)
- 9个超级实用的 ES6 特性,超级实用哦!
- Python精确指南——第四章-部署和技巧
- 页面常见跳转的方法和选择
- mac 查看端口的使用情况
- 那些APP活动中的刷量与作弊
- Linux系统版本介绍
- html生成一维码,JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】...
- super关键字详解
- 读书笔记:卓有成效的管理者
- JS实现轮播图点击切换、按钮切换功能
- 导轨安装 DIN11 HVI系列 大电流隔离变送器0-20mA转0-50mA模拟信号放大器
热门文章
- ros-gazebo-仿真环境搭建
- iOS传感器:利用磁力计完成一个AR场景应用
- 计算机专业可取证书名称,职业中专计算机维修专业发的职业资格证书名称叫什..._出版资格_帮考网...
- 最新的html标签属性大全,html标签属性大全
- 【荐】联通域名纠错 联通域名DNS劫持 您输入的域名有误或站点访问失败
- 怎么防抄板:从保护固件与安全认证开始
- 吞吐量 反应时间 延时 抖动 丢包 概念解释
- 小猪的Android入门之路 Day 8 part 3
- web前端技术笔记(十六)bootstrap、表单正则和前端优化
- 腾讯一面:内存满了,会发生什么?