PaperWeekly 第28期 | 图像语义分割之特征整合和结构预测





余昌黔

华中科技大学硕士

研究方向为图像语义分割

知乎专栏

https://zhuanlan.zhihu.com/semantic-segmentation



前言


近来阅读了 PASCAL VOC 2012 排行榜上前几的文章,包括 PSPNet 和林国省老师的几篇论文,觉得现在在 semantic segmentation 领域对于 Multi-scale Features ensembling 的关注又多起来了(当然其实一直都应用的挺多),然后林国省老师对 CRF 有一些新的认识和解读。这些都将总结于此。


两个发展方向


  • 特征整合(Feature Ensembling) 
    又分为:

    • 多尺度(multi-scale) 特征整合

    • 多级(multi-level)特征整合

  • 结构预测(Structure Prediction) 
    比如之前经常使用的条件随机场


特征整合


多尺度整合


PSPNet


这个方法在前一段时间是 PASCAL VOC 2012 排行榜上的第一,现在的第二。


语义分割中常见问题


  • 关系不匹配(Mismatched Relationship) 
    场景中存在着可视模式的共现。比如,飞机更可能在天上或者在跑道上,而不是公路上。

  • 易混淆的类别(Confusion Categories) 
    许多类别具有高度相似的外表。

  • 不显眼的类别(Inconspicuous Classes) 
    场景中包括任意尺寸的物体,小尺寸的物体难以被识别但是有时候对于场景理解很重要。


Note: 这些大多数错误都部分或者完全和上下文关系以及全局信息有关系,而 PSPNet 就是为了整合不同区域的 context 来获取全局的 context 信息。


网络结构


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中的一些 tricks:


  • 图片输入的 CNN 是 ResNet,使用了 dilated convolution

  • Pyramid Pooling Module 中的 conv 是1×1的卷积层,为了减小维度和维持全局特征的权重

  • Pyramid Pooling Module 中的 pooling 的数量以及尺寸都是可以调节的

  • 上采样使用的双线性插值

  • poly learning rate policy

  • 数据扩增用了:random mirror, random resize(0.5-2), random rotation(-10 到 10 度), random Gaussian blur

  • 选取合适的 batchsize


结构还是很清晰明确的,没太多可说的。 


此外,文中还提到了为了训练使用了一个辅助的 loss,并不在我们讨论内容之内,仅展示一下示意图:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


PSPNet 在 PASCAL VOC 2012 上测试的结果如下:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


FeatMap-Net


这是林国省老师两篇论文中提到的网络结构的前面一部分,我把它抽取出来在此讨论特征整合,这部分网络结构利用多尺度 CNN 和 sliding pyramid pooling 来获取 patch-background 的上下文信息。


网络结构


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中:

  • 图片进来先进行 0.4, 0.8, 1.2 的放缩

  • 前 1-5 conv block 是共享参数的

  • 向上采样还是我们熟悉的双线性插值


Sliding Pyramid Pooling


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中使用的是滑动的 pooling,即 stride 为 1,所以不降低 feature map 的尺寸。不同尺寸的窗口有利于获得不同大小的背景信息,而且增加了 field-of-view,这样 feature vector 能编码更大范围的信息(feature vector 会在之后的结构中使用,下文会介绍到)。


多级整合


RefineNet


这个方法在前一段时间是 PASCAL VOC 2012 排行榜上的第三,现在的第四。本方法主要想解决的限制是:多阶段的卷积池化会降低最后预测结果图片的尺寸,从而损失很多精细结构信息。


现有方法的解决办法:


  • 反卷积作为上采样的操作 
    反卷积不能恢复低层的特征,毕竟已经丢失了

  • Atrous Convolution (Deeplab提出的) 
    带孔卷积的提出就是为了生成高分辨率的 feature map,但是计算代价和存储代价较高

  • 利用中间层的特征 
    最早的 FCN-8S 就是这样做的,但是始终还是缺少强的空间信息


以上所说方法在我之前的文章中都有提到,感兴趣的同学可以猛戳以下链接,这里就不赘述了。 

图像语义分割之FCN和CRF: https://zhuanlan.zhihu.com/p/22308032?group_id=820586814145458176


作者主张所有层的特征都是有用的,高层特征有助于类别识别,低层特征有助于生成精细的边界。所以有了接下来的网络结构,说实话我是觉得有点复杂。


