欢迎扫描二维码关注微信公众号 深度学习与数学   [获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]


论文地址 :FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation
工程地址:github 链接

1. 摘要

  时下的语义分割模型通常在主干网络中使用扩展卷积来获得高分辨率的特征图,但是这样做会增加计算复杂度和内存占用。该论文提出了一种新型的联合上采样模块JPU(Joint Pyramid Upsampling)以取代扩张卷积,该方法有效降低了计算复杂度和内存占用,能够在多种已有模型中应用,并且不损失甚至会对最终精度有一定的提升。

2. 简介

  语义分割时计算机视觉的基本任务之一,其目标是为图像的每一个像素点进行。现有方法大多应用了全卷积神经网络(FCN)来完成这一任务,但是全卷积网络的原始网络是为图像分类任务设计的,通过逐步下采样(stride conv和池化层)得到一个富含语义信息但是分辨率很低的特征图,如下图所示,全卷积网络对原始图片进行五次典型的下采样得到原始图片132\frac{1}{32}321​大小的特征图。

  为了获得最终的高分辨率特征图,一些方法将原始的FCN作为编码器来获取深层语义信息,增加解码器模块以融合来自编码器的多各层次的特征图以获取高分辨率特征图,如下图所示,如Unet,SegNet等。

  更进一步的,DeepLab方法一处FCN最后两层下采样操作并引入扩张卷积来保持特征图感受野不变,后跟一个多尺度的语义模块从而得到最终效果,如下图所示,其中扩张卷积在保持最终特征图的分辨率方面作用明显,大大提升了编解码语义分割方法的分割精度,然而正如摘要中提到,扩展卷积大大增加了计算复杂度和内存占用,限制了其在实时问题上的应用。

  该论文针对这一问题对出了新型的联合上采样模块JPU,在OS=32的FCN上应用得到了OS=8的高分辨率特征图,通过一系列的实验证明,在计算复杂度和内存占用都显著减少的同时模型精度并无明显降低。
  综合来看论文的主要贡献在于:

  • 新型的JPU模块来取代时空复杂度较高的扩张卷积
  • 计算时间和内存显著降低的同时模型精度有所上升
  • 在多个通用数据集上取得了SOTA效果

3. 方法

3.1 DilatedFCN

  

3.2 论文中使用的方法的框架

  为了获得分辨率更高的最终特征图,DilatedFCN移除了原始FCN中后两层下采样操作,并添加扩张卷积。该论文则要寻找能够取代这种操作并且在不损精度的条件下提速的方法来获得与DilatedFCN相同的高分辨率特征图,为此,论文首相将DialtedFCN移除的下采样层还原,如下图所示,文中方法的主干网络和原始FCN相同,五次下采样操作每次都缩小两倍,为了获得和DilatedFCN相同尺寸的特征图,应用JPU模块,它融合Conv3,4,5三层特征图,通过多尺度语义模块后得到最终的预测结果。

3.3 Joint Pyramid Upsampling

  论文提出的JPU模块用于生成与DilatedFCN相通尺寸的特征图,该问题可以视为联合上采样,这样可以通过CNN来解决这一问题。

3.3.1 背景

联合上采样 给定一个低分辨率的目标图yly_lyl​和一个高分辨率的引导图xhx_hxh​,联合上采样的作用是将引导图中的细节和结构信息转化到目标图中以生成高分辨率的目标图。形式化来说,yly_lyl​是有低分辨率的引导图xlx_lxl​通过转化f(⋅)f(\cdot)f(⋅)实现的,即yl=f(xl)y_l=f(x_l)yl​=f(xl​)。给定xlx_lxl​和yly_lyl​,需要一个f^(⋅)\hat f(\cdot)f^​(⋅)来逼近f(⋅)f(\cdot)f(⋅),其中f^(⋅)\hat f(\cdot)f^​(⋅)的计算复杂度要远低于f(⋅)f(\cdot)f(⋅),比如说f^(⋅)\hat f(\cdot)f^​(⋅)是多层感知机,那么f(⋅)f(\cdot)f(⋅)就是线性变换。高分辨率目标图yhy_hyh​则通过f^(⋅)\hat f(\cdot)f^​(⋅)来获得,即yl=f^(xh)y_l=\hat f(x_h)yl​=f^​(xh​),最终联合上采样模块可以定义为:
(1)yh=f^(xh),wheref^(⋅)=argminh(⋅)∈H∣∣yl−h(xl)∣∣y_h=\hat f(x_h),where \hat f(\cdot)=argmin_{h(\cdot)\in H}||y_l-h(x_l)||\tag{1}yh​=f^​(xh​),wheref^​(⋅)=argminh(⋅)∈H​∣∣yl​−h(xl​)∣∣(1)

  其中HHH是所有可能转化的集合,||⋅\cdot⋅||是预定义的距离矩阵。

扩张卷积 如上图所示,是一维的扩张率等于2的空洞卷积,1) 将输入特征finf_{in}fin​根据索引分为两组fin0f_{in}^0fin0​和fin1f_{in}^1fin1​;2) 用相同的卷积分别处理输出得到输出fout0f_{out}^0fout0​和fout1f_{out}^1fout1​;3) 将两个输出融合得到foutf_{out}fout​。
带有stride的卷积 如下图所示:

