BMS 显着性检测:布尔映射方法

摘要

提出了一种基于布尔映射的显着性模型。 图像的特征在于一组二进制图像,这些二进制图像是通过随机阈值图像的颜色通道而生成的。 BMS根据图形地面隔离的格式塔原理,通过分析布尔图的拓扑结构来计算显着图。
BMS易于实施且运行高效。 尽管具有简单性,但与五个眼动追踪数据集上的十种领先方法相比,BMS始终能够实现最先进的性能。 此外,还显示出BMS在显着目标检测中是有利的

1. Introduction

在本文中,我们关注自下而上的显着性检测问题。 主要目标是计算一个凸显图,该凸显图在地形上表示视觉注意力的显着性水平。 计算这样的显着性图最近引起了大量的研究兴趣(综述参见[4]),并且已被证明在许多应用中是有益的,例如。 图像分割[12],对象识别[32]和视觉跟踪[28]。
许多先前的工作已经利用局部图像补丁的对比度和稀有度属性来进行显着性检测[19,6,3]。 但是,这些属性对建模一些已知与视觉注意力有关的全局感知现象的能力有限。
一种这样的全球感知机制是基于图的分割。 正如格式塔心理学研究表明的那样,人物比背景要素更容易受到关注[31,29],并且人物与背景之间的关联会在没有关注的情况下发生[22]。 神经科学的发现还表明,参与形状感知的猴子和人脑中的某些反应严重依赖于图形背景分配[2,26], 表明该过程可能在视觉系统的早期开始。
在这里插入图片描述图1:(a)来自MIT数据集[20]的图像(左)及其眼睛跟踪数据(右)。 (b)由AIM [6],LG [3]和我们的方法(从左到右)估计的显着性图。 AIM和LG根据图像补丁的稀有性来衡量其显着性。 我们基于全局结构信息的方法对背景元素拥有较小的相应。

(a)鸟类自然被视为前景而其余被视为背景。 眼睛的注视集中在鸟身上,与这个背景图很好地对应。 但是,由于没有意识到这种全局结构,基于稀有度的模型[6,3]错误地将高显着性值分配给了背景中树木和天空之间的边缘区域,因为该图像中的高对比度区域很少(图 1(b))。
在这项工作中,我们提出了一个新颖的基于布尔图的显着性模型(BMS),该模型利用了已知有助于感知地物隔离的全局拓扑线索。 正如格式塔心理学研究表明的那样,几个因素可能会影响人物与地面的隔离,例如 大小,包围度,凸度和对称性[30]。 在本文中,我们探索了用于显着性检测的周围环境提示。 包围的本质是人物与地面之间的围护拓扑关系,这种关系定义明确并且对于各种变换都是不变的。 为了测量周围环境,BMS通过一组布尔映射来表征图像。 在BMS中,通过二值图像处理技术可以有效地计算注意力图,以激活给定布尔图上具有封闭外部轮廓的区域。 然后,根据给定的随机采样布尔映射集,将显着性建模为预期的关注水平。 预期注意图,即 平均注意力图是全分辨率的初步显着图,可以针对特定任务(例如注视预测或显着物体检测)进行进一步处理[5]。 图2显示了用于眼睛注视预测和显着物体检测的BMS两种显着性图。在这里插入图片描述
图2:(a)是来自ImgSal眼动追踪数据集的样本图像[27]; (b)是groundtruth真眼注视热图; (c)和(d)分别是BMS生成的用于视力预测和显着物体检测的显着性图。
我们针对五个基准眼动追踪数据集上的十个最新显着性模型评估了BMS。 比较的模型包括一些非常新的模型,这些模型在本文测试的某些数据集中显示出领先地位。 尽管BMS非常简单,但它是唯一在所有五个基准数据集上始终达到最新性能的方法我们还通过定性和定量结果表明BMS的输出可用于显着物体检测

2.Related work

