Saliency Detection: A Spectral Residual Approach
Saliency Detection: A Spectral Residual Approach
概述The ability of human visual system to detect visual saliency is extraordinarily fast and reliable. However,computational modeling of this basic intelligent behavior still remains a challenge. This paper presents a simple method for the visual saliency detection.
核心贡献首先讨论人类的视觉系统是如何实现显著性检测的?现在一般认为视觉系统的处理过程分为两步:
在第一步的过程中,人们对眼前所出现的事物,总会有一些底层特征是突然冒出来的,比如方向、纹理、边缘、亮度等,论文中用“pop up”一词来表示这种行为,以目标检测的角度来看,在第一步过程中突然冒出来的东西被看做是目标的候选物体,即这些东西可能就是我们想检测的目标。相关文献给这种候选物体起了一个专业的名字,叫 为了找到这些 这篇文章提出了一个图像视觉显著性的简单计算模型,这个模型和Itti提出的模型是两个截然不同的模型. Itti模型对于图像视觉显著性主要关注整幅图片突出的部分,通过各种特征的融合提取显著性图,而这个模型一上来关注的点就不在一张图片里突出的地方,而是背景,观察是否大部分图片的背景在某个空间上都满足什么变化,最后剔除背景,自然就只剩下图片突出的部分了,这篇文章之所以简单,是因为它只需要5个公式就可以得到想要的结果,也没有很复杂的公式变换,都是图像处理基本的变换公式。 传统的模型通过将特定的特征(例如一些颜色特征、亮度特征、纹理特征等等)与目标联系起来,实际上将这个问题转化为检测特定类别的对象。由于这些模型是基于训练的,扩展性成为了通用任务的瓶颈。面对不可预测、种类繁多的视觉模式,需要一个通用的显著性检测系统。换句话说,在实现显著性设计时,应尽可能少地参考对象的统计知识。 如果要提出一个通用的显著性检测系统,那么根据以往的模型,就必须找到目标通用的特征,但是这基本上是不可能的事,每个目标都有自己与众不同的特性。既然这样,那么这里就把问题转化一下,目标通用特性提取不到,那就找一找背景的通用特性。
这就是文章创新的地方,敢于跳出已有理论的框架,从另外一个角度考虑问题,往往会有预料之外的收获。 高效编码是一种通用的框架,在此框架下,我们的视觉处理的许多机制可以相互关联。Barlow提出的有效编码假说要移除感知系统的冗余,视觉系统的基本原理是抑制对频繁出现的特征的反应,同时对偏离常规的特征保持敏感。因此,只能将未预料到的信号发送到后期处理。
从信息论的角度来看,有效编码假说将图像信息H(Image)分解为两部分:
现在人们普遍认为自然图像不是随机的,它们服从高度可预测的分布。
在自然图像统计的不变因子中,尺度不变性是最著名也是研究最广泛的性质。这个性质也被称为定律。?即大量自然图像在某个频率的幅度的平均值和该频率成反比:
进一步还有以下规律:当频率和平均幅频响应都在log-log坐标下时是近似线性的,同时当只有幅频响应取log坐标时,所有的图像的幅频响应曲线是类似的,下图反映了自然图像的log-log谱和log谱的区别。 可见,log-log曲线近似为一条直线,而log曲线基本符合 法则。尽管log-log谱在理论上已经成熟并得到了广泛的应用,但它在单个图像的分析中并不受欢迎,因为:
所以本文采用log谱表示图像. 我们发现不同图像的对数谱具有相似的趋势,尽管每个图像都包含统计奇点。 如图,分别超过1、10和100幅图像上平均的平均谱曲线。这一结果表明平均log谱具有局部线性。因此,采用局部平均滤波器近似)的形状是合理的。在我们的实验中,平均滤波器的核n大小等于3。改变n的大小只会稍微改变结果(见图5)。 平均频谱近似为对输入图像进行卷积:
当100张图片取平均时,发现那些尖峰的东西没有了,曲线变得平滑了起来。于是作者认为这个平滑的曲线和之前充满尖峰的曲线之间的关系可能和图像中不显著的和显著的东西的关系存在某种联系。 那么会不会是说平滑的曲线就是背景所贡献的,而那些小尖峰就是显著性的物体所贡献的?我认为可以这样认为——显著性的物体破坏了背景的平滑性,导致原本平滑的曲线上多了一些尖峰变得不再平滑。于是作者便着手去实验这种想法,大致的思路是用一个图片的幅频响应曲线减去平均的曲线,得到的差称为谱残差,再将谱残差通过傅里叶反变换变换回去,看看都对应原图中的哪些区域,这些区域是不是显著性的区域,?这样就可以验证这个想法对不对了。经过实验后发现还真是这么回事儿。 相似性意味着冗余。对于一个旨在减少视觉冗余信息的系统,它必须知道输入刺激的统计相似性。因此,在不同的log谱中,可以观察到相当多的形状相似性,值得我们注意的是平滑曲线中跳出来的信息(曲线满足局部线性条件)。我们认为谱中的统计奇异点可能是图像中异常区域出现 核心公式
显著性图是
阈值的选择是?a trade-off problem between false?alarm and neglect of objects。 评测标准定义了击中率和误警率.
该判据指出,最优显著性检测系统应在没有手标签者提示 和Itti的方法做了下比较: 由图可以看出本文方法在计算时间上比Itti方法更快,而且准确度也得到提升。 参考代码clear; clc; %% Read image from file inImg = im2double(rgb2gray(imread(‘Spectral_Residual.png‘))); %%inImg = imresize(inImg,64/size(inImg,2)); %% Spectral Residual myFFT = fft2(inImg); % A(f),一个图像的振幅,主要保存图像低频部分的信息 myPhase = angle(myFFT); % 图像对应的相位图,主要保存图像高频部分的信息 % 对低频部分处理,即处理背景部分,使背景部分的振幅接近0,去掉背景,剩下的就是前景目标 myLogAmplitude = log(abs(myFFT)); % L(f) = log(A(f)),图像振幅的log谱,log可以使振幅值区间变小 averageAmplitude = imfilter(myLogAmplitude,fspecial(‘average‘,3),‘replicate‘); mySpectralResidual = myLogAmplitude - averageAmplitude; %% to spatial domain % 用残差振幅(保存的低频信号,且值接近0),替代图像的原振幅(保存的低频信号,且值较大),再结合相位图,反傅里叶变换到空域中。 saliencyMap = abs(ifft2(exp(mySpectralResidual + 1i*myPhase))).^2; %% After Effect saliencyMap = mat2gray(imfilter(saliencyMap,fspecial(‘gaussian‘,[10,10],2.5))); imshow(saliencyMap); 参考链接
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |