与分类器无关的显着图提取: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

相关文章

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三