大多数以前的显着性模型都使用中心环绕滤波器或图像统计信息来识别复杂(局部复杂性/对比度)或外观很少(稀有性/不可能性)的显着补丁。 在[19]中使用中心环绕差来检测多尺度特征图上的显眼区域,然后对所得的显眼图进行归一化和融合。 概率的负对数,即香农的自我信息,在[6]和[39]中用于衡量局部补丁作为自下而上显着性线索的可能性。 此外,[18]通过“贝叶斯惊奇”来确定局部区域的可能性,该概念旨在量化数据如何改变观察者的先验信念。 最近,[10]使用了一个分层加白的特征空间,其中矢量范数的平方用作显着性度量,以测量像素特征矢量偏离数据中心的距离。 除了显着性的对比和稀有性先验,[25]还使用了局部对称性。
与基于对比度,稀有性和对称性等属性的模型不同,另一个显着性模型家族基于光谱域分析[15、14、33、27]。 然而,[27]表明,一些以前基于频谱分析的方法在某种意义上等效于局部梯度算子加上自然图像上的高斯模糊,因此无法很好地检测到较大的显着区域。 为了克服这个限制,[27]提出了一种基于频谱尺度空间分析的方法。
一些模型使用机器学习来学习显着性。
Kienzel等。 [21]学习基于眼睛跟踪数据的图像补丁的内核支持向量机(SVM)。 Judd等。 [20]使用低,中,高级功能的组合来训练SVM,并且显着性分类是以逐像素方式进行的。
与以前的方法不同,建议的BMS不依赖中心环绕滤波,特征统计分析,频谱变换,离线学习或多尺度处理。 取而代之的是,它利用了规模结构不变的拓扑结构信息,并且已知这些信息对视觉注意力有很大的影响[3​​7,8]。 前面提到的大多数模型都没有反映这一方面。
仅进行了几次尝试来利用场景的拓扑结构进行显着性检测。 在[13]中,基于低级特征图和中间结果构造了马尔可夫链图,其平衡分布被用作激活和归一化的输出。 在[36]中,局部补丁的显着性是在图形模型上通过其到图像边界的最短距离来测量的。 图形模型的边缘权重是根据局部不相似性进行计算的,并专门针对对象分割的需求进行了调整。
与[13,36]相比,BMS通过布尔映射以更明确,更简单的方式利用拓扑线索。
[16]的显着区域检测方法还采用了特征通道阈值化步骤。 然而,仅对每个特征通道应用一次阈值处理以确定的方式提取感兴趣区域,并且后续处理严重依赖于原始图像。 相反,BMS完全基于随机阈值布尔映射集计算显着性。

3. Boolean Map based Saliency3.基于布尔映射的显着性

为了推导自下而上的显着性模型,我们借鉴了布尔图的视觉注意力[17]理论中提出的布尔图概念,其中观察者对场景的瞬时意识可以用布尔图表示。 我们假设BMS中的布尔图是从随机选择的特征通道生成的,布尔图B对视觉注意的影响可以由注意力图A(B)表示,该图突出显示B上吸引视觉注意的区域。
然后,根据均值注意力图A对随机生成的布尔图进行显着性建模:
在这里插入图片描述
I是输入图像。 可以进一步对A- 进行后处理,以形成针对某些特定任务的最终显着性图S。
在这里插入图片描述
BMS的流水线如图3所示。给定图像I,一组布尔映射B = {B1,B2,…。 。 。 ,Bn}生成。 基于图形地面隔离的格式塔原理,为每个布尔图Bi计算一个关注图Ai。 然后,通过将所得注意图进行线性组合来获得平均注意图A。 最后,对平均注意力图进行一些后处理以输出显着性图S。每个步骤将在以下部分中描述。

3.1. Generation of Boolean Maps