3.3.2 重新定义联合上采样

  DilatedFCN和论文中方法的不同主要在于最后两个卷积层,给定输入图像xxx,通过如下公式得到DilatedFCN的输出ydy_dyd​:
yd=x→Cr→Cd→...→Cd=x→Cr→SCrM→...→SCrM=x→Cr→S→Cr→...→Cr→M=ym→S→Crn→M=ym0,ym1→Crn→My_d=x\rightarrow C_r\rightarrow C_d \rightarrow ... \rightarrow C_d\\=x\rightarrow C_r\rightarrow SC_rM \rightarrow ... \rightarrow SC_rM\\= x\rightarrow C_r\rightarrow S\rightarrow C_r \rightarrow ... \rightarrow C_r \rightarrow M\\=y_m \rightarrow S \rightarrow C_r^n \rightarrow M\\= {y_m^0,y_m^1} \rightarrow C_r^n \rightarrow Myd​=x→Cr​→Cd​→...→Cd​=x→Cr​→SCr​M→...→SCr​M=x→Cr​→S→Cr​→...→Cr​→M=ym​→S→Crn​→M=ym0​,ym1​→Crn​→M

  同样地,通过如下公式得到论文种方法的输出ysy_sys​:
yd=x→Cr→Cr→...→Cr=x→Cr→R→Cr→...→Cr=ym→R→Crn=ym0→Crny_d=x\rightarrow C_r\rightarrow C_r \rightarrow ... \rightarrow C_r\\=x\rightarrow C_r\rightarrow R \rightarrow C_r \rightarrow ... \rightarrow C_r\\= y_m \rightarrow R \rightarrow C_r^n\\=y_m^0 \rightarrow C_r^nyd​=x→Cr​→Cr​→...→Cr​=x→Cr​→R→Cr​→...→Cr​=ym​→R→Crn​=ym0​→Crn​

  其中,Cr,Cd,CsC_r,C_d,C_sCr​,Cd​,Cs​分别代表普通卷积,扩张卷积和带有stride的卷积,CRnC_R^nCRn​是n层普通卷积,S、M、RS、M、RS、M、R分别代表split,merge和reduce操作。
  综上,给定xxx和ysy_sys​,与ydy_dyd​相同的特征图yyy可以由如下公式得到:
y=ym0,ym1→h^→Mwhereh^=argminh∈H∣∣ys−h(ym0)∣∣ym=x→Cry={y_m^0,y_m^1} \rightarrow \hat h \rightarrow M\\where\hat h=argmin_{h \in H}||y_s-h(y_m^0)||\\y_m=x \rightarrow C_ry=ym0​,ym1​→h^→Mwhereh^=argminh∈H​∣∣ys​−h(ym0​)∣∣ym​=x→Cr​

3.3.3 使用CNN来解决这一问题

  正如上述公式所阐明的,联合上采样过程在梯度下降过程中的收敛会花费许多时间,该论文通过一个CNN模块来解决这个问题。具体地,首先在给定xxx的条件下生成ymy_mym​,然后ym0和ym1y_m^0和y_m^1ym0​和ym1​的特征聚合在一起去学习一个映射h^\hat hh^,最后,通过卷积模块得到最终预测yyy,由此设计了如下图所示的JPU模块,首先每一个输入特征图都通过一个普通卷积块(a)以:1)通过xxx生成ymy_mym​;2)将fmf_mfm​进行降维。这样所有的结果维度相同以更好地融合和降低计算复杂度。

  接着所有生成的特征图进行上采样和融合生成ycy_cyc​(b),ycy_cyc​通过多尺度语义模块,其中空洞率为1的平行连接用于捕获ym0和ymy_m^0和y_mym0​和ym​其他部分的关系,如下图所示,其他空洞率的平行连接用于学习用于将ym0y_m^0ym0​转化为ysy_sys​的映射h^\hat hh^,如下图中的绿色部分。这样JPU就可以学习多尺度的特征以获得更好的性能,这与ASPP不同,在于该方法只利用了最后一个特征图的信息。

  这样的特征图编码了ym0和ysy_m^0和y_sym0​和ys​的映射关系与ym0和ymy_m^0和y_mym0​和ym​其他部分的映射关系,之后通过又一个普通卷积块将特征图转化为最终的预测结果,即c过程。
  该论文提出的JPU模块解决了两个问题:

  • 根据Conv3对Conv4进行上采样
  • 根据采样之后的Conv4对Conv5进行上采样。

4.实验结果


  

  

  

  

  

5. 结论

  论文比较了扩张卷积和带有stride的卷积,将获取高分辨率的图像的任务转化为联合上采样问题,并用JPU代替扩张卷积在不损失精度的情况下大幅度降低了计算复杂度和内存占用,在两个语义分割通用数据集ADE20K和Pascal Context上都取得了STOA效果。