网络结构


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


可以看见,整个结构其实是类似于 FCN-8S 的结构的,只是抽出特征更早,而且经过了 RefineNet 进行处理。 


整个流程就是,1/32 的 feature map 输入 RefineNet 处理后和 1/16 的 feature map 再一起又输入一个 RefineNet 优化,后面的过程类似。


RefineNet


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


可以看出,每个 RefineNet 的输入是可以调整的,所以整个网络的连接也是可以修改的,当然作者做实验说明在他提出的其他变体中这种连接的效果最好。


Residual Convolution Unit (RCU)


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Multi-resolution Fusion


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


这里将输入的不同分辨率的 feature map 上采样到和最大 feature map 等尺寸然后叠加,此处的 conv 用于输入的参数自适应。


Chained Residual Pooling


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


文中提到:


  • conv 作为之后加和的权重

  • relu 对接下来 pooling 的有效性很重要,而且使得模型对学习率的变化没这么敏感

  • 这个链式结构能从大范围区域上获取背景 context


此处不得不提到,这个结构中大量使用了 identity mapping 这样的连接,无论长距离或者短距离的,这样的结构允许梯度从一个 block 直接向其他任一 block 传播。


现在回过头来看看 RefineNet 整个网络结构还是有些复杂的,但是确实还是有一些效果,这种直接将低层特征抽取来优化高层特征的措施可以想象能对结果进行一些优化。但是始终还是觉得这样的处理有点太复杂了。


接下来看一下 RefineNet 在 PASCAL VOC 2012 上测试的结果:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


结构预测 (CRF)


其实在语义分割这个领域很早就开始使用 CRF 或者 MRF 等对语义信息进行建模,在深度学习火起来之前就有不少这样的方法了。所以后来大家很自然地想到了深度学习和条件随机场的结合。但是,林国省老师指出现在利用条件随机场的方法都不太“地道”。 


现有方法:


  • dense CRF 作为 FCN 输出的后处理,并没有真正地结合进 CNN

  • CRFasRNN 中将二者真正结合了,但是只有其中一元势函数的输入来自 CNN,二元势函数的输入来自于一元以及迭代,而且这里的二元势函数被强制考虑为局部平滑度


以上所说方法在我之前的文章中都有提到,感兴趣的同学可以猛戳以下链接,这里就不赘述了。 

图像语义分割之FCN和CRF: https://zhuanlan.zhihu.com/p/22308032?group_id=820586814145458176


Contextual CRF


此处提到的结构是和前文所述 FeatMap-Net 为统一网络结构


整体结构


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


此处我们主要讨论 FeatMap-Net 之后的 CRF 的处理。林老师提出的这个方法对一元势函数和二元势函数都用 CNN 来直接进行处理,而且二元势函数是直接对空间语义建模更精确。


  • feature map 中的每个空间位置(即每个像素点)对应 CRF 图中的一个节点

  • Pairwise connection 就是通过每个节点与预定义的 spatial range box 中其他节点连接来体现的

  • 不同的空间关系通过定义不同类型的 range box 来实现的,每种空间关系通过特定的 pairwise potential function 来建模 


不同空间关系:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Surrounding 这样的关系就在对应节点的周围画框,Above/Below 这样的关系就让节点在一条边的中间然后在其上方或者下方画框,此处的框是原图最短边的 0.4.


此处我们回顾一下 CRF 的公式:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中,Ψω 是不同类型一元势函数的集合,Ω 是一元势函数对应的节点集合;θ 是不同类型二元势函数的集合,Φ 是二元势函数对应的边的集合。


Unary Potential Functions


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


这里,Zp,yp 对应与第 P 个节点和第 Yp 个类别 


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


一元势函数对应的处理就是从 Feature map 上的一个节点提取出 feature vector,然后连接几层全连接层,输出K个值,这个K就是需要预测的类别数。


Pairwise Potential Functions


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


我觉得这里对二元势函数的处理很巧妙,将两个节点对应的 feature vector 提取出来然后连接到一起来学习两个节点之间的边,很棒!之后自然也是连接几层全连接层输出的是k² 个值,为了将所有类别之间的配对关系都考虑进去,但是这里产生的值应该有很多冗余。


Asymmetric Pairwise Functions


