转载链接地址:http://lowrank.science/Spectral-Residual/

About The Author

虽然是第一次读论文第一作者 Xiaodi Hou 的文章,但在此之前,其实早已受过其不小的影响:

  • Xiaodi Hou 在知乎上的 ID 是Filestorm ,是
    神经学、生物学话题的优秀回答者,在看他的论文之前,你可能已经在知乎周刊上看过好几个他的回答了;

  • Xiaodi Hou还是关于博士生的喜剧电影 ThePhD Movie 的演员之一,出演了那个在舞厅邀请女主跳舞的本科生;

  • Xiaodi Hou 著名的上海交大生存手册 的作者之一,我人生的一大遗憾就是,是在本科毕业而不是入学时才读到这本小册子;

  • 最让人叹服的是, Xiaodi Hou04年高中毕业才进入上海交大,考虑到 CVPR 一般都是在上一年 11 月份投稿,Hou Xiaodi 投稿这一篇目前引用 2000多次的CVPR 论文时,其实大三上学期开学没多久,包括我在内,多少人这辈子做梦都想发一次 CVPR,Hou 他竟然在大三就完成了。

Perspective

从题目中就能看出来,论文的目的是做显著性检测的,但这篇论文之所以能被引用这么多次,在于它与传统显著性检测的思路并不一样。

传统方法,如 Itti 模型,检测显著性目标的思路就是抽取目标的显著性特征,如颜色、亮度、纹理,通过综合并分析这些特征,找出图像的显著性区域。但这样做的通用性并不是很好,因为不同类型的目标会有不同的特征,并不能一概而论。

Hou 在本文中另辟蹊径,并不预先假设目标会具有怎样的颜色、亮度、纹理特征,而是来探索背景具有何种特性(pose this problem in an alternative way: to explore the properties of the backgrounds.)将目标看作是引起背景变化的东西,通过估计背景,来做显著性检测。

Insight

人类视觉系统的一条基本法则就是会抑制重复性出现的特征,而更关注那些偏离寻常的东西。因此,只有那些意料之外的信号,才会引起我们的注意。
恰巧的是,自然图像的平均傅里叶谱(averaged Fourier spectrum)遵守有名的 1/f1/f1/f 法则,即频率 fff 对应的傅里叶谱的幅度与其频率成反比,数学公式表示为
EA(f)∝1/fE{\mathcal{A}(f)} \propto 1/f EA(f)∝1/f
其中符号 E⋅E{\cdot}E⋅ 表示期望运算。本文方法主要的出发点是,作者洞察到所有的图像傅里叶谱都遵守这个规则,并在论文中给出了 Figure 1,可以看出,单幅图像的 Log Spectrum 与 2277 张图像合成图像的 Log Spectrum 非常相似。

除了 Log Spectrum 的相似性外,作者另外一个非常重要的洞察是平均 Log Spectrum 的局部线性(local linearity)性质,具体如 Figure 3 所示。可以从图中看出,一幅图像的 Log Spectrum 整体的平滑性更差一些,而 100 条 Log Spectrum 平均的结果更平滑一些,具有作者所说的 局部线性(local linearity)。背后的设想是,如果图像中只有纯背景的话,Log Spectrum 应该平滑且具有局部线性才对(100 条 Log Spectrum 相加是为了近似纯背景的 Log Spectrum,而前面讲的 Log Spectrum 的相似性是为了这里对纯背景的近似提供合理性),恰恰是显著目标的出现破坏了 Log Spectrum 的局部线性。

Idea

相似性即意味着冗余性(Similarities imply redundancies),既然图像拥有相同的 Log Spectrum ,那这些相似冗余的东西并不会首先引起我们视觉系统的注意。只有那些频谱中的统计奇异点(Statistical singularities)才对应着异常区域,也就是目标可能存在的区域。

那该怎么找出这些统计奇异点(Statistical singularities)呢?理想的状态当然是含有目标时图像的 Log Spectrum 减去同场景但不包含目标时的 Log Spectrum,但实际中拿到同场景的背景图像几乎不可能,我们要做得,就是只从单幅图像(Log Spectrum)中找出显著区域(Log Spectrum 上的 Statistical singularities)。

那能不能从仅有的包含目标的图像的 Log Spectrum 中估计出背景图像的 Log Spectrum 呢?如果估计的好,那我们就可以用上面相减的套路了。显然,这值得一试。作者在文中是采用均值滤波来估计背景图像的 Log Spectrum。采用均值滤波,除了利用图像背景 Log Spectrum 的局部线性这一性质外,还隐含假设了显著目标的 Statistical singularities 对 Log Spectrum 的干扰是零均值。

由此,通过均值滤波,能够获得对背景图像 Log Spectrum 的估计,而原图像的 Log Spectrum 减去估计的背景图像 Log Spectrum 就得到了显著目标对应的 Log Spectrum,也就是本文题目中所说的 Spectral Residual,对这个 Spectral Residual 做傅里叶反变换即可得到显著区域。

Method

在理清了文章的 idea 后,具体方法的内容也就顺理成章了。本文之所以被引用如此之多,我想除了另辟蹊径从背景估计来做显著性检测之外,还有其算法步骤非常简单的缘故。文章所有步骤只有如下 5 步,分别是计算 频谱幅值、相位、Log Spectrum,Spectrum Residual 和显著性图。

MATLAB 代码也非常简单

myFFT = fft2(inImg);
myLogAmplitude = log(abs(myFFT));
myPhase = angle(myFFT);
mySmooth = imfilter(myLogAmplitude, fspecial('average', 3), 'replicate');
mySpectralResidual = myLogAmplitude - mySmooth;
saliencyMap = abs(ifft2(exp(mySpectralResidual + 1i*myPhase))).^2;

