【论文阅读】Weakly Supervised Semantic Segmentation using Out-of-Distribution Data

news2024/10/7 20:31:49

一篇弱监督分割领域的论文,发表在CVPR2022上:

论文标题:

Weakly Supervised Semantic Segmentation using Out-of-Distribution Data

作者信息:

在这里插入图片描述

代码地址:

https://github.com/naver-ai/w-ood

Abstract

作者认为在WSSS任务中,会出现前景任务和背景任务的一些虚假的相关性,比如车轨和火车。作者利用分类器可能做出错误判断的方法,标注一些分布外(Out-of-Distribution)的数据。用这些数据提供的cue,来减弱分割中的错误关联性。该消耗了较小的标注成本,效果较好。

Introduction

(现有的方法及其缺点)
1.常规的two-stage 分割方法,先生成CAM,再正常训练分割。缺点是仅基于图像级标签,伪标签存在前景和背景线索之间的混淆。需要额外的信息来学习来充分区分前景和背景线索。
2.一些方法引入了显著性检测任务,它自然地以不需要知道类别方式提供了图像中突出的前景对象。但是显著性检测任务对不显著的前景对象并不是很有效。
3.一些方法如超像素、纹理、光流等方法,但是它们往往会生成不准确的对象边界,这种低级信息没有考虑与类相关联的语义,效果也不好。
在这里插入图片描述
(作者的方法)
选择并获取OoD数据,基于度量学习(metric-learning)提出了W-OoD方法(大致的原理是通过训练网络,扩大分布内数据和OoD数据的特征距离)

3. Method

3.1. Collecting the Hard OoD Data

在这里插入图片描述

Where to get the candidate OoDs:
(作者举了构建数据集的四个步骤)
(1)define the list C of foregroundclasses of interest
(2)acquire unlabelled images from various sources
(3)determine for each image whether it contains one of the foreground classes
(4)tag each image with the foreground category labels
作者认为满足步骤(2)但是不满足步骤(3)的图片可以用于candidate OoDs。
(其实就是就是说图像里面没有前景类别的,可以作为OoD数据的候选)
Hard OoD samples via ranking and pruning:
(作者进一步介绍了获得Hard OoD的方法(见图2))
OoD data可能包含太多无关的杂碎信息,作者讲输入到分类器中,按照分类器的输出的预测值 p p p 进行下列操作(混淆分类器的能力):
(1)删除明显不对劲的 p < 0.5 p<0.5 p<0.5
(2)对所有的图片按照 p p p进行排序
Manual pruning of positive samples
这些数据中可能包含有前景信息(positive)的图片没有去除,需要人工的的进行手动去除。
设图片中包含positive的图片的比例是 r r r,需要 n n n个Hard OoD图片,则需要人工检查 n / ( 1 − r ) n/(1-r) n/(1r)张图片。
Surrogate source of OoD data
(OoD的数据来源问题)
从理论上讲,最好通过复制Pascal数据集构建过程来获得硬OoD集,以便在Pascal上分析和基准测试作者的方法。但这个显然是不行的,无法找到和Pascal数据集相同分布的图像。
作者使用的是OpenImages数据集,使用提供的类别标签从OpenImages数据集中过滤出20个Pascal类,以模拟Pascal数据集。

3.2. Learning with Hard OoD Dataset

(利用Hard OoD Dataset的方法)
比较简略的方式是把这些标签均匀分布到原本的数据集中, 或者直接标记伪“背景”类插入到数据集中,显然这样效果不好(忽略了样本的多样性)。
作者的目标是训练一个分类器 F F F,来使常规数据的特征 z i n z_{in} zin和OoD数据 z O o D z_{OoD} zOoD的距离尽可能的远。采用聚类的方法。
Z i n Z_{in} Zin Z O o D Z_{OoD} ZOoD分别表示常规数据的特征和OoD数据经过分类器的特征的集合。
对于常规数据 Z i n Z_{in} Zin,构建一类簇 P i n P^{in} Pin,其中包含 c c c个类别,每个类别代表其前景对象的种类。
对于OoD数据作者并没有使用对应的方法,而是使用K-means聚类成 k k k个类别,构建了 P O o D P^{OoD} POoD
这样就有两大类簇,分别是: P i n = { P c i n } c = 1 C P^{in}=\{P_c^{in}\}_{c=1}^C Pin={Pcin}c=1C P O o D = { P k O o D } k = 1 K P^{OoD}=\{P_k^{OoD}\}_{k=1}^K POoD={PkOoD}k=1K
聚类中心由图像决定,计算方法是:
在这里插入图片描述
类到聚类中心的计算方法:
在这里插入图片描述
对于作者提出的方法,希望簇 P i n P^{in} Pin到中心的距离越小越好,希望 P O o D P^{OoD} POoD到中心的距离越远越好,即设计损失函数:
在这里插入图片描述
作者也将类别损失函数加进入了,对于常规的数据,用正常的类别标签计算损失,对于OoD则标签是全0,cls损失的计算方法:
在这里插入图片描述
总的损失函数:
在这里插入图片描述

3.3. Training Segmentation Networks

上述过程仅仅训练了一个分类器 F F F,对于后面的产生伪mask的操作,作者采用的是IRNet的方法。

Experiments

(简单看下实验结果)
在这里插入图片描述

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

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

相关文章

专精特新小巨人的申报条件

专精特新企业分为市级专精特新、省级专精特新和国家级专精特新。 在2018年&#xff0c;开展了国家第一批专精特新“小巨人” 企业申报工作。为了引导中小企业积极走“专精特新”发展之路&#xff0c;加快新旧动能转 换步伐&#xff0c;提升自主创新能力、加快转型升级&#xf…

软考的网络工程师对就业有用吗?

考证只是一个结果&#xff0c;学会技能才是最重要的。 视工作而言&#xff0c;软考中级网络工程师的性价比还是非常高的&#xff0c;对于从事同类的技术人员&#xff0c;基础扎实一般可以裸考通过。 含金量嘛&#xff0c;计算机专业可以以考代凭&#xff0c;毕竟证书是人社部和…

安装谷歌服务框架2022最新版本22.45.15失败

在这里(谷歌play服务框架下载安装安卓版-谷歌服务框架2022最新版本(Google Play 服务)下载22.45.15官方手机版-蜻蜓手游网 (qt6.com)http://www.qt6.com/XiaZai/155507.html)下载了谷歌服务框架(Google Play 服务)&#xff0c;其应用信息为&#xff1a; 包名&#xff1a;com.g…

Mutated 源代码解析 client (一)

Mutated , a C project https://github.com/scslab/mutated usage Main function in the client directory, mutated_synthetic.cc Line 14 parse the user arguments, such as “-h, -w, -c” parse_synthetic is implemented in client\opts_synthetic.cc Here, use th…

Dive into TensorFlow系列(3)- 揭开Tensor的神秘面纱

TensorFlow计算图是由op和tensor组成&#xff0c;那么tensor一般都用来代表什么呢&#xff1f;显然&#xff0c;像模型的输入数据、网络权重、输入数据经op处理后的输出结果都需要用张量或特殊张量进行表达。既然tensor在TensorFlow体系架构中如此重要&#xff0c;因此本文将带…

Redis通用命令和key的层级结构

目录 1 Redis数据结构介绍 2 Redis 通用命令 3 Redis命令-Key的层级结构 1 Redis数据结构介绍 Redis是一个key-value的数据库&#xff0c;key一般是String类型&#xff0c;不过value的类型多种多样&#xff1a; value的数据类型共有8种&#xff0c;前面5中为基本数据类型&a…

5000立方米球罐设计

目 录 摘 要 I Abstract II 1 文献综述 1 1.1 课题研究的工程背景及理论、实际意义 1 1.2 球罐用钢 1 1.2.1 球罐用钢基本要求分析 1 1.2.2 国内外球罐的常用钢种 2 1.2.3 几种典型球罐用钢的优劣对比 2 1.3 球罐设计 3 1.3.1 球罐设计的执行标准及法规 3 1.3.2 球壳结构 4 1.3…

通过PLC网关如何实现三菱FX3U的远程上下载程序?

FX3U是三菱推出的高性能PLC品牌。基本性能大幅提升&#xff0c;晶体管输出型的基本单元内置了3轴独立最高100kHz的定位功能&#xff0c;并且增加了新的定位指令&#xff0c;从而使得定位控制功能更加强大&#xff0c;使用更为方便&#xff0c;受到企业的青睐。因此&#xff0c;…

PyQt5 QLabel标签

PyQt5 QLabel标签标签显示标签快捷键功能标签显示 QLabel背景色设置&#xff1a; palette QPalette() # 创建调色板 palette.setColor(QPalette.Window, Qt.green) # 设置调色板属性 label.setPalette(palette) # 标签设置Palette label.setAutoFillBackground(True) # 设为T…

【安全测试学习】数据库基础

以上来自学习极客时间《Web 安全攻防实战》课程内容&#xff0c;汇总整理思维导图。

记录多次安装mysql失败问题

首先说明一下&#xff0c;本人电脑已经安装过mysql&#xff0c;不过想从5.7版本升级到8.0 首先是卸载电脑上的mysql5.7版本&#xff0c;卸载过程如下&#xff1a; 进入控制面板&#xff0c;直接卸载所有mysql相关进入安装目录下删除mysql相关文件夹&#xff0c;通常在C:\Prog…

”互联网行业还在等金三银四或是金九银十?“,我劝你还是早做打算

对于今年的IT行业来说&#xff0c;可能真的根本没有所谓的“金三银四”或是“金九银十”。各大招聘网站或者软件上不管是大厂还是中小公司看似挂个招聘需求&#xff0c;但实际上这些公司并不非常缺人也不急着招人&#xff1b;我想今年程序员听的最多的一个词就是”互联网寒冬“…

二十九、Java 数据结构

Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类&#xff1a; 枚举&#xff08;Enumeration&#xff09;位集合&#xff08;BitSet&#xff09;向量&#xff08;Vector&#xff09;栈&#xff08;Stack&#xff09;字典&#xff…

谈谈制定数据治理战略路线图的方法

对于商业世界最具前瞻性思维能力的发展来说,如数据分析、机器学习和人工智能,高质量的数据是一个关键的成功因素。因此,当涉及到数字化转型时,数据发挥着至关重要的作用。 然而,如果没有适当的数据治理,组织最终可能会构建腐败的模型,做出低效的决策,甚至违反法律。商…

C++11 thread

目录 线程thread 主要成员函数 简单线程的创建 线程封装 zero_thread.h zero_thread.cpp main.cpp C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 线程thread std::thread 在 #include 头文件中声明&#xff0c;因此使用 std::thread 时需要包含…

Android Surface 是如何跨进程传递的?

Android Surface 跨进程传递原理&#xff1f;SurfaceActivity 的 Surface 是怎么跨进程传递的问题Surface public class Surface implements Parcelable {// ....long mNativeObject;private final Canvas mCanvas new CompatibleCanvas();// .... }首先&#xff0c;Surface …

思科模拟器的远程连接交换机的实现

这里写目录标题思科模拟器的远程连接交换机的实现方式一 :反转线1.使用蓝色的线2.在pc0 上面找到超级终端 这时候就可以看到一些终端数 就说明连接进去了方式二:交换机配置终端 进行终端tennet连接1.设置命令终端的进入密码2.配置终端的连接密码3.给交换机添加ip3.方式3: web连…

Spring Boot

Spring Boot (https://baike.baidu.com/item/Spring%20Boot?fromModulelemma_search-box) 是由 Pivotal 团队提供的全新框架&#xff0c;其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。 人们把 Spring Boot 称为搭建程序的脚手架。其最主要作用就是帮我们快速的…

IPWorks Delphi版自定义服务器解决方案

IPWorks Delphi版自定义服务器解决方案 IPWorks是一个用于Internet开发的综合框架&#xff0c;它消除了Internet开发的复杂性&#xff0c;提供了可编程的、支持SSL的组件&#xff0c;以便于执行诸如确保安全、发送电子邮件、传输文件、管理网络、浏览Web、使用Web服务等任务。 …

pybind11使用总结(依赖python3.7版本)

先安装python3.7的源码&#xff1b;test_py.py调用test_cpp中导出函数add()及python三方库&#xff1a; import os import pandas as pd import numpy as np import libtest as coredef test(a):print(pd.__version__)print(np.__version__)print(core.add(1,2))test_cpp.cpp导…