对于不对称的关系比如 Above\Below 就需要这样的不对称二元势函数进行学习,而这种势函数主要依赖于两个节点输入的顺序,这个可以通过两个 feature vector 连接的顺序来体现,所以我说这样的处理很巧妙啊。


至此,这种对 CRF 的解读讲完了~但是这篇文章中的有一些内容还不得不提一下:


  • 这些 CRF 是用于 coarse prediciton stage 的,为了提升低分辨率的预测;文中提到在最后的输出的时候还是使用来的 dense crf 进行细化输出的(这就比较尴尬了,最开始还说人家不好,现在还是要使用……)

  • 文中提到 Piecewise Learning 作为新的一种对 CRF 的训练方法,这里就没有阐述了,感兴趣的同学可以看看原文。


参考文献


1. Zhao H, Shi J, Qi X, et al. Pyramid Scene Parsing Network[J]. 2016.

2. Lin G, Shen C, Hengel A V D, et al. Efficient Piecewise Training of Deep Structured Models for Semantic Segmentation[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2016:3194-3203.

3. Lin G, Shen C, Hengel A V D, et al. Exploring Context with Deep Structured models for Semantic Segmentation[J]. 2016.

4. Lin G, Milan A, Shen C, et al. RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation[J]. 2016.





来源:paperweekly


原文链接

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

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

相关文章

02.CSS基础笔记及导入

CSS是什么 CSS&#xff08;Cascading Style Sheet&#xff0c;层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表&#xff0c;它就会按照这个样式表来对文档进行格式化&#xff08;渲染&#xff09;。 CSS样式 CSS引入HTML 内部样式与外部样式 <!DOCTYPE> …

如何还原桌面图标_如何为Windows 10桌面图标还原或更改文本的默认外观?

如何还原桌面图标For whatever reason, sooner or later we all have someone or something mess around with our keyboards and create ‘interesting’ results. With that in mind, today’s SuperUser Q&A post has a simple and elegant way to help a frustrated re…

「前端早读君007」css进阶之彻底理解视觉格式化模型

今日励志 不论你在什么时候开始&#xff0c;重要的是开始之后不要停止。 前言 对于部分前端工程师来讲&#xff0c;有时候CSS令他们很头疼&#xff0c;明明设置了某个样式&#xff0c;但是布局就是不起作用。 如果你也有这种问题&#xff0c;那么是时候学习下什么是css视觉格式…

.NET周报【11月第3期 2022-11-22】

国内文章.NET Conf China 2022 第一批讲师阵容大揭秘&#xff01;整个期待了&#xff01;https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg目光看过来 2022 年 12 月 3-4 日&#xff0c;一场社区性质的国内规模最大的 线上线下.NET Conf 2022 技术大会 即将盛大开幕。目前大…

解读Facebook CAN:如何给人工智能赋予艺术创作的力量

雷锋网 AI 科技评论按&#xff1a;能够迭代进化、模仿指定数据特征的GAN&#xff08;生成式对抗性网络&#xff09;已经是公认的处理图像生成问题的好方法&#xff0c;自从提出以来相关的研究成果不少&#xff0c;在图像增强、超分辨率、风格转换任务中的效果可谓是惊人的。 &a…

全向轮底盘磁导轨寻迹

全向轮底盘上安装两条磁传感器带用于磁导轨寻迹 如简图所示&#xff0c;两条与Y直线相交的黑色线条我们认为是两条磁检测传感器带 矢量方法修正车体位置 定义轨道左为负向&#xff0c;轨道右为正向。传感器左检测为负&#xff0c;右检测为正&#xff1b; 定义底盘坐标系为αβ&…

02-1.CSS边框,边界,布局相关笔记

目录 CSS盒子模型 padding内填充 边框 边框属性 border-radius margin外边距 CSS盒子模型 Content(内容): 盒子的内容&#xff0c;显示文本和图像 >>>>类似word 文字A&#xff0c;改变字体与大小padding: 用于控制内容与边框之间的距离 …

android仿ios弹框_在“提示”框中:iOS外观(在Android上运行),Google Maps作为Time Machine,下载Wii游戏保存...

android仿ios弹框Once a week we round up some great reader tips and share them with everyone. Read on to see how to make your Android phone look like iOS, use a Google Maps mashup like a time machine, and download Wii game saves. 每周一次&#xff0c;我们收集…

使用 C# 开发的摸鱼背单词软件 ToastFish

你好&#xff0c;这里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;实用的工具和组件&#xff0c;希望对您有用&#xff01;摸鱼神器ToastFish 是一个使用 C# 开发的桌面软件&#xff0c;由 Uahh 开发&#xff0c; 这是一个利用Windows通知栏背单词的软件&…

03.JavaScript对DOM操作

JavaScript引入方式 外部引入 在head或者body中&#xff0c;添加以下代码 <script type"text/javascript" src"js/demo.js"></script> 内部引入 在head或body中&#xff0c;定义script标签&#xff0c;然后在script标签里面写js代码 <…

kotlin的suspend对比csharp的asyncawait

协程的出现大大降低了异步编程的复杂度&#xff0c;可以让我们像写同步代码一样去写异步代码&#xff0c;如果没有它&#xff0c;那么很多异步的代码都是需要靠回调函数来一层层嵌套&#xff0c;这个在我之前的一篇有介绍 rxjava回调地狱-kotlin协程来帮忙本篇文章主要介绍kotl…

file协议 控制面板_如何在Windows File Explorer导航窗格中显示控制面板和回收站

file协议 控制面板By default, the Windows File Explorer’s sidebar is divided into big categories like Quick Access, This PC, Network, and so on. But a quick setting change can make your navigation pane look a bit more like the traditional tree you’d see i…

过滤器(Filter)

1 什么是过滤器 过滤器JavaWeb三大组件之一&#xff0c;它与Servlet很相似&#xff01;不它过滤器是用来拦截请求的&#xff0c;而不是处理请求的。 当用户请求某个Servlet时&#xff0c;会先执行部署在这个请求上的Filter&#xff0c;如果Filter“放行”&#xff0c;那么会继…

发布适用于 .NET 7 的 .NET MAUI

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;6分钟)我们在六个月前向您介绍了 .NET 多平台应用程序 UI (MAUI)&#xff0c;现在我们很高兴地宣布 .NET MAUI 在我们的下一个主要版本 .NET 7 中普遍可用。在此短的时间范围内&#xff0c;我们在 .NET MAUI 中的主要…

