当前位置: 首页 > news >正文

Adversarial Learning forSemi-Supervised Semantic Segmentation

首先来了解一下对抗学习:

对抗样本:将真实的样本添加扰动而合成的新样本,是由深度神经网络的输入的数据和人工精心设计好的噪声合成得到的,但它不会被人类视觉系统识别错误。然而在对抗数据面前,深度神经网络却是脆弱的,可以轻易迷惑深度神经网络。

对抗训练:想要在模型训练中提升模型的对抗防御能力,识别一些对抗样本

Abstract

本文提出了一种基于对抗网络的半监督语义分割方法,设计了一个全卷积判别器来判断预测值和GT,而且可以通过将对抗损失和交叉熵损失相结合来提高准确率,判别器分析无标签图像的初步预测,识别出其中比较确定或较为可靠的部分,并将这些区域作为监督信号,进一步指导模型进行学习。现有的一些方法可能采用弱标签(如图像级标签或者不完全标注的信息)来进行训练,而这篇方法则不同,它使用无标签图像,通过判别器识别可信区域来帮助模型训练,进一步提升了无标签数据的使用效率。

Introduction

在语义分割方面,有很多方法和数据集已经被提出,但因为物体/场景外观变化、遮挡和缺乏上下文理解,这项任务仍然具有挑战性,基于CNN的全卷积网络在语义分割上表现了良好的效果,许多方法的提出也是基于FCN的。

不同于 图像分类和目标检测,语义分割需要逐像素的标注,所以成本比较高,因此提出了半监督或弱监督来降低成本。

在本论文中,将语义分割网络视为GAN框架中的生成器,并提出一个FCN的判别器。不同于传统的GAN生成器(用于生成图片),语义分割网络的“输出”是输入图像的每个像素的类别概率图(即概率地图),而不是生成图像。因此,语义分割网络的任务是输出每个像素对应的类别概率,表示该像素属于某个语义类别的可能性。通过对抗训练的方式,FCN的判别器强制要求分割网络的输出尽可能接近真实的标签地图。

在本文中结合两个半监督损失,首先,利用判别器生成的置信度给出可信区域,可以作为有效的训练信号,通过信任图作为监督信号来引导交叉熵损失(交叉熵损失一般用于监督学习),信任图可以作为掩码,使得模型只在可信区域内进行训练。在未标记数据上使用对抗损失,可以指导生成器生成逼近GT的mask。

Related Work

基于CNN的最新方法

  • 近年来,卷积神经网络(CNN)的进步使得语义分割方法得到了显著提升。例如,一些经典的分类网络(如AlexNet、VGG、ResNet等)可以通过改造为全卷积网络(FCN)来执行语义分割任务。这种改造过程的核心思想是,将分类网络中的全连接层替换为卷积层,使得网络能够输出与输入图像尺寸相同的像素级预测。
  • 这种方法虽然有效,但需要大量像素级标注的真实数据,这在实际应用中是非常困难和昂贵的。

弱监督方法的不同实现

  • 多实例学习(Multiple Instance Learning, MIL):在[36]和[35]的研究中,使用了多实例学习的方法,利用图像级标签生成潜在的分割标签图。MIL是一种弱监督学习方法,它可以利用图像级标签来推断图像中不同区域(或"实例")的类别,从而生成伪标签进行训练。

  • 图像级标签惩罚:Papandreou等人[33]通过图像级标签来惩罚网络对不存在的类别进行预测。这种方法的核心思想是,如果图像级标签没有标明某个类别,网络就不应该在预测中出现该类别,从而强制模型学习到更加精准的分割边界。

  • 对象定位优化:Qi等人[37]通过对象定位来精细化分割结果,即通过识别物体的大致位置来优化网络的分割精度,从而减少对精确像素级标注的需求。

  • 分类网络作为特征提取器:Hong等人[15]使用有标签的图像训练一个分类网络作为特征提取器,用来进行解卷积操作(即上采样)。这样,分割网络能够利用分类网络提取到的特征进行更精确的分割。

还有利用边界框、点标注、Web视频数据进行训练的。半监督学习通过结合全标注数据和弱标注数据,提升了模型在语义分割任务中的表现。具体来说,半监督学习方法不仅利用图像级标签等弱监督信号来训练网络,还结合了少量的完全标注数据(如像素级标签),从而在保证性能的同时,降低了标注成本。