BMS根据特征通道上的先验分布和阈值,通过随机阈值输入图像的特征图来生成一组布尔图
在这里插入图片描述
如果在输入图上像素值大于θ,则函数THRESH(。,θ)将1分配给像素,否则将0分配给像素。 φ(I)表示I的特征图,其值假定在0到255之间。pφ和pθ分别表示φ和θ的先验分布。 特征通道可以包含颜色,方向,深度,运动等多个特征。在这项工作中,我们将在一个实现中演示仅对静止图像使用颜色的实现。
假设φ(I)是I的颜色通道,并且不失一般性,则阈值θ是从[0,255]上的均匀分布得出的,因为任何θ分布具有累积分布F(θ)的影响 ,等效于在每个颜色通道上应用映射函数255·F-1(。)。 因此,对于给定的图像,生成的布尔映射的分布仅由颜色空间的选择和用于颜色通道选择的先验分布来确定。
布尔图的生成方式应使更多的显着区域更有可能与周围的背景分离。 给定阈值θ的均匀分布,BMS的理想色彩空间应该是其距离度量反映色彩之间的视觉差异的空间。 因此,我们选择以感知均匀性闻名的CIE Lab颜色空间。
为了保持一致,将Lab空间中每个通道的范围转换并缩放为[0,255]。
我们假设实验室空间的三个通道在视觉感知中起着同等重要的作用。 为了生成图像的布尔映射,我们简单地枚举三个通道,并以固定的步长δ采样从0到255的阈值θ。 每个布尔映射的反向副本也包括在输出中,以便考虑反向区域选择。 然后将具有内核ωo的打开操作应用于每个布尔图,以去除噪声。

热门文章

暂无图片
编程学习 ·

搭建一个完整的微服务系统(四):微服务的公共依赖

任何一个系统中,都有一个或多个基础项目,可生成jar包给所有服务依赖。在本示例(工程basejar)中,我给大家找了一些常用的进行说明,这些内容和业务无关,大家可以直接使用。 幂等相关这部分包括:AutoIdempotent.java、AutoIdempotentInterceptor.java、TokenService.java三个…
暂无图片
编程学习 ·

Python使用Request库实现PC端学小易(适用app版本1.0.6)

Python使用Request库实现PC端学小易app(适用app版本1.0.6)前言抓包登录操作抓包搜题操作抓包数据分析登录搜题重点代码实现导入库tkinter实现简易图形界面部分request库实现登录部分搜题部分整理输出至tkinter部分完整代码重点 前言 一直以来学小易只有安卓段与IOS端的app,在…
暂无图片
编程学习 ·

SSM整合小案例

