图像显著性目标检测

news2024/11/13 18:58:51

一、概述
 1、定义

 图像显著性检测(Saliency Detection,SD),  指通过智能算法模拟人的视觉系统特点,预测人类的视觉凝视点和眼动,提取图像中的显著区域(即人类感兴趣的区域),可以广泛用于目标识别、图像编辑以及图像检索等领域,是计算机视觉领域关键的图像分析技术。
示例如图所示,左图为原图,右图为经过显著性检测算法的结果图

2、方法分类

显著性目标检测主要可以分为两个阶段,分别是传统尺度空间手工特征的注意预测算法和基于深度学习的注意预测算法。
第一阶段为等传统尺度空间手工特征的注意预测算法。第二个阶段,随着计算机神经网络技术的革新和发展,基于深度学习的注意预测算法大量出现。
传统注意预测算法,指的是基于强度、颜色和方向等传统特征的算法,由于其特征提取和学习方法都以图像本身空间特征为基础,缺乏多语义等深度特征,相较于人眼仍然具有较大差距,很难检测到人眼注视信息包含的大量高级语义信息,在预测效果的提高上有局限。此外,不同人的注意力机制存在一定差异,在大部分传统模型中未加入先验信息,处理相对困难。
深度学习注意预测算法是近年来发展较为迅速的方法。由于深度学习算法需要大量的训练数据,同时神经网络的设计上针对不同任务需要不断变更,算法较复杂。另外,深度学习模型一般存在可解释性差的共性缺点。

# 二、算法模型

