显著性检测(一)Saliency Detection: A Spectral Residual Approach

这篇文章来自2007CVPR,作者侯晓迪当时在上海交大读大三,后进入加州理工学院攻读博士,师从Koch。这篇文章创建了基于频谱的视觉注意机制,它与Itti等人的基于特征层次的显著性模型不同,作者从一开始就提出,这是一种与特征无关的普适性算法。作者将图像映射到频率域中,通过不同图像在频率域中的分布规律,得出了谱残差模型,原文Matlab代码仅有5行,非常简洁高效。
原理:我们一般把图像分为目标和背景,传统的显著性模型是提取目标的特定特征,这样的方法就决定了目标种类的特定性,也就导致了这种方法的局限性。一般认为视觉注意机制分为两个阶段:一个是并行快速简单的预注意阶段,然后是单行缓慢但是复杂的注意阶段。人类倾向于关注那些有显著变化的区域,而对大部分的相似的区域不予关注。因此,在图像中将平淡的背景剔除掉,剩下的就是显著区域。
模型:从信息理论的角度,图像信息H(Image)可以分为两个部分:
H(Image)=H(Innovation)+H(Prior Knowledge)
H(Innovation)代表图像中的“新奇”区域,H(Prior Knowledge)代表需要被去除的冗余的信息,作者认为这些冗余信息有着可预测的分布。
尺度不变性有一个理论:
E{A(f)}∝1/f
也就是幅频响应中某个频率的幅度平均值和频率倒数成正比。如下图。
显著性检测(一)Saliency Detection: A Spectral Residual Approach_第1张图片
与log-log的表示方法不同,在这篇文章中,作者使用的是
L(f)=log⁡(A(f))
我们可以看出,不同的图像的log频谱显示出了相似的趋势。
显著性检测(一)Saliency Detection: A Spectral Residual Approach_第2张图片
然后作者给出了1,10,100个图像的log频谱均值曲线,并且发现,图像数目越多时,频谱均值曲线越趋向平滑。所以就有这样一个猜想:对于背景区域,频谱曲线显示为平滑,而各个不同图像中的尖端就是导致某些区域显著的原因,用图像曲线减去均值曲线即是尖端区域,这些不平滑的部分就是我们要找的显著性区域。
显著性检测(一)Saliency Detection: A Spectral Residual Approach_第3张图片
算法:作者先利用傅里叶变换将图像映射到频域,提取其幅频响应;而后对其做log变换,得到log频谱。这里作者没有用多个图像的均值,而是对原图像与一个3×3的均值算子卷积作为均值图像的频谱。然后用两个频谱相减得到的即是显著区域,但是现在是在频域,需要将其映射回空间域,在这里作者使用了一个高斯滤波器来模糊达到更好的效果,得到其显著图。
A(f)=R{F[I(x)]}
P(f)=s{F[I(x)]}
L(f)=log⁡(A(f))
R(f)=L(f)-h_n (f)*L(f)
S(f)=g(x)*F^(-1) 〖[exp⁡〖(R(f)+P(f))]〗〗^2
最后,为了获取目标,作者对得到的显著图进行阈值化,处理后的图像将目标和背景清晰分开。
O(x)=1 if S(x)>threshold
O(x)=0 otherwise

你可能感兴趣的:(Saliency)