图像显著性论文(六)—Saliency Filters Contrast Based Filtering for Salient Region Detection

看了这么多篇显著性CVPR经典的显著性论文,真的是受益匪浅,每看一篇论文都觉得这方法实在是太棒了,都不知道怎么改善了,但是下一篇还是能用其他方法得到更好的效果,整个看论文的过程,也让我对图像显著性的发展有了一定的了解,再看多几篇自己也尝试写写这方面的论文,当然不要求能跟大神一样发个CVPR这类的会议,慢慢来,慢慢积累,每天有所进步就足够了,今天要介绍的这篇文章是2012年的文章,作者实验得出的效果比HC/RC的效果还要好,实际运行出来也可以看出效果很好,而且运行时间很快,想了解详情,那就跟我一起看看这篇论文吧。

1、算法介绍

本文方法主要在RC论文方法的一些缺点中提出了两个方面的改进,第一个为如何分割图像的问题,第二个为如何从超像素到单像素的过度。

①、图像分割

文章对图像的分割主要关注两个内容:保留相关的结构、去除不相关的细节;分割的单元通过相同的特性(如颜色)聚集到一起表示图像的某个区域,尺寸上大体上均匀,并且可以保持颜色边界。

算法最后采用略微修改的SLIC超像素分割,根据CIElab空间的测地线图像距离进行K-means聚类,产生大体上均匀尺寸,并且可以保持颜色边界的超像素分割

②、颜色独立性

基于一种假设:能够吸引我们注意的领域,和其他领域相比,会比较突出。这一假设在之前很多基于对比的显著性论文中都有提到,由于之前已经有过图像分割,所以图像一些小的纹理和噪声都变得无关紧要,而且算法不是在多尺度下进行,所以不会使显著性图像变模糊或者丧失重要信息。

第i个分割单元的位置和颜色值分别被定义为Pi和Ci,则可得下面公式:


其中表示局部或全局对比的控制变量,权重与超像素空间位置的距离有关,如果这个值给予长距离很低的权重,这个颜色独立性就类似于中央周边的对比度,即距离远的像素对其显著性贡献较低;如果这个权重为常数,这个颜色权重就类似于Mingming Cheng论文里面的区域对比度,如果为1,就是全局对比度。如果颜色越独特,则Ui越大,如果距离越远则权值越小(由以下高斯权值公式可知),对显著性影响越小。

如果按照上面的式子进行计算,则需要O(N2)的复杂度,所以作者提出了高斯权值的问题,设=,时间复杂度为O(N),Zi为归一化,最后公式可改写为:


第一项的Σ结果是1,第二和第三项都可以看做是以ω为核的滤波器,分别对cj 和cj平方滤波。本文将这个核写成了高斯的形式,并且借助Adams提出的permutohedral lattice embedding 滤波器来实现线性时间的计算。

③、空间颜色分布

显著性意味着独立性,背景的颜色一般会分布在图片的各个方面,而前景的颜色一般会比较集中,这一假设在以往的论文中也有说到。

第i个分割单元的空间分布频率定义为Di,颜色为Ci,这个方法计算该单元在图像其他地方出现的频率,如果频率小,说明该单元比较紧凑,比较显著,因此可以用一下公式来表示这一假设


其中表示i,j单元的颜色相似度,颜色越相似权值越大,表示单元i的加权平均位置,根据下方高斯权值可以得出,距离远,颜色越相近,Di越大。这个特征可以表示某种颜色在空间分布的广度。例如某种颜色分散在图像中,但是面积都很小,那么由②计算出来这个颜色的独立性就比较高,但是③会告诉你这个颜色的分布很广,并不显著。

同样,这个公式也可以写成高斯滤波的形式,借助Adams提出的permutohedral lattice embedding 滤波器来实现线性时间的计算,如下公式


其中

④、显著性分配

由②和③得到了Ui和Di,接下来将他们各自归一化,最终由下式获得每个单元的显著性


由于空间颜色分布的区分度更大,因此作者将其放在了指数的位置,并加了一个权重调节。Di越大即颜色分布越广,对应显著性值越小;Ui越大对应颜色独立性越高,对应显著性值越大。

最后我们要分配图像每个像素的显著性,而不是某个单元的显著性,定义为像素的显著性,则可得下式


其中,每个像素的显著性是通过其所在单元以及周围的单元进行高斯线性加权,权重取决于颜色,位置的距离,同样可以通过滤波加快计算时间,最终的归一化也很重要,要求显著图至少包含10%的显著像素,这种归一化方式也会提升算法最终的评价指标。(i表示第i个像素点,而不是第i个单元,Ci和Pi表示第i个像素点的颜色和距离,而Cj和Pj表示第j个单元的颜色和距离,像素i如果和单元j的颜色和距离都比较近,那么权值比较大,即分配Sj的值占的比重较大)。

2、结论

本文通过两个实验来体现本文算法在准确性和回召率的优势,第一种方法是通过固定阈值的方法,第二种方法是通过动态阈值的方法;得到的结果如下



作者还提出了平均绝对误差的方法来证明本文方法的优越性,方法如下:


结果如下



参考资料

1、Saliency Filters Contrast Based Filtering for Salient Region Detection

2、Saliency Filter

3、读论文:CVPR2012——Saliency Filter

4、代码下载

问题:

①、本文提到的图像分割方法没有接触,代码看不懂

②、本文提到的图像滤波方法,permutohedral lattice embedding 滤波器不懂,代码也没看懂




  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是sAUC的Matlab代码实现: ```matlab function [score, shuffled_map] = sAUC(saliency_map, fixation_map, num_shuffles) % saliency_map: 输入的显著图像 % fixation_map: 目标图像 % num_shuffles: 随机置换数量 saliency_map = im2double(saliency_map); fixation_map = im2double(fixation_map); % 将显著图像和目标图像转换为向量形式 saliency_vec = saliency_map(:); fixation_vec = fixation_map(:); % 计算AUC值 score = computeAUC(saliency_vec, fixation_vec); % 生成随机置换 shuffled_map = zeros(size(saliency_map,1), size(saliency_map,2), num_shuffles); for i=1:num_shuffles shuffled_fixation_vec = fixation_vec(randperm(length(fixation_vec))); [~,shuffled_map(:,:,i)] = computeAUC(saliency_vec, shuffled_fixation_vec); end % 计算shuffled AUC值 shuffled_score = zeros(num_shuffles, 1); for i=1:num_shuffles shuffled_score(i) = computeAUC(saliency_vec, shuffled_fixation_vec); end % 计算sAUC值 score = (score - mean(shuffled_score)) / std(shuffled_score); end function [score, thresholded_map] = computeAUC(saliency_vec, fixation_vec) % 计算ROC曲线 [~, ~, info] = vl_roc(fixation_vec, saliency_vec); % 计算AUC值 score = info.auc; % 将显著图像转换为二值图像 thresholded_map = zeros(size(saliency_vec)); thresholded_map(saliency_vec > info.eer) = 1; end ``` 使用方法: 1. 将以上代码保存为`sAUC.m`文件; 2. 在Matlab中加载显著图像和目标图像; 3. 调用`sAUC`函数计算sAUC值和随机置换的显著图像。 示例代码: ```matlab % 加载显著图像和目标图像 saliency_map = imread('saliency.jpg'); fixation_map = imread('fixation.jpg'); % 计算sAUC值和随机置换的显著图像 [num_shuffles, score, shuffled_map] = sAUC(saliency_map, fixation_map, 100); ``` 其中,`num_shuffles`是随机置换的数量,`score`是sAUC值,`shuffled_map`是随机置换的显著图像

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值