python视觉识别_视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT

本文详细介绍了图像显著性检测的最新研究现状,包括基于谱残差法、全局对比度和区域对比度的方法。重点讲解了Spectral Residual理论,以及如何通过Python实现显著性检测算法,如基于直方图对比度的HC方法、基于全局对比度的LC方法和FT方法。此外,还提到了基于深度学习的显著性检测趋势。
摘要由CSDN通过智能技术生成

文章目录

一、显著性检测研究现状

二、基于谱残差法的显著性检测

三、基于全局对比度图像显著性检测(LC)

2.1 基于直方图对比度的显著性检测(HC)

2.2 基于区域的对比度方法(region-based contrast 简称RC)

2.3 显著性检测 FT

2.4 显著性检测 AC

一、显著性检测研究现状

建立计算模型进行显著性检测。

思想是:对输入图像首先进行多个特征通道和多尺度分解,再进行滤波得到特征图,再对特征图融合得到最终显著图。

2007年,Hou X等人提出SR方法[2],该方法利用谱残差模型进行显著性检测,该方法认为图像的信息都包含在图像的幅度谱信息中,因此从图像的幅度谱中减去先验知识的幅度谱,剩下的就是显著部分的幅度谱,进而得到显著区域。

一些经典算法,如Itti,SR,FT,GBVS的代码和显著性检测的数据集整理

相位谱法。

将显著性检测定义为二元分割问题来处理

2007年,T.Liu等人提出一种将显著性检测作为图像分割问题来处理的思路[3],自此出现了大量的显著性检测模型,掀起了显著性检测的第二波热潮。

2009年,Achanta R等人提出FT模型来进行显著性检测[4],此模型可以输出具有明确定义的边界的全分辨率显著图,通过保留来自原始图像的更多频率内容来保留这些边界。此方法利用颜色和亮度特征的中央周边算子来得到显著图,实施简单,计算效率高

2011年,Cheng M M等人提出了一种基于区域对比度的显著对象提取算法[5]。该算法同时评估全局对比度差异和空间加权相干性得分来确定显著性区域,此算法是简单,高效,多尺度的,并且可以生成全分辨率,高质量的显著图。这些显著图被进一步用于初始化GrabCut的新颖迭代版本,以进行高质量的显著对象分割。

2012年,Perazzi F等人重新考虑了之前方法的一些设计选择,并提出了基于对比度的显著性检测的概念清晰且直观的算法[6]。此算法由四个基本步骤组成:(1)将给定的图像分解为紧凑且感知均匀的元素,以抽象不必要的细节;(2)基于这种抽象,计算两个对比度度量,评估这些元素的独特性和空间分布;(3)从元素对比度中推导出显著性度的度量,该度量生成一个像素精确的显著图,它统一覆盖感兴趣的对象并始终分离前景和背景;(4)文章表明,完整的对比度和显著性估计可以使用高维高斯滤波器统一制定,这有助于此方法的概念简单性,并使其具有线性复杂性的高效实施。

基于深度学习进行显著性检测

2015年,开始引入CNN进行显著性检测,与基于对比线索的大多数经典方法不同,基于CNN的方法消除了对手工特征的需求减轻了对中心偏见知识的依赖,因此被许多科研人员所采用。基于CNN的模型通常包含数十万个可调参数和具有可变接受字段大小的神经元。神经元具有较大的接受范围提供全局信息,可以帮助更好地识别图像中最显著的区域。CNN所能实现前所未有的性能使其逐渐成为显著性物体检测的主流方向。

2015年,He S等人提出了一种新的超像素卷积神经网络方法,称为SuperCNN,可以有效地学习显著性的内部表示[7]。与传统的卷积网络相比,SuperCNN有四个主要特性:首先,能够学习分层对比度特征;第二,恢复了超级像素之间的上下文信息;第三,受益于超像素机制,对密集标记的图像所需的预测数量大大减少;第四,通过利用多尺度网络结构检测显著性区域可以不受区域大小的约束。

2017年,Hou Q等人提出了一种新的显著性检测方法,在HED(Holistically-Nested EdgeDetection)的基础上,增加了一种高层信息指导低层信息的Skip Layer结构,从而构建了一种简单,有效,快速的端对端的显著性物体检测网络结构[8]。此方法注意到了边缘检测、语义分割和显著性检测几个领域的一些共性和最新的趋势:

