热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(CVPR2019)图像语义分割(22)FickleNet使用随机推理的用于弱监督和半监督的图像语义分割

论文地址:FickleNet:WeaklyandSemi-supervisedSemanticImageSegmentationusingStochasticInfe

论文地址: FickleNet: Weakly and Semi-supervised Semantic Image Segmentation using Stochastic Inference
在这里插入图片描述


1. 简介

  弱监督图像语义分割的难点在于如何从粗糙的图像级别的标注中获取像素级别的的信息。大多数基于图像级别标注的方法都利用了从分类器得到的位置图,但是这些方法重点关注目标较小的显著的部分,并不能获得精准的边界。

  论文提出FickleNet,探索深度卷积神经网络特征图不同位置的组合,学习神经网络各隐藏单元的一致性关系以识别目标的显著部分同时获得精准的边界以及其他部分。FickleNet通过Dropout层实现卷积神经网络隐藏层各单元的随机结合,为单幅图像上产生多个位置图,得到多个形状不同的区域,从而更快地描绘出目标的轮廓,如下图所示。
在这里插入图片描述
  FickleNet可以视为不需要多个扩张率就可以匹配不同形状和尺寸目标的扩展卷积的推广,如下图所示。只需在任一语义分割模型上添加一简单层,就可以在Pascal VOC 2012上的弱监督和半监督方法中取得较好的效果。
在这里插入图片描述


2. 相关工作

  介绍了弱监督近年来的思路和方法,主要有图像层级的区域隐藏或擦除,特征层级的隐藏或擦除以及区域生长的方法。


3. 方法思路

  方法主要分为几步:首先通过FickleNet随机选择隐藏单元,用于训练多类别分类器;之后生成位置图;最终使用位置图上的伪标签训练语义分割模型。用x∈Rk×h×wx \in R^{k \times h \times w}xRk×h×w表示标准深度卷积神经网络,kkk个宽度为www高度为hhh的通道。训练FickleNet并生成位置图的算法图下图:
在这里插入图片描述


3.1 隐藏单元的随机选取

  第一步是隐藏单元的随机选取,它通过随机选择不同组合的隐藏单元计算分类的分数以发现不同单元之间的联系,这样的目的是将目标显著的部分和不显著的部分联系器来。这样的操作是通过在特征图xxx的每一个滑动窗口上应用空间dropout,如下图所示,与传统dropout方法不同的是,仅在每一个前向传导上采样一次隐藏单元,没有被采样的隐藏单元将不会参与分类分数。该方法在每一个滑动窗口上采样隐藏单元,也就是一个隐藏单元可能在有的窗口被激活,有的却没有被激活。
在这里插入图片描述

  该方法产生了许多不同尺寸和形状的感受野,如下图所示,一些感受野与扩张卷积有些相似,具体地,该选择方法通过带有中心保留dropout的扩张技术来实现。
在这里插入图片描述


3.1.1 特征图扩张

  论文提出的方法需要在每一个滑动窗口的位置进行采样得到新的组合,无法直接应用通用的深度学习框架,如果按照上面介绍的方式来实现,需要在每一个前向传导中使用w×hw \times hw×h次卷积操作和dropout操作,如下图所示。论文采用下面的方式将这些操作数减少。
在这里插入图片描述

  如下图所示,论文将输入的特征图放大,避免滑动窗口重叠。在特征图扩张之前,论文为其添加zero padding,尺寸变为k×(h+s−1)×(w+s−1)k \times (h+s-1) \times(w+s-1)k×(h+s1)×(w+s1),这样保持输入输出的尺寸相同,其中sss是卷积核的尺寸。之后进行特征图扩张,得到xexpandx^{expand}xexpand尺寸为k×(sh)×(sw)k \times (sh) \times (sw)k×(sh)×(sw),然后在xexpandx^{expand}xexpand上使用下一节提到的中心保留dropout技术选取隐藏单元。尽管这样会增加GPU内存占用,但是其呈常数增加,不会爆炸。