Algorithm Overview

该模块包含两个模块:分割网络和判别器网络

分割网络用于生成类别概率分布图,可以是任何语义分割的框架,比如FCN、Deeplab等,给定一个输入图像H*W*3,输出一个H*W*C的类别概率分布图。

判别器网络:是一个基于FCN的网络,用于评估分割网络的输出(类别概率图)与真实标签(ground truth label maps)之间的差异。

输入:是类别概率分图(来自分割网络或者真实标签)

输出:输出是 H × W × 1 的空间概率图,表示每个像素是否来自真实标签图p=1,否则来自分割网络的输出p=0.

训练过程:对于有标注的数据,分割网络在训练时会受到两个损失函数(交叉熵损失和对抗损失)的监督;对于无标签数据,我们采用半监督训练的方式,首先,Unlabeled image会进入到分割网络生成一个类别概图,然后将这个类别概率图输入进入判别器网络中,生成一个置信度图,用置信度高的区域指导训练,相当于一个伪标签的作用。判别器训练判别器网络仅使用带标签的数据进行训练,它的任务是区分分割网络输出的类别概率图和真实标签之间的差异。

Semi-Supervised Training with Adversarial Network

Network Architecture

Segmentation network.DeepLab-v2框架with ResNet-101model pre-trained on the ImageNet dataset and MSCOCO。去掉最后一个分类层,并将最后两个卷积的stride从2改为1,从而使输出特征映射的分辨率有效地为输入图像大小的1/8。为了扩大感受野,我们在conv4和conv5层分别应用扩展卷积,stride分别为2和4。在最后一层使用了ASPP方法,最后,应用一个上采样层和softmax输出来匹配输入图像的大小。

Discriminator network.它由5个卷积层组成,其中4×4内核和{64,128,256,512,1}通道,步幅为2。 每个卷积层后面都有一个Leaky-ReLU[30]参数化为0.2,最后一层除外。为了将模型转换为全卷积网络,在最后一层添加上采样层,以将输出重新缩放为输入映射的大小。没有使用任何批处理归一化层,因为它只有在批处理大小足够大时才表现良好。

Loss Function

Discriminator network. 区别真实标签和分割网络的预测标签

第一项是针对来自分割网络的标签yn=0,我们希望它越趋近于0越好,因为想要判别器更能区分生成的标签和真实标签

第二项是针对真实标签yn=1,我们希望它越趋近于1越好,因为这是表示判别器认为该输入来自真实标签。

Yn真实的标注数据,经过 one-hot 编码处理后得到的概率图,因此判别器可以很容易地区分标签是来自真实标签,还是来自分割网络生成的标签,比如:

Yn​=[0,1,0,0,0]

S(Xn​)=[0.1,0.7,0.1,0.05,0.05]

解决办法:

  • 全卷积结构:在判别器中采用 全卷积网络(Fully Convolutional Network),这样判别器的输入不仅仅是一个全局的标签(像是一个标量值),而是包含了空间信息的 置信度图。这种设计使得判别器要根据 空间局部信息 来判断每个像素点的真实性,而不仅仅依赖于标签的全局结构。
  • 扩散方案(Scale scheme):为了增加判别器的难度,论文还尝试了一种扩散方案,将真实标签的 one-hot 编码进行 轻微扩散,让标签在不同的类别通道之间稍微分布,避免判别器依赖于 one-hot 编码的明确结构

Segmentation network.

过最小化多任务损失函数来训练分割网络:

交叉熵损失:使分割网络的预测趋近于真实值

对抗损失:使判别器判断不出来是预测值,最大化判别器的输出,欺骗判别器

Training with unlabeled data.

不使用交叉熵损失,因为没有GT,但是还是使用对抗损失,因为对抗损失仅依赖于判别器。

Self-taught Learning:使用训练好的判别器来处理分割网络的预测结果,得到一个置信度图D(S(Xn​)),表示判别器对于每个像素预测是否可信。通过设置一个阈值 Tsemi​,将置信度图二值化,得到可信区域(即置信度高于阈值的区域)。

半监督损失:

在实验中:阈值 Tsemi通常被设置在 0.1 到 0.3 之间、

Experiment

如果分割网络不试图欺骗鉴别器,由鉴别器生成的置信度图将是无意义的,提供较弱的监督信号。

相关文章:

Adversarial Learning forSemi-Supervised Semantic Segmentation

首先来了解一下对抗学习: 对抗样本:将真实的样本添加扰动而合成的新样本,是由深度神经网络的输入的数据和人工精心设计好的噪声合成得到的,但它不会被人类视觉系统识别错误。然而在对抗数据面前,深度神经网络却是脆弱…...

UCOS-II 自学笔记

摘抄于大学期间记录在QQ空间的一篇自学笔记,当前清理空间,本来想直接删除掉的,但是感觉有些舍不得,因此先搬移过来。 一、UC/OS_II体系结构 二、UC/OS_II中的任务 1、任务的基本概念 在UCOS-II中,通常把一个大型任…...

C++ - 二叉搜索树讲解

二叉搜索树概念和定义 二叉搜索树是一个二叉树,其中每个节点的值都满足以下条件: 节点的左子树只包含小于当前节点值的节点。节点的右子树只包含大于当前节点值的节点。左右子树也必须是二叉搜索树。 二叉树搜索树性质 从上面的二叉搜索树定义中可以了…...

基于开源云原生数据仓库 ByConity 体验多种数据分析场景

基于开源云原生数据仓库 ByConity 体验多种数据分析场景 业务背景什么是 ByConity上手实测环境要求测试操作远程登录 ECS 服务器windows10 自带连接工具 执行查询 ByConity 相对于 ELT 能力的优化提升并行度任务级重试并行写入简化数据链路 业务背景 大家都知道,在…...

RabbitMQ 消息确认机制

RabbitMQ 消息确认机制 本文总结了RabbitMQ消息发送过程中的一些代码片段,详细分析了回调函数和发布确认机制的实现,以提高消息传递的可靠性。 返回回调机制的代码分析 主要用途 这个代码主要用于设置RabbitMQ消息发送过程中的回调函数,即…...

Node.js:开发和生产之间的区别

Node.js 中的开发和生产没有区别,即,你无需应用任何特定设置即可使 Node.js 在生产配置中工作。但是,npm 注册表中的一些库会识别使用 NODE_ENV 变量并将其默认为 development 设置。始终在设置了 NODE_ENVproduction 的情况下运行 Node.js。…...

【QT】背景,安装和介绍

TOC 目录 背景 GUI技术 QT的安装 使用流程 QT程序介绍 main.cpp​编辑 Wiget.h Widget.cpp form file .pro文件 临时文件 C作为一门比较古老的语言,在人们的认知里始终是以底层,复杂和高性能著称,所以在很多高性能需求的场景之下…...

从0到1搭建webpack