## 1、ITTI视觉显著性模型
TTI视觉显著性模型是根据早期灵长类动物的视觉神经系统设计的一种视觉注意模型[1]。该模型首先利用高斯采样方法构建图像的颜色、亮度和方向的高斯金字塔,然后利用高斯金字塔计算图像的亮度特征图、颜色特征图和方向特征图,最后结合不同尺度的特征图即可获得亮度、颜色和方向显著图,相加得到最终的视觉显著图,如下图所示(引用自原文)。该方法不需要训练学习的过程,仅通过纯数学方法,便可完成显著图的计算。
![在这里插入图片描述](https://img-blog.csdnimg.cn/3d4aa20cb67e4ffc9f2364ac1867fc54.png)
## 高斯金字塔的构建
高斯金字塔包括三部分,分别是亮度、颜色和方向。

首先要对r、g、b三个通道做高斯降采样,从而获得九个尺度下的三通道图像、、,其中。

然后即可构建亮度高斯金字塔,在九个尺度下计算获得,这里需要根据再对、、做归一化处理,以便将色调与亮度分离,原因在于低亮度下色调难以分辨。而每一个像素点的归一化仅对亮度的点进行,而其余的点将置零,其中表示点所处的尺度的图像中最大的亮度值。

接着即可构建颜色高斯金字塔,在九个尺度下计算
![请添加图片描述](https://img-blog.csdnimg.cn/8e0e6da3aaf84cdcafabd73d2a8e8a34.jpeg)

以上四个分别代表红、绿、蓝、黄的颜色高斯金字塔。

最后利用Gabor滤波器构建Gabor方向金字塔,其中,角度分别为0 、45、90、135 。

上述获得亮度、颜色和方向高斯金字塔后,利用Center-Surround方法(Center(c)即精细尺度,Surround(s)即粗尺度)计算对应的特征图。计算方法为:![请添加图片描述](https://img-blog.csdnimg.cn/2986b337d8734df8acb8fe5b8e54f7e4.jpeg)
其中c 为2 3 4,而s=c+3或s=c+3。再通过减法操作调整图片到同一大小,I表示亮度特征图,RG和BY表示颜色特征图,这是利用了大脑皮质的“颜色双对立”系统,O表示方向特征图。所以总共生成的特征图有6+12+6x4=42张特征图。

## 显著图的构建
模型在缺少自顶而下的监督机制的条件下,提出一个特征图归一化操作运算符![请添加图片描述](https://img-blog.csdnimg.cn/59d20cf9ea0e412bac2ab4451e87dee2.gif)
,该操作过程基于大脑皮质侧向抑制机智,可以增强存在少量活动峰(即尖锐值)的特征图,抑制存在大量活动峰的特征图。其操作方法如下:

(1)首先对输入的特征图归一化至统一范围[0...M];

(2)找到该特征图的全局最大值M所在位置并计算其他所有局部最大值的均值m,然后把整个特征图同乘以(M-m)^2;

如下图所示,中间列上图便是存在大量活动峰的特征图,经过![请添加图片描述](https://img-blog.csdnimg.cn/29bddedac5ca41208d996d3418eb8daa.gif)操作后得到的特征图整体较为平滑,活动峰被抑制,中间列下图是存在少量活动峰的特征图,经过操作后得到的特征图在原有的活动峰处得到了增强。

![在这里插入图片描述](https://img-blog.csdnimg.cn/a9898d62def34afe9ec28b4b5bf24114.png#pic_center)
通过以上操作符结合获得的42张特征图,即可计算最后的视觉显著图,计算方法如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/fc97c2be1b2a4d11b4ec4562f7097b3a.jpeg#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad99f51818644ab085cbc7809b64eba4.jpeg#pic_center)
一般在目标检测中,根据设定的阈值检测显著性目标,设定的阈值逐渐下降,得到的显著性目标就会逐渐增多,同时检测时间也会增加,论文实验如图所示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/ccfc6249072f42bbb17cdc04d80d7950.png#pic_center)

## LC算法
LC算法的基本思想是:计算某个像素在整个图像上的全局对比度,即该像素与图像中其他所有像素在颜色上的距离之和作为该像素的显著值 [3]  。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d9700cc1896445a392fd4fad7a0894a1.jpeg#pic_center)
HC算法
HC算法和LC算法没有本质的区别,HC算法相比于LC算法考虑了彩色信息,而不是像LC那样只用像素的灰度信息,由于彩色图像最多有256*256*256种颜色,因此直接采用基于直方图技术的方案不适用于彩色图片。但是实际上一幅彩色图像并不会用到那么多种颜色,因此提出了降低颜色数量的方案,将RGB各分量分别映射成12等份,则隐射后的图最多只有12*12*12种颜色,这样就可以构造一个较小的直方图用来加速,但是由于过渡量化会对结果带来一定的影响,因此又用了一个平滑的过程。 最后和LC不同的是,对图像处理在Lab空间进行的,而由于Lab空间和RGB并不是完全对应的,其量化过程还是在RGB空间完成的 [

AC
![在这里插入图片描述](https://img-blog.csdnimg.cn/1d70952780fb43448d9997240f40a000.jpeg#pic_center)
FT

![在这里插入图片描述](https://img-blog.csdnimg.cn/fa131be057a1465d9a1ffd16924a8f6e.jpeg#pic_center)

# 参考
https://blog.csdn.net/weixin_42647783/article/details/82532179
https://baike.baidu.com/item/%E8%A7%86%E8%A7%89%E6%98%BE%E8%91%97%E6%80%A7%E6%A3%80%E6%B5%8B/22761214

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

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

相关文章

从0到1一步一步玩转openEuler--19 openEuler 管理服务-特性说明

文章目录19 管理服务-特性说明19.1 更快的启动速度19.2 提供按需启动能力19.3 采用cgroup特性跟踪和管理进程的生命周期19.4 启动挂载点和自动挂载的管理19.5 实现事务性依赖关系管理19.6 与SysV初始化脚本兼容19.7 能够对系统进行快照和恢复19 管理服务-特性说明 19.1 更快的…

结合实例,直观理解正态分布、卡方分布、t分布、F分布和对应的Z检验、卡方检验、t检验、F检验

1 正态分布与Z检验 1.1 理论 Z检验的目的是为了验证:已知一个总体服从均值,方差的正态分布,现在有一些样本,这些样本所代表的总体的均值是否为。 则构建一个统计量Z, (1) 式中,为…

2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了

2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了!展会时间:2023年3月30日-4月1日展馆地址:山东国际会展中心(济南市槐荫区日照路1号)展馆:4号馆、5号馆BIO CHINA生物发酵展&#xf…

Python|每日一练|栈|递归|散列表|数组|回溯|单选记录:重排链表|编写Python程序实现素数处理的功能| 全排列

1、重排链表(栈,递归) 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → … 不能只是单纯的改变节点内…

vue中debug调试node_modules的代码

适用于想调试webpack-dev-server(第三方模块)里的代码,在代码里打印console.log无效的情况。 我用的idea,配置如下: 一、idea配置vue项目启动 1、 主入口js配置:node_modules\vue\cli-service\bin\vue-c…

wine学习笔记

目前 wine 版本为较为稳定的 8.0 版本,本文也是重点围绕 wine 8.0 安装、使用以及 wine 工具介绍等方面进行了学习和整理。 一、安装 wine 1. 如果你使用的是 64 位系统,需要先开启 32 bit 架构支持: $ sudo dpkg --add-architecture i386…

【Kubernetes】第四篇 - k8s 集群环境搭建

一,前言 前两篇,购买了 3 台阿里云服务器并完成了 ci-server 构建服务器的环境安装与配置; 三台服务器规划如下: 服务配置内网IP外网IP说明ci-server2c4g172.17.178.104182.92.4.158Jenkins Nexus Dockerk8s-master2c4g172.1…

Visual Studio 高级调试-Dump分析

Dumpdump指转储,一般用来创建进程快照。它可以在不停止应用的情况下,直接将模块列表、线程列表、堆栈信息、异常信息、句柄信息等所有内存信息保存下来,帮助开发者分析生产环境问题等。这篇博客主要介绍dotnet-dump的使用以及如何在Visual St…

SpringBoot2.x实战专题——SpringBoot2 多配置文件【开发环境、测试环境、生产环境】(内含教学视频+源代码)

SpringBoot2.x实战专题——SpringBoot2 多配置文件【开发环境、测试环境、生产环境】(内含教学视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87463492 目录SpringBoot2.x实战专题——SpringBoot2 多配置文件【开发…

【MySQL】Java连接MySQL数据库(封装版只需会MySQL)

一、准备普通项目如果创建的是普通的Java项目,我们需要去maven仓库下载jdbc驱动包然导入项目中就能使用,具体步骤详见MySQL数据库之Java中如何使用数据库【JDBC编程】maven项目如果创建的项目是maven项目,我们只需在pom.xml文件里引入一组依赖…

适合初学者的超详细实用调试技巧(上)

我们日常写代码的时候,常常会遇到bug的情况,这个时候像我这样的初学者就会像无头苍蝇一样这里改改那里删删,为了根除这种情况,我最近系统学习了调试的技巧,我想要十分详细地讲解,所以大概不会一篇文章写完。…

Django入门与构建

文章目录Django入门与构建Django介绍conda切换环境(看需要)安装虚拟环境基于 virtualenv基于venvDjango项目构建Django项目安装:创建应用Django运行测试总结Django入门与构建 官网:https://www.djangoproject.com/ 博客:https://www.liujian…

Spring的IOC,注入问题,包括自动注入的条件和前提

1. 前言 Spring的核心技术IOC(Intorol of Converse控制反转)的实现途径是DI(dependency Insert依赖注入)。而依赖注入(DI)的实现方式又有两种,xml方式和注解方式。如下图所示: 什么是属性注入 属性注入就是在实例化对象时,同时向对象中的…

小米12s ultra,索尼xperia1 iv,数码相机 拍照对比

首先说明所有的测试结果和拍摄数据我放到百度网盘了(地址在结尾) 为什么做这个测试 我一直想知道现在的手机和相机差距有多大,到底差在哪儿? 先说结论: 1.1英寸的手机cmos(2022年) 6年前(2016)的入门款相机(m43画幅) 2.手机 不能换镜头,只能在特定的拍摄距离才能发挥出全…

网络安全-域名相关收集

网络安全-域名相关收集 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 五,学习网络安全知识请勿适用于违法行为 学习网络安全知识请勿适用于…

【C#基础】C# 常用语句讲解

序号系列文章3【C#基础】C# 数据类型总结4【C#基础】C# 变量和常量的使用5【C#基础】C# 运算符总结文章目录前言语句概念1,迭代语句1.1 for 语句1.2 foreach 语句1.3 while 语句1.4 do 语句2,选择语句2.1,if 语句2.2,else 语句2.3…

Android 基础知识4-2.9 FrameLayout(帧布局)详解

一、FrameLayout(帧布局)概述 FrameLayout又称作帧布局,它相比于LinearLayout和RelativeLayout要简单很多,因为它的应用场景也少了很多。这种布局没有方便的定位方式,所有的控件都会默认摆放在布局的左上角。 示例1代…

算法队列与栈—Java版

队列、双向队列、栈 — ArrayDeque 使用双向队列ArrayDeque可以完成以上三种数据结构。队列的操作包括:入队、出队、返回队首元素、返回队尾元素、删除队首元素、删除队尾元素、判断空、返回队列长度。双向队列包括:首尾入队、首尾出队、返回首尾元素、…

【挣值分析】

名称解释 拼写解释PV计划费用,预估预算EV挣值,实际预估预算AC实际费用,实际花费CV成本偏差 (EV - AC)SV进度偏差(EV - PV)CPI成本绩效指数 (EV / AC)SPI进度绩效指数 &a…

【Kubernetes】【十】Pod详解 Pod介绍与配置

第五章 Pod详解 本章节将详细介绍Pod资源的各种配置(yaml)和原理。 Pod介绍 Pod结构 每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少 Pause容器,这是每个…