十七章:FickleNet:使用随机推理进行弱监督和半监督语义图像分割

news2024/11/17 5:30:16

0.摘要

        弱监督语义图像分割的主要障碍在于从粗糙的图像级注释中获取像素级信息的难度。大多数基于图像级注释的方法使用从分类器获得的定位地图,但这些地图仅关注对象的小区别部分,不捕捉精确的边界。FickleNet探索由通用深度神经网络创建的特征图上的各种位置的组合。它随机选择隐藏单元,然后使用它们来获取图像分类的激活分数。FickleNet隐含地学习了特征图中每个位置的一致性,从而产生了一个定位地图,可识别对象的区别和其他部分。通过选择随机隐藏单元对,从单个网络中获得了集合效应,这意味着从单个图像生成了各种定位地图。我们的方法不需要任何额外的训练步骤,只需向标准卷积神经网络添加一个简单的层;尽管如此,我们的方法在弱监督和半监督设置下都优于最近可比较的技术,在Pascal VOC 2012基准测试中表现良好。

1.引言

        语义分割是计算机视觉中最重要和最有趣的任务之一,深度学习的发展已经在完全监督的情况下取得了巨大的进展[3,36]。然而,要在实际应用中使用语义图像分割需要大量的对象类别和每个类别的标记数据。为每个对象类别标注像素级注释是费力的,并且阻碍了对象类别的扩展。这个问题可以通过使用比像素级注释更不确定且更易于获取的注释的弱监督方法来解决。然而,目前的弱监督方法在定位和分割精度方面仍存在许多问题,我们需要进一步研究并开发更有效的弱监督方法来解决这些问题。

        像素级注释使得完全监督的语义分割能够在学习对象边界和组件之间的关系方面实现可靠性。但是,使用图像级注释来训练分割网络是困难的,因为弱标记数据只表明某个类别的对象的存在,并没有提供任何有关它们位置或边界的信息。大多数使用图像级注释的弱监督方法依赖于由分类网络[37]获得的定位图,以弥合图像级和像素级注释之间的差距。然而,这些定位图仅关注对象的小区别部分,没有精确地表示它们的边界。要使这些方法的性能接近于完全监督的图像分割,就需要使分类器转移其主要任务,即在对象之间的区分中发现像素之间的关系。

        我们使用FickleNet解决了这个问题,它可以使用卷积神经网络中随机组合的隐藏单元从单个图像生成各种定位图,如图1(a)所示。从类似VGG-16 [26]的通用分类网络创建的特征图开始,FickleNet在每个滑动窗口位置随机选择隐藏单元,对应于卷积操作中的每个步幅,如图1(b)所示。这个过程通过dropout方法[28]简单实现。选择一个滑动窗口位置中所有可用的隐藏单元(确定性方法)倾向于产生一种平滑效应,混淆前景和背景,可能导致两个区域同时被激活或取消激活。然而,随机选择隐藏单元(随机方法)可以产生不同形状的区域,可以更清晰地描绘对象。由于FickleNet随机选择的隐藏单元的模式包括具有不同扩张率的膨胀卷积的内核的形状,因此可以将FickleNet视为扩张卷积的一般化,但FickleNet仅使用单个网络就可以潜在地匹配具有不同尺度和形状的对象,而扩张卷积需要具有不同扩张率的网络来缩放其内核。

        在常见的深度学习框架中,如PyTorch [22],在每个滑动窗口位置选择随机隐藏单元的操作不是在CUDA级别进行优化的。因此,一个朴素的实现FickleNet的方法,即在每个滑动窗口位置选择随机隐藏单元,然后进行卷积,将需要大量的迭代操作。然而,如果我们在进行随机选择之前扩展特征图,就可以使用深度学习框架提供的优化卷积函数。在进行扩展特征图之前,需要充分扩展特征图,以防止连续的滑动窗口位置重叠。然后,可以在扩展的特征图的空间轴上应用dropout,并使用与内核大小相等的步幅执行卷积操作。这样可以节省大量时间,而GPU内存使用量不会显著增加,因为要反向传播的参数数量保持不变。

        虽然许多现有的网络在其训练过程中使用随机正则化(例如,Dropout [28]),但随机效果通常在推断过程中被排除。然而,我们的推断过程包含随机过程,因此会产生各种定位图。在每个定位图中被分配给具有高分数的特定类别的像素被发现,并且这些像素被聚合成单个定位图。从FickleNet获得的定位图被用作分割网络的伪标签进行训练。本文的主要贡献可以总结如下:

        •我们提出了FickleNet,它使用dropout方法简单实现,发现了图像中位置之间的关系并扩大了分类器激活的区域。

        •我们介绍了一种扩展特征图的方法,使得我们的算法更快,GPU内存成本很小。

        •我们的工作在弱监督和半监督设置下均在Pascal VOC 2012基准测试中实现了最先进的性能。