好,上一篇文章我们说了一下在react中怎么弄这个webpack,那么现在在说一下不用react我们又该怎么配置,这些呢也都是我自己通弄过看视频自己总结的,拿来给大家分享一下。 前期准备条件 1、nvm(可以快速切换node版本&am…...

针对解决conda环境BUG的个人笔记

1-conda学习&安装 安装视频: 零基础教程:基于Anaconda和PyCharm配置Pytorch环境_哔哩哔哩_bilibili 安装过程: MX250笔记本安装Pytorch、CUDA和cuDNN-CSDN博客 Win10MX250CUDA10.1cuDNNPytorch1.4安装测试全过程(吐血)_nvidia geforc…...

读《Effective Java》笔记 - 条目13

条目13:谨慎重写clone方法 浅拷贝和深拷贝 浅拷贝(Shallow Copy) 浅拷贝 只复制对象本身,而不复制对象引用的成员。 对于引用类型的字段,浅拷贝会将原对象的引用复制到新对象中,而不会创建新对象实例。因…...

SQL 之连接查询

SQL 连接查询:深入理解 JOIN 操作 在数据库管理中,连接查询(JOIN)是一种基本而强大的操作,它允许我们从两个或多个表中检索数据。SQL 中的 JOIN 操作使得数据整合变得简单,这对于数据分析和报告至关重要。…...

vscode切换anaconda虚拟环境解释器不成功

问题: 切换解释器之后运行代码还是使用的原来的解释器 可以看到,我已经切换了“nlp”解释器,我的nltk包只在“nlp”环境下安装了,但是运行代码依然是"torch"解释器,所以找不到“nltk”包。 在网上找了各种…...

一个实用的 Maven localRepository 工具

目录 1 现状2 当前解决3 更好的解决3.1 下载 Maven localRepository 工具包3.2 上传本地 localRepository 包3.3 清理 localRepository 中指定后缀的文件 1 现状 在使用 Maven 时,我们可能会经常与本地仓库和私服仓库打交道。 例如对于本地仓库,因为某…...

目标检测,图像分割,超分辨率重建

目标检测和图像分割 目标检测和图像分割是计算机视觉中的两个不同任务,它们的输出形式也有所不同。下面我将分别介绍这两个任务的输出。图像分割又可以分为:语义分割、实例分割、全景分割。 语义分割(Semantic Segmentation)&…...

微信小程序 城市点击后跳转 并首页显示被点击城市

在微信小程序中,渲染出城市列表后,如何点击城市,就跳转回到首页,并在首页显示所点击的城市呢? 目录 一、定义点击城市的事件 二、首页的处理 首页:点击成都市会跳转到城市列表 城市列表:点击…...

Linux - nfs服务器

五、nfs服务器 1、基础 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统 中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。 由于NFS支持的功能比较多,而不同的功能都会使用不同的程…...

uniapp图片上传预览uni.chooseImage、uni.previewImage

文章目录 1.上传图片2.预览图片 1.上传图片 uni.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照。 App端如需要更丰富的相机拍照API(如直接调用前置摄像头),参考plus.camera 微信小程序从基础库 2.21.0 开始, wx.choos…...

C++ 字符串中数字识别

【问题描述】 输入一个字符串,含有数字和非数字字符,如“sumabc234;while(abc700)tab{ass346;bssabc267;}”,将其中连续的数字作为一个整数,依次存放到一个数组nums中。例如,234放在nums[0],700放在nums[1…...

学术中常见理论归纳总结-不定期更新

1.信息传播类 1.1 扩散创新理论 创新扩散理论是传播效果研究的经典理论之一,是由美国学者埃弗雷特罗杰斯(E.M.Rogers)于20世纪60年代提出的一个关于通过媒介劝服人们接受新观念、新事物、新产品的理论,侧重大众传播对社会和文化的影响。 1927-1941年进行的“艾奥瓦杂交玉…...

ModelSim怎么修改字体及大小

点击TOOLS 选择PERFERENCES选择下一级菜单的TEXTFONT/CHOOSE/选择字体和大小最后不要忘记点apply再退出...

图片预处理技术介绍4——降噪

图片预处理 大家好,我是阿赵。   这一篇将两种基础的降噪算法。   之前介绍过均值模糊和高斯模糊。如果从降噪的角度来说,模糊算法也算是降噪的一类,所以之前介绍的两种模糊可以称呼为均值降噪和高斯降噪。不过模糊算法对原来的图像特征的…...

Scrapy管道设置和数据保存

1.1 介绍部分: 文字提到常用的Web框架有Django和Flask,接下来将学习一个全球范围内流行的爬虫框架Scrapy。 1.2 内容部分: Scrapy的概念、作用和工作流程 Scrapy的入门使用 Scrapy构造并发送请求 Scrapy模拟登陆 Scrapy管道的使用 Scrapy中…...

D84【python 接口自动化学习】- pytest基础用法

day84 pytest常用断言类型 学习日期&#xff1a;20241130 学习目标&#xff1a;pytest基础用法 -- pytest常用断言类型 学习笔记&#xff1a; 常用断言类型 代码实践 def test_assert():assert 11assert 1!2assert 1<2assert 2>1assert 1>1assert 1<1assert a…...

如何正确书写sh文件/sh任务?bash任务

正确书写xx.sh文件的方式为&#xff1a; source /usr/local/miniconda3/bin/activate condaEnv export CUDA_VISIBLE_DEVICES0 cd /hy-tmp/test export PYTHONPATH"xxx:$PYTHONPATH" python AAA.py python BBB.py python CCC.py 直接运行&#xff1a; bash xx.sh 即可…...

多线程篇-5--线程分类(线程类型,springboot中常见线程类型,异步任务线程)

常见的线程类型包括用户线程&#xff08;User Threads&#xff09;、守护线程&#xff08;Daemon Threads&#xff09;、主线程&#xff08;Main Thread&#xff09;、工作线程&#xff08;Worker Threads&#xff09;和线程池中的线程。 一、用户线程&#xff08;User Thread…...

docker快速部署gitlab

文章目录 场景部署步骤默认账号密码效果 场景 新增了一台机器, 在初始化本地开发环境&#xff0c;docker快速部署gitlab 部署步骤 编写dockerfile version: 3.7services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: gitlabenviron…...

C# 数据类型详解:掌握数据类型及操作为高效编码奠定基础

本文将带你深入了解C#中各种数据类型的特点、用途和最佳实践&#xff0c;让你不仅能熟练运用基本类型&#xff0c;还能掌握如何在实际项目中做出最合适的选择。 目录 C#基本语法 C#数据类型 C#类型转换 C#变量常量 C#基本语法 在学习C#之前我们要先知道C#的基础构建是由哪些…...

burp2

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

[ACTF2020 新生赛]BackupFile--详细解析

信息搜集 让我们寻找源文件&#xff0c;目录扫描&#xff1a; 找到了/index.php.bak文件&#xff0c;也就是index.php的备份文件。 后缀名是.bak的文件是备份文件&#xff0c;是文件格式的扩展名。 我们访问这个路径&#xff0c;就会直接下载该备份文件。 我们把.bak后缀删掉…...

循环神经网络(RNN)简述

RNN及其变体 1、概述 (一)、概念 RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出。 RNN的循环机制使模型隐层**上一时间步产生的结果, 能够作为当下时间步…...

泸州大浪科技做网站/品牌词优化

function [Ibw, thres] autoThreshold(I) % 迭代法自动阈值分割 % % 输入&#xff1a;I - 要进行自动阈值分割的灰度图像 % 输出&#xff1a;Ibw - 分割后的二值图像 % thres - 自动分割采用的阈值thres 0.5 * (double(min(I(:))) double(max(I(:)))); %初始阈值 done …...

做网站麻烦不/苏州优化排名seo

SIP5.0以后服务的请求量爆发性增长&#xff0c;因此也暴露了原来没有暴露出来的问题。由于过去一般一个新版本发布周期在一个月左右&#xff0c;因此如果是小的内存泄露&#xff0c;在一个月之内重新发布以后也就看不出任何问题。 因此这阵子除了优化Memcache客户端和SIP框架逻…...

做拍卖网站多少钱/网站关键词seo优化公司

Linux--多线程之如何使用条件变量条件变量初始化方法&#xff1a;条件变量等待条件变量通知demo运行效果条件变量 条件变量的使用是为了让CPU节省资源&#xff0c;避免空转。条件达成线程才开始运行&#xff0c;不进行无用的等待。 注意&#xff1a;条件变量要配合互斥体进行操…...

网站制作方法/网站seo置顶

2014年9月19日&#xff0c;阿里巴巴成功上市&#xff0c;成为美国史上IPO数额最大的公司&#xff0c;一夜间成为世界第二大互联网公司&#xff0c;其市值首日即超过美国最大电商亚马逊加EBay之和。 阿里巴巴路演IPO时每股估值不过68美元&#xff0c;而首日收盘价达到每股93.89…...

南京汽车集团网站建设/杭州百度快照优化排名推广

OpenCV提供createTrackbar()函式&#xff0c;可以在視窗上產生滑桿&#xff0c;讓使用者自己調整輸入&#xff0c;接著用這輸入值執行預計的操作&#xff0c;另外有getTrackbarPos()和setTrackbarPos()函式&#xff0c;讓我們對滑桿進行進一步的操作。 OpenCV 產生滑桿 int c…...

做最好的网站/seo流量优化

# python操作mysqlmysql数据库可以应用于多种编程语言&#xff0c;包括 PHP&#xff0c;Java&#xff0c;Go&#xff0c;Python不同编程语言操作mysql&#xff0c;都是使用了mysql提供的API接口。如果直接操作mysql提供的API相对复杂一些&#xff0c;因为不同的编程语言都有不同…...