【图像分割模型】多分辨率特征融合—RefineNet
这是专栏《图像分割模型》的第8篇文章。在这里,我们将共同探索解决分割问题的主流网络结构和设计思想。
RefineNet,教你在实现特征融合与残差恒等映射的同时,怎么找回降下来的空间分辨率。
作者 | 孙叔桥
编辑 | 言有三
本期论文
《RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation》
1 恢复空间分辨率
在分割任务中,为了提取更复杂的特征、构建更深的神经网络,许多算法往往会以牺牲空间分辨率的方式,在尽量少地增加计算量的前提下,换取特征通道数的增加。虽然这种方式有诸多优点,但是也有一个明显的缺陷——空间分辨率的下降。
尽管我们之前已经了解了诸多图像分割的经典算法,但是其中并没有哪个网络结构能够充分利用完整的空间信息来恢复图像的空间分辨率(包括空洞卷积和编解码结构)。因此,这篇文章我们就共同来看看,如何找回这些丢失的分辨率信息。
下图分别是残差结构和空洞卷积在提取稠密分割结果时的操作流程:
很明显,残差结构直接损失了空间分辨率。虽然空洞卷积在一定程度上减小了残差结构空间分辨率的损失,但是其训练的代价是非常高昂的(即使在GPU上)。出于这种考虑,如下图所示的RefineNet被设计出来了:
下面我们具体聊一下RefineNet的网络结构和设计思想。
2 全局特征的提取与融合
为了让大家对网络结构有一个整体的印象,这里先上网络的整体结构图:
RefineNet总共包括三大模块:残差卷积模块(RCU,Residual Convolution Unit)、多分辨率融合模块(Multi-Resolution Fusion)和串联残差池化模块(Chained Residual Pooling)。
(1) RCU模块
RCU模块的结构如下图所示:
每个RCU模块包括一个ReLU层和一个卷积层,网络结构中,每个分辨率下应用两个串联的RCU模块,用于提取该分辨率下的分割结果的残差,最后以相加的形式校正该分辨率下的原始分割结果。
(2) 多分辨率融合
下图是多分辨率融合部分的详细结构:
在给定了多分辨率下经过处理的分割结果后,各个结果将依次通过一个卷积层和一个上采样层,形成空间分辨率统一的分割结果图。
具体而言,网络首先通过一个卷积层处理输入进来的不同分辨率下的分割结果,从而学习得到各通道下的适应性权重。随后,应用上采样,统一所有通道下的分割结果,并将各通道结果求和。求和结果送入下一个模块。
(3) 串联残差池化
下图是这一模块的结构图:
前两个模块主要用于将不同分辨率下的分割结果进行整合,通过学习得到的残差先校正单独的分割结果;再通过习得的权重,对所有通道下的结果加权求和。而这一部分的作用则是进一步通过残差校正的方式,优化前两步融合得到的分割结果。
这个模块主要由一个残差结构、一个池化层和一个卷积层组成。其中,池化层加卷积层用来习得用于校正的残差。值得注意的是,RefineNet在这里用了一个比较巧妙的做法:用前一级的残差结果作为下一级的残差学习模块的输入,而非直接从校正后的分割结果上再重新习得一个独立的残差。
这样做的目的,RefineNet的作者是这样解释的:可以使得后面的模块在前面残差的基础上,继续深入学习,得到一个更好的残差校正结果。
最后,网络又经过一个一个RCU模块,平衡所有的权重,最终得到与输入空间尺寸相同的分割结果。
3 网络结构变种
除了上述的基础网络结构,RefineNet还可以存在下面几种变种。
(1) 单个RefineNet
(2) 2次级联的RefineNet
(3) 4次级联2倍RefineNet
4 实验结果
RefineNet在NYUv2数据库、PASCAL VOC 2012数据库和Cityscapes数据库下都有实验验证。下表是其在NYUv2下的结果(40类):
下表是其在Cityscapes下的结果:
由于在PASCAL VOC 2012下的对比表格太大,如果感兴趣的话,建议直接查阅原文。下图是语义分割问题上的直观结果:
除了语义分割,RefineNet还可以用于目标理解(object parsing)。下表是其在目标理解上的表现:
下图是RefineNet在目标理解上的直观结果:
总结
本文我们了解了如何利用残差网络将不同分辨率下的分割结果有效融合,并得到原始分辨率下的稠密分割图。到此为止,主流的语义分割网络结构就基本说完了。下期我们进入语义分割的最后一部分:循环神经网络。
本专栏文章:
第一期:【图像分割模型】从FCN说起
第二期:【图像分割模型】编解码结构SegNet
第三期:【图像分割模型】感受野与分辨率的控制术—空洞卷积
第四期:【图像分割模型】快速道路场景分割—ENet
第五期:【图像分割模型】以RNN形式做CRF后处理—CRFasRNN
第六期:【图像分割模型】多感受野的金字塔结构—PSPNet
第七期:【图像分割模型】全局特征与局部特征的交响曲—ParseNet
第八期:【图像分割模型】多分辨率特征融合—RefineNet
第九期:【图像分割模型】用BRNN做分割—ReSeg
第十期:【图像分割模型】BRNN下的RGB-D分割—LSTM-CF
第十一期:【图像分割模型】实例分割模型—DeepMask
第十二期:【图像分割模型】全景分割是什么?
感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI!
【图像分割模型】多分辨率特征融合—RefineNet相关推荐
- 【图像分割模型】全局特征与局部特征的交响曲—ParseNet
这是专栏<图像分割模型>的第7篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管多尺度融合.空洞卷积都可以增加网络的感受野,但理论感受野与实际感受野仍然存在差异.那 ...
- 【图像分割模型】全景分割是什么?
这是专栏<图像分割模型>的第12篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文是专栏的最后一篇文章,见识过了分割任务中的大量模型,也了解了语义分割与实例分割,这 ...
- 【图像分割模型】实例分割模型—DeepMask
这是专栏<图像分割模型>的第11篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文介绍了用于实例分割任务的模型结构--DeepMask. 作者 | 孙叔桥 编辑 | ...
- 【图像分割模型】BRNN下的RGB-D分割—LSTM-CF
这是专栏<图像分割模型>的第10篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 深度信息的引入往往会给分割带来更好的结果.之前提到的ENet除了直接变成ReSeg分割 ...
- 【图像分割模型】用BRNN做分割—ReSeg
这是专栏<图像分割模型>的第9篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管许多人都知道RNN在处理上下文上多优于CNN,但如何将RNN用于分割任务还是值得讨论 ...
- 【图像分割模型】多感受野的金字塔结构—PSPNet
这是专栏<图像分割模型>的第6篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 在分割问题中,上下文信息与多尺度融合对于提高分割精度是十分有效的,今天我们就来谈谈用于实 ...
- 线性插值改变图像尺寸_【图像分割模型】实例分割模型—DeepMask
这是专栏<图像分割模型>的第11篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文介绍了用于实例分割任务的模型结构--DeepMask. 作者 | 孙叔桥 编辑 | ...
- 双向特征融合的数据自适应SAR图像舰船目标检测模型
双向特征融合的数据自适应SAR图像舰船目标检测模型 人工智能技术与咨询 昨天 本文来自<中国图象图形学报>,作者张筱晗等 摘要: 利用合成孔径雷达(synthetic aperture r ...
- 模式分类中的特征融合方法
概念.基本术语 信息融合:将来源不同的信息整合到一起,去冗余:得到的融合信息将利于我们之后的分析处理. 信息融合分为三个层次:数据融合,特征融合,决策融合.如下图所示: 这篇文章重点介绍了信息的特征融 ...
最新文章
- R语言计算回归模型每个样本(观察、observation、sample)的DFBETAS值实战:每一个样本对给定系数的估计有多大的影响
- 2020-10-26如何在Amazon AWS上设置一台免费Linux云主机
- 接口经常超时?线程池+ FutureTask来解决!
- 【NOIP1999】导弹拦截
- 二分类最优阈值确定_机器学习 | 详解GBDT在分类场景中的应用原理与公式推导...
- 启明云端分享|乐鑫 ESP-NOW 无线通信方案主要特点、应用以及NOW一对一模式下通信速率
- QT的QElapsedTimer类的使用
- c# list 自定义排序
- Maven学习总结(7)——eclipse中使用Maven创建Web项目
- CISCO发现协议(CDP)理论与实验
- Nginx负载均衡如何进行配置
- 【鱼眼镜头6】[鱼眼畸变模型]:统一相机模型标定
- 入门图形学:ComputeShader
- 02- 在夜神模拟器内部安装App
- [RK3568 Android11] 开发之强制APP横屏或者竖屏显示
- 逻辑斯谛回归logistic regression-最大熵
- matlab实现jpg转pgm,Matlab实现图片格式转换 pgm转jpg等
- iLife '09测评
- Android 版本API对应表
- 84. 从视图索引说Notes数据库(下)
热门文章
- 解决错误: Failed to load class “org.slf4j.impl.StaticLoggerBinder“
- 蓝桥杯练习系统习题-历年真题解析2(完整版)
- 【struts2+hibernate+spring项目实战】实现用户登录功能(ssh)
- 信息系统项目管理知识--项目配置管理
- 数据结构:二叉搜索树(BST)的基本操作
- 消息中间体activeMQ
- java velocity是什么意思,什么是Apache Velocity?
- vb 字符串替换_学习VB编程第69天 字符串查找与替换
- 清除Console口和Telnet密码教程
- 精彩回顾 | Serverless Developer Meetup 12.04 深圳站