显著性检测—谱残差方法分析与实现

基于显著性检测的谱残差方法(Spectral Residual)独立于特征,类别,或其他形式的先验知识的目标。通过对输入图像的对数谱分析,提取图像在光谱域的谱残差,并实现在空间域构造相应的显著性图。通过设置不同的参数,对比其对saliency map造成的影响,并讨论算法本身的优点和限制,以指导产生更好的效果。
点击查看原文《Saliency Detection: A Spectral Residual Approach》

Spectral Residual:

1.介绍
本文指出,许多显著性检测模型都是基于训练的,其可扩展性成为泛化任务的瓶颈。面对不可预测和无数种类的视觉模式,需要一个通用的显著性检测系统。换句话说,在实现显著性检测器时,应该尽可能少地引用对象的统计知识。

1.视觉系统的一个基本原则是抑制对频繁出现的特征的响应,同时对偏离规范的特征保持敏感。因此,只有意料之外的信号才能被发送到后期的处理阶段。根据这一理论,将图像信息H(image)分为两部分:
在这里插入图片描述
H(Innovation)为新颖性部分,H(先验知识)为冗余信息。在图像统计领域,这种冗余对应于我们环境的统计不变特性。许多论文提到自然图像不是随机的,它们服从高度可预测的分布。

在自然图像统计的不变因素中,尺度不变性是最著名和研究最广泛的性质。它表明自然图像集合的平均傅里叶频谱的振幅A(f)服从A分布:
在这里插入图片描述采用log spectrum表示图像的L(f)。L(f) = logA(f)可得到log spectrum。不同图像的log spectrum具有相似的趋势。在平均log spectrum中存在局部线性。

2.计算
对于谱残差的计算,首先获得一幅特定的单幅图像,计算其log spectrum得到L(f),谱残差可以表示为:
在这里插入图片描述其中H为k*k的平滑平均滤波器,r (f)为光谱残差,表示该图像的新颖部分。

为了得到空间区域的显著性映射,在频率区域对exp后的残差进行傅里叶反变换,如下式所示:
在这里插入图片描述
S(X)为显著图,p(X)为原相位谱。为了提高结果图的视觉效果,利用高斯卷积对显著性图进行平滑处理。式中,G(*)为高斯卷积核,可调整核大小和平均差分参数。如果需要更有意义的目标检测,使用简单的阈值分割:
在这里插入图片描述
阈值的选择是一个误报和忽略目标的权衡问题。

代码实现

import cv2
import numpy as np

fr = open('imglist.txt')
lines=fr.readlines()

for line in lines:#这里对一个文件夹的图片计算saliency map
    
    img = cv2.imread('./'+str(line[33:40])+'/'+line[41:-5]+'.jpg')
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)


    #计算log Spectral
    fft = np.fft.fft2(gray)
    fshift = np.fft.fftshift(fft)
    LogAmp = np.log(np.abs(fshift))
    phase =np.angle(fshift)
    
    #计算Spectral residual 
    BlurAmp = cv2.blur(LogAmp, (3,3))
    Spectral_res = LogAmp - BlurAmp
    
    #傅里叶反变换计算saliency map
    ishift = np.fft.ifftshift(np.exp(Spectral_res+1j*phase))
    Res_ifft = np.fft.ifft2(ishift)
    Res = np.abs(Res_ifft)
    #高斯滤波 显示结果
    #saliency_map = cv2.GaussianBlur(Res, (15,15), 2)
    #print(saliency_map)
    rge=np.max(Res)-np.min(Res)
    norm=(Res-np.min(Res))*255/rge
    cv2.imwrite('./saliency224/'+line[41:-5]+'.jpg',norm)

Results analysis