Algorithm steps

SR算法步骤:

1、 将输入的图像 f(x, y) 变换到频域为 F(f) ,它的相位谱与幅度谱分别记为A(u,v) =F(f)和 ∅(u,
v)=angle(F( f)) ,

2、然后对幅度谱做对数变换记为 L(u,v) =log(A(u,v)),对幅度谱L(U,V)通过与局部均值滤波器h(f)
进行卷积操作后获得的幅度谱为A(f)=h(f)*L(f) ,然后使用包含目标的 LOG 幅度谱与平滑之后的A(f)
幅度谱进行相减即得到了幅度谱残差,其公式如下:R(f) = L(f) – A(f);

3、 相位谱带入傅立叶反变换得到原图的显著图 S(x,y),其公式如下: S(f)= F^(-1) [exp⁡(R(f)+i∙∅(f))]

4、 引入高斯平滑后,上面公式可修改为:S(f)= g*〖|F^(-1) [exp⁡(R(f)+i∙∅(f))]|^2

Saliency Detection: A Spectral Residual Approach 阅读笔记相关推荐

  1. 【论文】Saliency Detection: A Spectral Residual Approach阅读笔记

    一.思路: 从信息论的角度看,有效编码可以将图片H中信息分为两部分: $$H(Image) = H(Innovation) + H(Prior Knowledge)$$ Innovation变化,即为 ...

  2. saliency detection论文(一)—Saliency Detection: A Spectral Residual Approach

    目录 本文是对Xiaodi Hou和Liqing Zhang写的<Saliency Detection: A Spectral Residual>的翻译与总结: 目录 Abstract 残 ...

  3. Dynamic Head Unifying Object Detection Heads with Attentions 论文阅读笔记

    Dynamic Head Unifying Object Detection Heads with Attentions论文阅读笔记 这是微软在CVPR2021发表的文章,在coco数据集上取得了目前 ...

  4. [论文笔记] Towards Real-World Prohibited Item Detection: A Large-Scale X-ray Benchmark 阅读笔记

    Towards Real-World Prohibited Item Detection: A Large-Scale X-ray Benchmark 阅读笔记 Towards Real-World ...

  5. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks论文阅读笔记

    文章目录 OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks论文阅读笔记 ...

  6. Minimum Barrier Salient Object Detection at 80 FPS 论文阅读笔记

    这几天帮学长研究这篇论文,整理了这些笔记,由于我在CV方面刚刚入门,博客中可能会有很多错误与不当之处,希望大家能多多指正. 附上我自己修改的C++代码,可以运行在windows环境下: 链接:http ...

  7. On the Generality of Facial Forgery Detection论文原文翻译以及阅读笔记

    论文题目及原文地址:On the Generality of Facial Forgery Detection 2019IEEE第16届移动特设和传感器系统研讨会国际会议 摘要: 摘要-针对面部伪造检 ...

  8. BlumNet: Graph Component Detection for Object Skeleton Extraction阅读笔记

    BlumNet:用于对象骨架提取的图组件检测 摘要: 本文提出一个简单有效的框架:BlumNet,用于提取自然图像和 binary shapes 中的对象骨架.BlumNet有三方面优势:(1)图分解 ...

  9. Scalable Object Detection using Deep Neural Networks 阅读笔记

    Scalable Object Detection using Deep Neural Networks 基于深度神经网络的可伸缩目标检测 14年的文章 是一个用于检测的显著性启发式神经网络模型, 分 ...

  10. Choosing Smartly: Adaptive Multimodal Fusion for Object Detection in Changing Environments论文阅读笔记

    论文:https://arxiv.org/pdf/1707.05733v1.pdf Abstract 对象检测是在动态和变化的环境中运行的自动机器人的基本任务.机器人应该能够在存在传感器噪声的情况下也 ...

最新文章

  1. 敏感词过滤,PHP实现的Trie树
  2. linux文件指令 例子,Linux 命令:文件目录操作与实例
  3. 天翼云从业认证(4.6)高并发场景上云实践
  4. mysql oneproxy_利用oneproxy实现mysql读写分离搭建笔记
  5. 理解DOM事件流的三个阶段 - Lxxyx的开发笔记 - SegmentFault 思否
  6. 每个前端开发者都要理解页面的渲染
  7. Party(HDU-3062)
  8. Java中的浮点数四舍五入到小数点后2位的一些实用方法
  9. 《JavaScript权威指南》笔记(四)
  10. 安装指定的vue-router版本
  11. pytorch与resnet(六) 预训练模型使用的场景
  12. 零跑科技实现“领跑”背后:频现“质量门”,噱头大于实际?
  13. 贪吃蛇游戏设计汇报c语言,贪吃蛇游戏设计报告(C++).doc
  14. Ai斗地主智能出牌算法
  15. 7月11号,大连小雨
  16. 基础知识(五)Blend2015 具有强大的组合功能,即合并功能。
  17. html 拉伸幕,html 对 div 进行 拉伸 拖拽
  18. CLA not signed yet
  19. 【_ 記 】vue中的slot属性和slot样式自定义
  20. java中PreparedStatement和Statement详细讲解

热门文章

  1. 魂斗罗进化革命 塞班JAVA版_魂斗罗之进化革命_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]...
  2. Iframe中,弹出层屏幕垂直居中
  3. 二进制反码求和java_有趣的二进制-浮点数
  4. bulma.css_在5分钟内学习Bulma CSS-初学者教程
  5. 直流无刷电机的一些介绍
  6. Mac制作windows10安装U盘
  7. MindMaster如何恢复未保存的内容
  8. 技术分享 — Java如何实现证件照换底色
  9. 平面几何----笛沙格定理及其应用
  10. Typescript配置Jest测试框架