与分类器无关的显着图提取:Classifier-agnostic saliency map extraction

本文主要是介绍与分类器无关的显着图提取:Classifier-agnostic saliency map extraction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的笔记

摘要

       当前用于提取显着性图的方法可识别输入的某些部分,这些部分对于特定的固定分类器而言最为重要。我们表明,这种对给定分类器的强烈依赖会阻碍其性能。为了解决这个问题,我们提出了与分类器无关的显着性图提取,该方法可以找到任何分类器都可以使用的图像的所有部分,而不仅仅是预先指定的部分。我们观察到,所提出的方法比以前的工作提取了更高质量的显着性图,同时在概念上简单且易于实现。该方法为ImageNet数据上的定位任务设置了最新的技术成果,尽管在推理时未使用地面真相标签,但其性能优于所有现有的弱监督定位技术。可以在以下位置获得再现结果的代码:https://github.com/kondiz/casme。

1. 介绍

       卷积神经网络中,给定分类器的特定类分数的梯度可用于提取图像的显着性图。但是,1)由于特定分类器仅使用可能用于分类的要素子集。2)依赖分类器的显着性图往往很嘈杂,覆盖了许多不相关的像素而丢失了许多相关的像素。作者提出与分类器无关的显着性图提取,我们将其公式化为一种实用算法,从而实现了目标。

2. 相关工作

       绝大多数基于神经网络的显着性提取器都与特定的分类器结合在一起 。最常见的方法还假设推理时掌握了标签的知识。这种方法具有一些优势,因为它允许生成基于类的显着性图。但是,如果没有给出真实标签,则必须首先使用分类模型对分类进行预测,这可能是错误的。

       与对抗本地网络相同点:同时训练分类器和显着性映射,这在测试时不需要对象的类。

       与对抗本地网络不同点:1)分类损失->熵损失,可获得更好的显着性图。2)结合了编码器和分类器的权重,训练过程更快,更好的性能。3)仅适用于原始像素。

3. 与分类器无关的显着性图提取

       在本文中,我们解决了提取输入图像的显着区域的问题,以及提取映射的问题。      ,该映射应使有用的像素为1,否则为0。

3.1 依赖分类器的显着性图提取

       依赖分类器的显著性图提取可以看成:  ,其中,S是对应于分类损失的得分函数,R是正则化术语,l是分类损失。

       此优化过程可以解释为找到映射m最大程度地混淆给定的分类器 f。使用分类器 f 获得的映射 m 可能与使用 f'找到的映射 m'不同,即使两个分类器在原始图像和掩模图像的分类损失方面都同样出色,此属性违反了我们对映射的定义m, 任何有助于分类的像素都应通过带有以下内容的掩模(显着图)来表示。

3.2  与分类器无关显着图提取

       为了解决显着性映射对单个分类器的依赖性问题,我们建议更改方程式中的目标函数。1)不仅要考虑单个固定分类器,还要考虑按其后验概率加权的所有可能分类器,。且(正相关)。解决此优化问题等同于搜索所有可能分类器的空间,然后查找映射m与他们所有人一起工作。当我们参数化F 作为卷积网络(参数表示为 θF),所有可能分类器的空间与其参数的空间是同构的。所提出的方法考虑了所有分类器,我们称其为与分类器无关的显着性图提取。即提取所有有用的像素点(因为每个分类器之运用了其中一部分像素点就能实现很好的分类,我们要找到每个分类器都用到的像素点集合)。

3.3 算法

步骤

      输入是:先初始化一个分类器f_0,映射m_0,给定数据集和循环次数K。

      输出是:映射m_k。

      过程:先将f_0加入到样本集F,再循环K次:1)通过更新分类器f的参数最小化分类损失,获得一个新的更优的分类器。2)将新获得的分类器加到样本集F。3)从样本集取样一个分类器f'。3)通过更新映射m的参数最大化分类损失得分函数,得到新的更优的映射。4)对样本集F进行某一操作,使得F中分类器更少且都是效果更优的。比如F每满一百删掉第一个。

     可见,分类器f的参数和映射m的参数是同时进行的。其中4):如果一个4*4的图片,只有中间的4个像素值有用则m的结果是:

上述过程可以用下图理解:

结果:

 

补充数学知识:

数学期望:

       某城市有10万个家庭,没有孩子的家庭有1000个,有一个孩子的家庭有9万个,有两个孩子的家庭有6000个,有3个孩子的家庭有3000个。
       则此城市中任一个家庭中孩子的数目是一个随机变量,记为X。它可取值0,1,2,3。
       其中,X取0的概率为0.01,取1的概率为0.9,取2的概率为0.06,取3的概率为0.03。
       则,它的数学期望,即此城市一个家庭平均有小孩1.11个,当然人不可能用1.11个来算,约等于2个。
 

后验概率:

       假设一个学校里有60%男生和40%女生。女生穿裤子的人数和穿裙子的人数相等,所有男生穿裤子。一个人在远处随机看到了一个穿裤子的学生。那么这个学生是女生的概率是多少?
       使用贝叶斯定理,事件A是看到女生,事件B是看到一个穿裤子的学生。我们所要计算的是P(A|B)。
       P(A)是忽略其它因素,看到女生的概率,在这里是40%
       P(A')是忽略其它因素,看到不是女生(即看到男生)的概率,在这里是60%
       P(B|A)是女生穿裤子的概率,在这里是50%
       P(B|A')是男生穿裤子的概率,在这里是100%
       P(B)是忽略其它因素,学生穿裤子的概率,P(B) = P(B|A)P(A) + P(B|A')P(A'),在这里是0.5×0.4 + 1×0.6 = 0.8.
       根据贝叶斯定理,我们计算出后验概率P(A|B)。

* :  元素相乘

@:逐元素乘法

 

 

 

 

 

 

 

 

 

这篇关于与分类器无关的显着图提取:Classifier-agnostic saliency map extraction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/593622

相关文章

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

理解分类器(linear)为什么可以做语义方向的指导?(解纠缠)

Attribute Manipulation(属性编辑)、disentanglement(解纠缠)常用的两种做法:线性探针和PCA_disentanglement和alignment-CSDN博客 在解纠缠的过程中,有一种非常简单的方法来引导G向某个方向进行生成,然后我们通过向不同的方向进行行走,那么就会得到这个属性上的图像。那么你利用多个方向进行生成,便得到了各种方向的图像,每个方向对应了很多

ROS - C++实现RosBag包回放/提取

文章目录 1. 回放原理2. 回放/提取 多个话题3. 回放/提取数据包,并实时发布 1. 回放原理 #include <ros/ros.h>#include <rosbag/bag.h>#include <std_msgs/String.h>int main(int argc, char** argv){// 初始化ROS节点ros::init(argc, argv,