1.改变尺寸
如图1所示,改变输入图像的尺寸,会较大影响到显著性映射的结果。输入图像大小的影响。(a)(b)©(d)原图像显著性图,原尺寸,减小0.5倍,减小0.2倍。人类的视觉系统在一定的尺寸下工作。当图像的比例缩小时,与傅里叶频谱高频部分对应的细节减少。在更小的尺度上,大的特征相对于图像中微小但突然的变化变得不那么有竞争力。如图中白色的花朵在原图比例下几乎看不到,随着尺度的减小,慢慢在saliency map中变得清晰,相对于紫花的大片区域部分更加显著。
在这里插入图片描述
2.图像性质
显著物体的形状颜色会在一定程度上影响显著性检测的效果。如图2中的海岛图像,椰子树较为显著,相比之下,天空和海水沙滩更像是背景。椰子树不仅颜色区别度较高,更重要的是包含许多细节边缘特征,所以在频谱残差中能够突出。相对应在saliency map中,椰子树值较高,天空和大海被去除,检测效果比较好。但是在木屋图像中,在我看来,相对于周围茂盛的树木,木屋比较显著。树木应该是作为图像的全局特征,即经常出现的频率较高的。但是这些高频部分恰恰被留下来,细节较少色度较暗的木屋被去除。
在这里插入图片描述
3.高斯滤波
对图像执行高斯滤波可以产生较好的视觉效果。如图3,(a)为风车图像,(b)©(d)分别为不加高斯滤波的显著性图,标准差分别为33和1010。当风车图像没有使用高斯卷积的时候,saliency map全局的值普遍较低,显示的效果是显著点几乎不可见。当使用高斯滤波,设置较小的卷积核的尺寸和标准差,可见部分显著的点,初见物体的轮廓。随着核尺寸和标准差的增加,显著的区域更加清晰明显,而且平滑的作用使得显著物体更具有区域性。
在这里插入图片描述

总结

本实验实现了基于频谱残差的显著性检测方法,相较于其他方法的优势在于不依赖于显著物体本身的基本属性和局部特征,而是利用自然图像的统计先验知识,实现对特定图像的显著性检测。在合适的输入图像尺寸、显著物体的颜色区别性较强和包含较多细节、设置合适的高斯滤波参数等条件下,显著性检测有一定的效果。

[1] X. Hou and L. Zhang, “Saliency Detection: A Spectral Residual Approach,” 2007 IEEE Conference on Computer Vision and Pattern Recognition, Minneapolis, MN, 2007, pp. 1-8, doi: 10.1109/CVPR.2007.383267.

为了提升图像显著目标检测的准确性,可以通过结合残差分析和小波变换这两种技术。首先,残差分析能够从全局角度出发,通过频域分析揭示图像的结构信息和纹理细节,形成全局显著性图像。这一过程涉及计算图像的频、计算残差、将其转换回空间域,并进行归一化处理,从而得到反映全局显著性残差图。 参考资源链接:[融合局部全局特征的图像显著目标检测改进方法](https://wenku.csdn.net/doc/ykpdtzuu8u) 其次,小波变换作为一种强大的多尺度分析工具,能够有效地捕获图像的局部特征。通过在不同尺度和方向上分解图像,小波变换可以帮助我们提取出图像中的局部显著特征,同时去除冗余信息,保持图像的细节。 在得到了全局和局部显著性特征图后,下一步是融合这两种信息。融合策略可以根据应用场景和具体需求设计,常见的方法包括加权融合、特征图相加、或是更复杂的决策级融合。通过合理融合这两种特征,可以有效地结合全局和局部的视觉信息,增强检测的鲁棒性和准确性。 最后,引入视觉转移机制,可以将融合后的显著性目标映射回原始图像,用以突出显示显著目标,同时确保不破坏图像的视觉质量。视觉转移机制通常涉及显著性图的后处理,比如阈值化、形态学操作等,以便更精确地定位和识别显著目标。 通过这种方法,相较于传统只依赖单一特征的显著目标检测方法显著性目标检测的准确性得到了显著提升。感兴趣的读者可以进一步参考《融合局部全局特征的图像显著目标检测改进方法》一文,以获得更深入的理论分析和实验验证。 参考资源链接:[融合局部全局特征的图像显著目标检测改进方法](https://wenku.csdn.net/doc/ykpdtzuu8u)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值