图1。(a)FickleNet允许单个网络从单个图像生成多个定位图。(b)隐藏单元选择的概念描述。选择所有隐藏单元(确定性,左侧)会产生平滑效果,因为背景和前景一起被激活。随机选择的隐藏单元(随机性,中间和右侧)可以提供更灵活的组合,可以更清晰地对应于对象的部分。

2.相关工作

        弱监督语义图像分割方法使用不完整的注释,例如涂鸦、边界框或图像级注释,来替换强像素级注释。最近引入的方法使用提供位置信息的注释(如涂鸦或边界框)取得了成功的结果。我们现在回顾一些最近介绍的使用图像级注释的弱监督方法。类激活图(CAM)是从图像级别注释开始像素分类的好起点。CAM 发现神经网络中每个隐藏单元对分类分数的贡献,从而可以识别出大量贡献的隐藏单元。然而,CAM 倾向于集中在目标对象的小区域上,这使得它不适合训练语义分割网络。最近引入的弱监督方法通过对图像(第2.1节)、特征(第2.2节)或通过扩展CAM发现的区域(第2.3节)来扩展CAM激活的区域。

2.1.图像级别处理

        图像级别的隐藏和擦除已被提出作为防止分类器专注于对象区域的歧视性部分的方法。HaS [27] 隐藏训练图像的随机区域,强制分类网络寻找对象的其他部分。然而,隐藏随机区域的过程并不考虑对象的语义和大小。AE-PSL [31]从对象开始一个小的区域,然后通过擦除已经发现的区域,驱动分类网络发现一系列新的和互补的对象区域。虽然它可以逐步扩展属于一个对象的区域,但它需要多个分类网络来执行重复的分类和擦除步骤。GAIN [19]有一个 CAM,它被训练成以一种混淆分类器的方式擦除区域。这个 CAM 必须足够大,足以覆盖整个对象。然而,分类器主要对高活化反应,如果一个对象的唯一歧视性部分被擦除,它可能会感到困惑。

2.2.特征级处理

        特征级别的处理可用于扩展 CAM 激活的区域。ACoL [35] 和 TPL [14] 使用分类器识别对象的歧视性部分,并基于特征擦除它们。然后训练第二个分类器,从已经擦除的特征中找到对象的互补部分。这是一种在相对较高的层面上运行的有效技术。然而,它与图像级别擦除具有类似的缺点,在这些方法中第二个分类器和训练步骤是必不可少的,这可能导致次优的性能。此外,其歧视性部分已被擦除的特征可能会困扰第二个分类器,导致其训练不正确。PG-CAM [18] 从几个密集连接图层收集特征,然后合并结果定位图。

        MDC [33] 在一个通用分类网络中使用多个卷积块,每个块以不同的速率进行扩张,并汇总从每个块获得的 CAM,类似于集成学习的过程。不同扩张率产生的不同大小的感受野可以捕捉到不同的模式,但是 MDC 需要针对每个扩张率进行单独的训练过程,而且其限制为整数扩张率(例如1、3、6、9),意味着只有有限数量的集成可能性。此外,标准扩张卷积产生的感受野是固定大小的正方形,因此 MDC 倾向于识别出假阳性区域。