SSM整合 数据库部分(Oracle)创建表 CREATE TABLE product( id varchar2(32) default SYS_GUID() PRIMARY KEY, productNum VARCHAR2(50) NOT NULL, productName VARCHAR2(50), cityName VARCHAR2(50), DepartureTime timestamp, productPrice Number, productDesc VARCHAR2(500…
暂无图片
编程学习 ·

获取电脑ip地址的代码工具类

获取ip地址的工具类 import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springfram…
暂无图片
编程学习 ·

都说Python容易自学,那如何系统的学习Python

做Python开发十年,给大家详细分析一下这个问题 首先告诉你的是,零基础学习开始系统学习Python肯定难,Python的专业程度本身就不简单,学习这事本来就是一件非常煎熬的事情,人都不愿意学习,可是没办法,为了生存掌握一个技能,你必须学,如果你认真的对待,你就找不到高薪水…
暂无图片
编程学习 ·

异步FIFO学习

这里写自定义目录标题一、概述二、异步FIFO的设计基础2.1 FIFO指针2.2 格雷码的使用2.2.1 二进制码存在的问题2.2.2 格雷码计数器2.3 空满条件的判断三、异步FIFO设计实现3.1 fifo13.2 fifomem3.3 sync_r2w3.4 sync_w2r3.5 rptr_empty3.6 wptr_full 一、概述 在大规模ASIC或FPG…
暂无图片
编程学习 ·

Obliv-C使用详解

前期说明 Obliv-C是一款GCC包装器,其作者在C语言的基础上对其进行了一定的类C处理,添加了一些规则限制,用于模拟实现混淆电路 Obliv-C不需要手动混淆,只需要调用其中的函数便可实现混淆电路,其不涉及真实硬件电路仿真,即无法导出函数对应的基本元电路(也可能是博主没有成…
暂无图片
编程学习 ·

咸鱼软件应用—VMware下安装ubantu

咸鱼软件应用—VMware下安装ubantuubantu简介开源下载地址在VMware虚拟机安装ubantu系统 为了测试固件需要安装Linux系统,后面有测试说明。现在先把ubantu系统装上再说~ubantu简介 ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x86、64位和ppc架…
暂无图片
编程学习 ·

Java 基础 A类集合存的数据B类调用

1.新建一个Callback抽象类public interface Callback {Map<String, Object> a() ; }2. b继承Callbackpublic class b implements Callback{@Overridepublic Map<String, Object> a() {Map<String,Object> map=new HashMap<>();map.put("china&q…
暂无图片
编程学习 ·

理论:深度介绍OSPF路由协议

目录前言1 OSPF路由协议概述1.1 内部网关协议和外部网关协议1.2 OSPF协议1.3 链路状态协议工作原理简介1.4 OSPF的工作过程2 OSPF的基本概念2.1 OSPF区域2.2 区域ID2.3 骨干区域Area 02.4 非骨干区域2.5 Router ID2.6 Router ID选取规则2.7 DR和BDR3 Router-id及DR选举原则4 OS…
暂无图片
编程学习 ·

Java语言基础之封装&构造方法&静态的使用

面向对象思想概述 概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对象,强调具备功能的对象。 思想特点:面向对象思维方式是一种更符合人们思考习惯的思想 面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多…
暂无图片
编程学习 ·

Codeforces 1342 E Placing Rooks —— 第二类斯特林数

This way 题意: 现在有一个n*n的棋盘,n个棋子,你要放置这些棋子使得他们满足以下条件: 每个格子都能被某个棋子打到 共有k对棋子能够打到对方 如果一个格子所处的这一行或这一列有一个棋子,那么这个格子就能被打到。两个棋子处在同一行或同一列并且它们之间没有别的棋子,…
暂无图片
编程学习 ·

MRTK开发资料整理

1. 认识MRTK 2. 创建第一个MRTK项目—学习MRTK SDK的导入和打包发布 3.1 创建用户界面并配置MRTK—学习更改默认配置(clone default profiles) 3.2 MRTK内置编辑器手势操作 4. 使用Solvers创建动态内容—使创建的物体始终位于视野中心或随手的位置而改变Solvers are componen…
暂无图片
编程学习 ·

字符串专题之 leetcode 537. 复数乘法

题目: 给定两个表示复数的字符串。 返回表示它们乘积的字符串。注意,根据定义 i2 = -1 。 示例 1: 输入: “1+1i”, “1+1i” 输出: “0+2i” 解释: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i ,你需要将它转换为 0+2i 的形式。 示例 2: 输入: “11i”, “11i” 输出: “02i”…
暂无图片
编程学习 ·

Go 结构体使用注意事项和细节

结构体使用注意事项和细节结构体的所有字段在内存中是连续的//结构体 type Point struct {x inty int }//结构体 type Rect struct {leftUp, rightDown Point }func main() {r1 := Rect{Point{1,2}, Point{3,4}}//r1有四个int, 在内存中是连续分布//打印地址fmt.Printf("…
暂无图片
编程学习 ·

ssm实现用户管理系统

ssm实现用户管理系统(2) @RequestMapping("/add.do") public String add(User user){userService.add(user);return "redirect:findAll.do"; } @RequestMapping("/toUpdate.do") public ModelAndView toUpdate(int id){User user=userService.…
暂无图片
编程学习 ·

Java 实现获取当前时间的前一个月

public class afterTime {public static void main(String[] args) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("当前时间"+df.format(new Date()));//1代表为一个月 正的往前 负的为后Date date = step…
暂无图片
编程学习 ·

ConcurrentHashMap 在 Java7 和 8 有何不同?

ConcurrentHashMap 在 Java7 和 8 有何不同? 文章目录ConcurrentHashMap 在 Java7 和 8 有何不同?前言1.Java 72.Java 83.重要的方法回顾3.1 Node 数组3.2 put 方法3.3 get 方法4.对比Java7 和Java8 的异同和优缺点4.1 数据结构不同4.2 并发度4.3 保证并发安全的原理4.4 遇到…
暂无图片
编程学习 ·

抽象类和接口复习

1.抽象类1.1抽象类定义在面向对象中,所有的对象都是由类进行描绘实现的,但是并不是所有的类都是用来描绘对象的,当一个类中没有包含足够的信息描绘一个具体的对象。我们把这种类定义为一个抽象类。1.2抽象类的特征(1)不能用来实例化对象,通过被继承来使用。(2)一个类只…