图像语义分割(14)-FastFCN: 重新思考语义分割模型主干网络中的扩张卷积相关推荐

  1. python怎么替换主干网络_一块GPU就能训练语义分割网络,百度PaddlePaddle是如何优化的?...

    一. 图像语义分割模型DeepLab v3 随着计算机视觉的发展,语义分割成为了很多应用场景必不可少的一环. 比如网络直播有着实时剔除背景的要求,自动驾驶需要通过语义分割识别路面,与日俱增的应用场景对 ...

  2. 【Gated Context Aggregation Network for Image Dehazing and Deraining用于图像去雾和去雨的门控上下文聚合网络】,个人笔记,勿喷

    摘要 图像去雾旨在从模糊图像中恢复未损坏的内容.我们没有利用传统的低级或手工图像先验作为恢复约束,例如暗通道和增加的对比度,而是提出了一个端到端的门控上下文聚合网络来直接恢复最终的无雾图像.在这个网络 ...

  3. [医学分割比赛] ISBI2023 APIS多模态医学分割比赛总结 + top3解决方案

    ISBI2023 APIS多模态医学分割比赛总结 + top3解决方案 0.比赛背景 1.比赛任务及结果 2.第三名方案 - 龙盈智达(北京)科技有限公司 (0) Data Preprocessing ...

  4. 图像语义分割_图像语义分割(9)-DeepLabV3: 再次思考用于图像语义分割的空洞卷积...

    论文地址 :Rethinking Atrous Convolution for Semantic Image Segmentation 论文代码:Github链接 1. 摘要 文章主要的工作: 使用空 ...

  5. 二十四章:SEgmentation TRansformer (SETR)——以Transformer的序列到序列的视角重新思考语义分割问题

    0.摘要 最近的语义分割方法采用了全卷积网络(FCN)和编码器解码器架构.编码器逐渐降低空间分辨率,并学习具有更大感受野的抽象/语义视觉概念.由于上下文建模对于分割是至关重要的,最新的研究工作将重点放 ...

  6. 【CVPR2018】利用图像级监督进行弱监督语义分割的学习像素级语义亲和力

    文章目录 Abstract 一.方法 1. Computing CAMs 2. Learning AffinityNet 二.实验 Learning Pixel-level Semantic Affi ...

  7. 高精度语义地图构建的一点思考

    点击进入->3D视觉工坊学习交流群 0. 笔者个人体会 高精度(High-Definition, HD)语义地图是目前自动驾驶领域的一个重要研究方向,近年随着Transformer和BEV的大火 ...

  8. 语义分割算法性能比较_语义分割江湖那些事儿

    今天的分享者是旷视余昌黔,来自旷视研究院 Detection 组,他将向我们分享旷视研究院 Detection 组近两年持续在做的 Semantic Segmentation 相关工作,代表性成果主要 ...

  9. u-net语义分割_使用U-Net的语义分割

    u-net语义分割 Picture By Martei Macru On Unsplash 图片由Martei Macru On Unsplash拍摄 Semantic segmentation is ...

  10. LidarMultiNet:在单个多任务网络中统一LiDAR语义分割、三维目标检测和全景分割

    Abstract 这份技术报告介绍了2022年Waymo开放数据集3D语义分割挑战赛的第一名获奖解决方案.我们的网络称为LidarMultiNet,将主要的LiDAR感知任务(例如3D语义分割.目标检 ...

最新文章

  1. 《QTP自动化测试进阶》(1)
  2. NetDevOps — netmiko
  3. leetcode算法题--飞地的数量
  4. javascript获取事件源对象和产生事件的对象
  5. 不用U盘安卓Linux系统,不用U盘,不要光驱,不需分区,windows下安装noilinux双系统...
  6. jquery 设置 select 默认值方法
  7. idea通过Ctrl+鼠标滚轮放大/缩小字体
  8. Nginx源码分析(25篇)
  9. 批量添加手机联系人 | csv/excel转vcf
  10. 多路测量实时同步工作原理_数字示波器原理
  11. 记getsockopt有时偶然返回为零的异常
  12. java操作redis
  13. EXCEL中文本和数字的相互转换方法
  14. 使用高德API接口查询两个地址之间的距离
  15. 重置SMC和NVRAM解决MacBookPro卡顿问题
  16. 利用USRP探索软件无线电(2)
  17. win7 wlan 服务器无响应,Win7启用WLAN AutoConfig服务错误1068的解决措施
  18. 系统学习深度学习(十五)--AlexNet译文
  19. Win10更新后连不上网,电脑win10系统更新后连不上网
  20. 在matlab中拟合值,MATLAB中数值拟合的种种办法

热门文章

  1. 【题解】Luogu P2992 [USACO10OPEN]三角形计数Triangle Counting
  2. i-83.net quadhost子产品
  3. 性能测试场景设计之用户启停设置
  4. 超低静态电流LDO稳压器选择要点
  5. Kafka连接SparkStreaming的两种方式
  6. Python成长笔记 - 基础篇 (七)python面向对象
  7. C#不同操作系统下,界面大小不一的原因
  8. 如何在Docker中安装MySQL
  9. inner join、 left join 、right join、full outer join之间的区别
  10. select、poll、epoll的区别