03:数据结构 栈、队列、链表与数组

算法其他篇 目录&#xff1a; 1.1 数据结构中的一些概念1.2 栈&#xff08;stack&#xff09;1.3 队列1.4 链表1.5 python中字典对象实现原理1.6 数组1.1 数据结构中的一些概念 返回顶部 1、数据结构是什么 1、简单来说&#xff0c;数据结果就是设计数据以何种方式存储在计…

力登:以智能化管理提升数据中心服务能力成熟度

2017年2月28日&#xff0c;由全国信息技术标准化技术委员会信息技术服务分技术委员会指导的《信息技术服务数据中心服务能力成熟度模型》发布&#xff0c;在业界首次提出“数据中心服务能力成熟度”概念&#xff0c;使得数据中心的管理真正实现了数字化和持续优化&#xff0c;是…

基于.NET 7 的 WebTransport 实现双向通信

Web Transport 简介WebTransport 是一个新的 Web API&#xff0c;使用 HTTP/3 协议来支持双向传输。它用于 Web 客户端和 HTTP/3 服务器之间的双向通信。它支持通过 不可靠的 Datagrams API 发送数据&#xff0c;也支持可靠的 Stream API 发送数据。因为 HTTP/3 使用了基于 UDP…

Django01: 安装/基础命令/设置笔记

安装 按官网版本支持&#xff0c;现在比较适合使用1.11版本。 下载安装命令 pip3 install django1.11.9 新建项目 django-admin startproject mysite 运行项目 python manage.py runserver 127.0.0.1:8000 运行相关 目录介绍 mysite/ ├── manage.py # 管理文件 └…

线上问题随笔记录数据库连接池问题

修改方法 转载于:https://www.cnblogs.com/lvgg/p/8581506.html

数据底座_体验当今计算机的未来:通过智能底座将您的Galaxy S4变成PC

数据底座Have you ever thought that Smartphones these days are so advanced they could actually replace the PC in your everyday computing life? Today, we here at HTG will review using the Galaxy S4 with the “Smart Dock Multimedia Hub” as a PC replacement.…