2.3.区域生长

        区域生长可以用于扩展由 CAM 生成的定位图,该 CAM 最初仅识别对象的小部分区域。AffinityNet [1] 在初始 CAM 的监督下学习像素级语义亲和力,识别属于同一对象的像素,然后通过从语义亲和度计算的转移矩阵的随机游走扩展初始 CAM。然而,学习语义亲和力需要一个额外的网络,结果严重依赖于 CAM 的质量。SEC [16]使用一种新的损失函数来扩展定位图,并使用条件随机场(CRF)[17]将其限制在物体边界范围内。DSRG [12]在其分割网络的训练期间优化初始定位图,因此 DSRG 不需要额外的网络来生长区域。区域生长的种子是从 CAM 中获取的,如果这些种子仅来自于物体的判别性部分,则很难将区域生长到非判别性部分。因此,我们利用具有 FickleNet 生成的定位图的分割网络。

图2. (a) FickleNet的朴素实现方式,需要在每个滑动窗口位置(红色和绿色方框)调用一次dropout和卷积函数。(b) 使用映射扩展的实现方式:现在用步长s一次执行卷积。输入特征映射被扩展,以便连续的滑动核(红色和绿色框)不重叠。

3.提出的方法

 

3.1.随机隐藏单元选择

3.1.1.特征图扩展

3.1.2.中心保留空间丢弃

3.1.3.分类

3.2.推理定位图

3.2.1.梯度加权类激活映射

3.2.2.汇聚定位图

3.3.训练分割网络

4.实验

4.1.实验设置

4.2.与当前方法的对比

4.3.消融研究

5.概括

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

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

相关文章

环境搭建-Ubuntu20.04.6系统TensorFlow BenchMark的GPU测试

1. 下载Ubuntu20.04.6镜像 登录阿里云官方镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 2. 测试环境 Server OS:Ubuntu 20.04.6 LTS Kernel: Linux 5.4.0-155-generic x86-64 Docker Version:24.0.5, build ced0996 docker-com…

MSP432自主开发笔记5:IIC通信移植与驱动AT24Cxx存储芯片

今日学习移植MSP432的IIC总线协议,并用此驱动AT24C02芯片实现写入以及读取的功能,然后实现打印开机复位次数的效果。 文章贴出测试工程,测试截图,测试代码~ 其实是实在看不懂MSP432有关于FLASH存储操作相关的英文手册与例程&…

怎么学习Java并发编程相关技术? - 易智编译EaseEditing

学习Java并发编程可以通过多种方式进行,包括但不限于以下几种: 在线教程和学习平台: 网上有许多免费和付费的Java并发编程教程和学习平台,如Coursera、Udemy、edX、Codecademy等。这些平台提供结构化的课程和练习,适…

Goby 漏洞发布|Metabase JDBC 远程代码执行漏洞(CVE-2023-38646)

漏洞名称:Metabase JDBC 远程代码执行漏洞(CVE-2023-38646) English Name:Metabase JDBC Remote Code Execution Vulnerability (CVE-2023-38646) CVSS core: 9.8 影响资产数:66604 漏洞描述: Metabas…

初识计算机系统

计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化,但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,它们又执行着相似的功能。 一、信息就是位上下文 我们通…

Python基础入门教程(上)

目录 一、你好Python 1.1、Python安装 win版 Linux版 1.2、第一个Python程序 二、Python基本语法 2.1、字面量 2.2、注释 2.3、变量 2.4、数据类型 type()函数 字符串类型的不同定义方式 2.5、数据类型转换 ​编辑 2.6、标识符 2.7、运算符 2.8、字符串扩展 …

教育机构视频播放时观看行为分析有哪些应用?

教育机构视频播放时观看行为分析有哪些应用? 观看行为分析 观看行为分析是指我们平台基于视频大数据分析,能够以秒为粒度展示观众如何观看您的视频。 视频观看热力图是单次观看行为的图形化表示,我们平台云点播视频的每一次播放&#xff0…

脚手架 --- command框架<一>

版本&#xff1a;6.0.0 假设脚手架名称&#xff1a;big-cat-cli 实例化 const commander require(commander) const program new commander.Command()program 基本信息配置 program.name(Object.keys(pkg.bin)[0]) // 赋值name, 显示在useage 前部分.usage(<command>…

