热门标签 | 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等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
在这里插入图片描述


推荐阅读
  • 自动驾驶中的9种传感器融合算法
    来源丨AI修炼之路在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • AdMob 广告变现潜力几何:收益预测与分析
    Google AdMob 为不同规模的应用开发者提供了一种高效且便捷的盈利途径,通过在应用中展示精准定向的广告来实现收入增长。本文将深入探讨 AdMob 的广告变现潜力,结合实际案例和数据,对收益进行预测与分析,帮助开发者更好地理解和利用这一工具。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 在《Python编程基础》课程中,我们将深入探讨Python中的循环结构。通过详细解析for循环和while循环的语法与应用场景,帮助初学者掌握循环控制语句的核心概念和实际应用技巧。此外,还将介绍如何利用循环结构解决复杂问题,提高编程效率和代码可读性。 ... [详细]
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社区 版权所有