在这里插入图片描述


3.1.2 中心保留空间Dropout

  论文在空间位置上应用dropout实现隐藏单元的随机选取,通过在扩张过的特征图上应用dropout,这个dropout操作时保留卷积核中心的,这样核中间和其他位置的关系可以找到。通过一个rate为ppp的dropout后,特征图为xpexpandx_p^{expand}xpexpand,另外论文在训练和推断中都是用了dropout。


3.1.3 分类

  为了得到分类分数,使用卷积核尺寸和步长都为sss的卷积操作应用在xpexpandx_p^{expand}xpexpand,这样得到一个新的输出特征图c×w×hc \times w \times hc×w×h,其中ccc是类别数。之后应用全局平均池化和一个sigmoid方法得到分类分数。然后使用sigmoid交叉熵损失更新FickleNet的参数。


3.2 位置图的推理

  之后的步骤是从一张图上获得多个分类分数,每一个都产生了一个位置图。下面的两个操作一个是为了从每一个随机选取上获得位置图,一个描述了如何将这些随机选取集成在单个位置图。


3.2.1 Grad-CAM

  论文使用基于梯度的CAM方法获取位置图,该方法能够发现每一个隐藏单元对分类分数的贡献,即根据特征图计算目标类别分数的梯度,然后在通道维度把特征图相加,以这些梯度维权中,公式如下:

Grad−CAMc=ReLU(∑kxk×∂Sc∂xk)Grad-CAM^c=ReLU(\sum _k x_k \times \frac{\partial S^c}{\partial x_k}) GradCAMc=ReLU(kxk×xkSc)

  其中xk∈Rw×hx_k \in R^{w \times h}xkRw×h是特征图xxx的第kkk个通道,ScS^cSc是类别ccc的分类分数。


3.2.2 将位置图集成

  FickleNet从单张图像上获得多个位置图,因为隐藏单元的不同组合都会用来计算每一个随机选取的分类分数,这样得到了NNN个位置图,每一个位置图中位置uuu处的像素点的分类分数都高于阈值或者该位置处分类分数最多的一个类别集成在输出图上。


3.3 训练分割网络

  上面提到的位置图带有伪标签,用于分割网络的训练,损失函数如下:

L=Lseed+Lboundary+αLfullL=L_{seed}+L_{boundary}+\alpha L_{full} L=Lseed+Lboundary+αLfull

  LseedL_{seed}Lseed是论文DSRG中的两个损失,且:

Lfull=−1∑c∈C∣Fc∣∑c∈C∑u∈FclogHu,cL_{full}=-\frac{1}{\sum_{c\in C}|F_c|} \sum_{c \in C} \sum_{u \in F_c}logH_{u,c} Lfull=cCFc1cCuFclogHu,c

  其中Hu,cH_{u,c}Hu,c是分割图HHH上类别ccc在位置uuu上的概率,FcF_cFc是groudtruth掩码。


4. 实验结果

基础分割网络使用DeepLab-VGG16时VOC2012验证集和测试集上的弱监督结果
在这里插入图片描述

础分割网络使用DeepLab-ResNet时VOC2012验证机和测试集上的弱监督结果
在这里插入图片描述

DeepLab-based半监督方法在VOC2012验证集上的结果
在这里插入图片描述

使用特征图扩张带来的内存占用和时间
在这里插入图片描述

不同dropout率的影响
在这里插入图片描述

定性分析
在这里插入图片描述
在这里插入图片描述
不同的N的选取
在这里插入图片描述
和DSRG方法对比
在这里插入图片描述


5. 结论

  论文旨在解决只用图像级别标注的语义分割方法的问题,在训练和推断时随机选择特征,为单幅图像获得多个不同的位置图,最后集成在一张位置图中。GPU占用有些许增加但是可以接受,并且在许多弱监督和半监督方法上取得了更好的效果。



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


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
author-avatar
1986欠我一个拥抱_567
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有