产品开发八大模块交流︱奇瑞新能源汽车产品开发院院长荣升格

奇瑞新能源汽车股份有限公司研发中心/产品开发院院长荣升格先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;产品开发八大模块交流。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; VUCA时代…

树和二叉树 --- 数据结构

目录 1.树的概念及结构 1.1树的概念 1.2树的表示 1.3树在实际生活中的运用 2.二叉树的概念及结构 2.1概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的存储结构 1.树的概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n (n>0)个有限结点组成…

路由策略(重发布)

要求&#xff1a; 1、使用双点双向重发布 2、所有路由器进行最佳选路 3、存在备份路径&#xff0c;不得出现环路&#xff0c;和路由回馈 1.更改设备名称配置接口IP地址 R1 <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEt…

Elasticsearch 整合springboot-Elasticsearch文章二

文章目录 官网版本组件版本说明实现代码地址pom.xmlapplication.ymlRepositoryVisitLog模型定义controller使用测试http请求结果kibana结果ID外传 官网 https://www.elastic.co/cn/ 版本 https://docs.spring.io/spring-data/elasticsearch/docs/4.4.10/reference/html/ 我们…

[SSM]GoF之代理模式

目录 十四、GoF之代理模式 14.1对代理模式的理解 14.2静态代理 14.3动态代理 14.3.1JDK动态代理 14.3.2CGLIB动态代理 十四、GoF之代理模式 14.1对代理模式的理解 场景&#xff1a;拍电影的时候&#xff0c;替身演员去代理演员完成表演。这就是一个代理模式。 演员为什…

爬虫005_python类型转换_其他类型转换为整型_转换为Float类型_转换为字符串_转换为布尔值---python工作笔记023

首先来看,字符串转换成int 很简单 float转换成int 会把小数点后面的内容丢掉 boolean转换为int true是1 false 是0 然后字符串转换为int,要注意 不能有特殊字符比如1.23 中有点 就报错 上面字符串12ab,有ab也报错 看上面

向量与流迭代器(istream_iterator和ostream_iterator)

运行代码&#xff1a; //向量与流迭代器 #include"std_lib_facilities.h"struct Item {string name;int iid;double value;friend istream& operator>>(istream& is, Item& ii);friend ostream& operator<<(ostream& os, const Ite…

F5 LTM 知识点和实验 4-持久化

第四章:持久化 持久化: 大多数应用都是有状态的,比如,使用一个购物网站,最重要的是用户在放入一个商品之后,刷新网页要能继续看到购物车里的东西,这就需要请求报文发到同一个后端服务器上,持久化就能完成这个功能。 持久化支持一下几种场景: 源地址目标地址SSLSIPH…

【go-zero】浅析 01

“github.com/google/uuid” uuid.New().String() go-zero 文档 https://www.w3cschool.cn/gozero/ go-zero 官网 https://go-zero.dev/ 快速开始&#xff1a; $ mkdir go-zero-demo $ cd go-zero-demo $ go mod init go-zero-demo $ goctl api new greet $ go mod tidy Done…

揭开神秘的面纱--自己实现MyBatis 底层机制[下]

&#x1f600;前言 本篇博文是MyBatis 底层机制的核心实现&#xff0c;简单的手法让MyBatis 不再神秘&#xff0c;希望能够帮助到你&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的…

JAVA-字符串生成图片

直接上代码 public static void main(String[] args) throws IOException {createFontImage("红色", new Font("宋体", Font.BOLD, 50), 400, 400);}/*** 根据str,font的样式将文字变成图片,然后返回一个流** param str 字符串* param font 字体* pa…

奇富科技引领编制国内首个金融行业大模型标准

7月28日&#xff0c;由中国信息通信研究院&#xff08;以下简称中国信通院&#xff09;组织的“行业大模型高质量发展论坛暨可信AI大模型标准宣贯会”在江苏南京召开。会议发起了行业大模型标准联合推进计划&#xff0c;启动了多个行业的大模型标准编制工作&#xff0c;其中&am…