从局部分析逐渐过渡到的全局分析,

HED中的Skip layer结构对高质量的输出很有帮助,

显式的让高层语义信息去指导和帮助低层语义信息更好的定位显著性物体位置的同时精确的确定其范围很有帮助。

总而言之:

显著性就是可以快速引起你注意的对象或者物体,在图像或者视频中显著性检测的结果往往是图像或者视频中对象,在神经学科中显著性检测被描述为注意力机制,目的是聚焦或者缩小看到的对象场景重要部分,显著性检测可以自动处理图像中对象表示。

生物皮层对图像对比度比较敏感,通过图像对比度可以实现图像显著性特征提取。

二、基于谱残差法的显著性检测

从信息理论角度:信息可分为冗余部分和变化部分。人们的视觉对变化部分更敏感。视觉系统的一个基本原则就是抑制对频繁出现的特征的响应,同时对非常规的特征保持敏感。那么就将图像分为如下两部分:

作者对图像的 log ⁡ \loglog 频谱发下了如下规律(log是自然对数): E { A ( f ) } ∝ 1 / f E\{ \mathcal{A}(f) \} \propto 1/fE{A(f)}∝1/f

大量图像的 log ⁡ \loglog 频谱的平均值是和频率呈现正比关系的。(左下图)

如图可知大量图像的log频谱和频率的曲线形状,在log-log scale上,几乎是一条直线。文中的log频谱就是对图像傅里叶变换后的振幅谱取自然对数。然后作者又提出了既然大量图像的log振幅谱都差不多趋近一条直线,那么一幅图像的log振幅谱减去平均log振幅谱不就是显著性部分了吗?这就是作者提出的:Spectral Residual理论。(右上图)

作者定义Spectral Residual:R ( f ) = L ( f ) − A ( f ) \mathcal{R}(f) = \mathcal{L} (f) - \mathcal{A}(f)R(f)=L(f)−A(f)

给定图像 I ( x ) \mathcal{I}(x)I(x) 首先计算其2维离散傅里叶变换,将其从空间域转换到频域,对幅值取对数后得到 log谱L ( f ) \mathcal{L}(f)L(f): 由于 log ⁡ \loglog 曲线满足局部线性条件,所以用局部平均滤波器 h n ( f ) h_n(f)hn(f)对其进行平滑,获得log ⁡ \loglog谱的大致形状。R ( f ) \mathcal{R}(f)R(f) 就是图像f的Spectral Residual。计算过程如下表示:

A ( f ) = ∣ F [ I ( x ) ] ∣ P ( f ) = φ ( F [ I ( x ) ] ) L ( f ) = log ⁡ ( A ( f ) ) R ( f ) = L ( f ) − h n ( f ) ∗ L ( f ) \begin{aligned} \mathcal{A}(f) &= | F[ \mathcal{I} (x) ]| \\ \mathcal{P}(f) &= \varphi(F[ \mathcal{I} (x) ]) \\ \mathcal{L}(f) &= \log(\mathcal{A}(f)) \\ \mathcal{R}(f) &= \mathcal{L}(f) - h_n(f)*\mathcal{L}(f) \\ \end{aligned}A(f)P(f)L(f)R(f)=∣F[I(x)]∣=φ(F[I(x)])=log(A(f))=L(f)−hn(f)∗L(f)

S ( f ) = g ( x ) ∗ { F − 1 [ exp ⁡ ( R ( f ) + i P ( f ) ) ] 2 } \mathcal{S}(f) = g(x) * \left \{ F^{-1}\left [ \exp(\mathcal{R}(f) + i \mathcal{P}(f) ) \right ] ^2 \right \}S(f)=g(x)∗{F−1[exp(R(f)+iP(f))]2}

参数说明:

F FF 代表2维离散傅里叶变换,|·|代表其幅值,φ φφ 代表其相位

I ( x ) \mathcal{I}(x)I(x)为输入图像,对其傅里叶变换,并且求出振幅谱为 A ( f ) \mathcal{A}(f)A(f)。

P (

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值