HC(Histogram-based Contrast) 基于直方图对比度的显著性

来源于: 2011, Global contrast based salient region detection, ChengSaliencyCVPR2011.pdf (mmcheng.net)

详见作者主页: Global contrast based salient region detection – 程明明个人主页 (mmcheng.net)

显著性定义

图像中像素的显著性值可以它和图像中其它像素的对比度来定义, 具体公式为:

\[S(I_k) = S(c_l) = \sum_{j=1}^{n}{f_iD(c_l, c_j)}
\]

其中, \(c_l\) 为像素 \(I_k\) 的颜色, n为图像中所有颜色的总数, \(f_j\) 为 \(c_j\) 在图像I中出现的概率, \(D(c_l, c_j)\) 为颜色在Lab空间的距离.

使用上述公式就可以计算每个像素的显著性, 从而可以得到图像中目标的显著性.

但上述公式存在一个问题: 对于RGB颜色空间, 8bit数据的颜色总数为 \(255^3=16581375\), 这样会使得公式计算量大.

具体实现

优化加速

为了解决计算量大的问题, 作者对颜色进行了量化来减少计算量, 如将颜色量化到12个不同的值(在RGB颜色空间量化), 这样颜色总数为 \(12^3=1728\). 同时丢弃部分频率较小的颜色, 用相近的颜色代替(在Lab颜色空间计算距离).

最后, 对量化后的图像直方图进行操作, 避免对整幅图像进行处理, 从而提高效率.

颜色空间平滑

量化后虽然提高了效率, 但会带来负面影响, 因为相似的颜色会被量化为不同值, 这样相似的颜色会得到不同的显著性值. 为解决这个问题, 作者使用了颜色空间平滑, 对计算出来的显著性值进行平滑: 每个颜色的显著性值被替换为相似颜色的显著性值的加权平均, 具体公式为:

\[S^{'}(c)=\frac{1}{(m-1)T}\sum^{m}_{i=1}(T-D(c,c_i))S(c_i)
\]

其中, \(T=\sum^{m}_{i=1}D(c,c_i)\) 为颜色 c 和它最相似的 m 个颜色的距离之和.

实现效果

处理过程及效果如下所示:

从上可以看到, 基本实现了文章中的效果, 但与文章给出的效果还是有些出入的.

关键参数

算法中主要有3个参数: 量化参数, 平滑参数, 保留颜色比例, 下面分别说明.

量化参数

量化参数: 将每个颜色通道进行量化, 从而减少颜色数量, 量化参数为Q, 则量化后颜色的总数为 \(Q^3+Q^2+Q+1\), 对于量化参数, 有如下性质:

  • Q越大, 量化后颜色数量越多, 算法执行越慢;
  • Q越小, 量化后颜色数量越少, 算法执行越快;
  • Q越大, 得到的显著性图像层次越丰富(如下图所示中的树叶), 但如果Q太大, 如下图中Q>64时, 目标显著性与背景的显著性区别不大(如下图所示中的人与天空), 则不能突出目标;
  • Q越小, 得到的显著性图像越简单, 但如果Q太小, 如下图中Q<12时, 量化后颜色太少, 目标与背景颜色显著性区别不大, 不能突出目标;
  • 对下图中测试图像, Q的取值在[12,32]较合适;

图中, 第一行分别为原始图像, 颜色量化后图像, 显著性图像, 第二行为对应的颜色显著性.

平滑参数

平滑参数: 取值[0, 1], 为比例控制参数R, 控制用于颜色平滑的数量(保留的颜色数量*R), 用于消除颜色量化带来的负面影响(相似颜色量化成不同的值得到不同的显著性), 对于平滑控制参数, 有如下性质:

  • R越大, 目标和背景的颜色显著性越均匀, 目标和背景越容易区分, 但R>0.5时, 目标和背景的颜色显著性越来越接近, 显著性图像中, 目标与背景越难区分, 如下图中所示;
  • R越小, 颜色显著性越分散, 目标的显著性越分散(可能会被划分为多个目标);
  • 对于下图中测试图像, R<0.5比较合适;

图中, 第一行分别为原始图像, 颜色量化后图像, 显著性图像, 第二行为对应的颜色显著性.

保留颜色比例参数

保留颜色比例: 取值[0,1], 为保留颜色比例参数C, 用于控制保留下来的颜色数量(量化后实际出现的颜色数量*C), 用于消除颜色噪声带来的影响, 对于保留颜色比例参数, 有如下性质:

  • C越大, 保留颜色越多, 目标显著性越完整;
  • C越小, 保留颜色越少, 目标颜色保留的越少, 目标显著性越低;
  • 对于下图中测试图像, C=0.95比较合适;

图中, 第一行分别为原始图像, 颜色量化后图像, 显著性图像, 第二行为对应的颜色显著性.

核心原理说明

对于文章中的显著性, 根据定义及公式可知, 有2个核心要素:

  • 一是目标颜色出现的数量, 因而目标不能太大, 太大了就会成为背景, 如下图所示, 目标也不能太小, 否则就不是目标;

  • 二是目标颜色与其他颜色区别要大, 否则就不会被当成目标, 显著性则会很低, 如下图所示;

HC(Histogram-based Contrast) 基于直方图对比度的显著性的更多相关文章

  1. LBS(Location Based Service)(基于位置的服务)

    LBS(Location Based Service)(基于位置的服务) Android 中定位方式基本可以分为两种:GPS定位,网络定位. GPS定位的工作原理是基于手机内置的GPS硬件直接和卫星进 ...

  2. 3.3 Execution Flow of a DDD Based Application 基于DDD的应用程序执行流程

    3.3 Execution Flow of a DDD Based Application 基于DDD的应用程序执行流程 The figure below shows a typical reques ...

  3. Poj 2136 Vertical Histogram(打印垂直直方图)

    一.Description Write a program to read four lines of upper case (i.e., all CAPITAL LETTERS) text inpu ...

  4. leetCode 84.Largest Rectangle in Histogram (最大矩形直方图) 解题思路和方法

    Given n non-negative integers representing the histogram's bar height where the width of each bar is ...

  5. 【sqli-labs】 less17 POST - Update Query- Error Based - String (基于错误的更新查询POST注入)

    这是一个重置密码界面,查看源码可以看到username作了防注入处理 逻辑是先通过用户名查出数据,在进行密码的update操作 所以要先知道用户名,实际情况中可以注册用户然后实行攻击,这里先用admi ...

  6. CVPR 2011 Global contrast based salient region detection

    Two salient region detection methods are proposed in this paper: HC AND RC HC: Histogram based contr ...

  7. 论文阅读:Review of Visual Saliency Detection with Comprehensive Information

    这篇文章目前发表在arxiv,日期:20180309. 这是一篇针对多种综合性信息的视觉显著性检测的综述文章. 注:有些名词直接贴原文,是因为不翻译更容易理解.也不会逐字逐句都翻译,重要的肯定不会错过 ...

  8. Global Contrast based Salient Region Detection (Ming ming Cheng)

    abstract: Automatic estimation of salient object regions across images, without any prior assumption ...

  9. Paper | Contrast Limited Adaptive Histogram Equalization

    目录 1. 背景 1.1. 对比度和直方图均衡HE 1.2. HE的问题 1.3. AHE 1.4. 底噪问题 2. CLAHE 2.1. 效果展示 2.2. 算法格式和细节 论文:Contrast ...

随机推荐

  1. 关于Java for循环的注意点

    1 import java.util.ArrayList; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 ...

  2. 安装完anaconda之后找不到启动图标

    安装anaconda的过程中,选择了only me模式,安装完之后找不到启动图标,安装网上的方法: 在命令行输入 conda update menuinstconda install -f conso ...

  3. ES6中函数调用自身需要注意的问题

    在传统的递归调用中,可以采用如下方式 function sum(n) { return sum(n - 1) + n;} 但如今es6盛行,为了保持代码一致性,可以采用两种解决方式. 第一种,将thi ...

  4. RabbitMQ-初见

    目录 什么是中间件 消息队列协议 AMQP协议 MQTT协议 OpenMessage协议 Kafka协议 消息队列持久化 消息的分发策略 消息队列高可用和高可靠 什么是高可用机制 集群模式1 - Ma ...

  5. .Net Core 中的选项Options

    .NetCore的配置选项建议结合在一起学习,不了解.NetCore 配置Configuration的同学可以看下我的上一篇文章 [.Net Core配置Configuration源码研究] 由代码开 ...

  6. noip模拟38

    \(\color{white}{\mathbb{深秋总有廖落处,雁归每是菊败时,名之以:残菊}}\) 这场比赛几乎全场都在打暴力,几乎人均切掉的 \(t1\) 没有想到双指针,\(t3\) 的暴力也没 ...

  7. 知乎vscode插件修改和重新编译

    需求来源 vscode插件修改代码要怎样重新编译并安装到vscode中? 起源于我使用一个vscode插件,它可以在vscode中发布文章到知乎上,然后我修改了插件的部分源代码,希望在vscode中安 ...

  8. element-ui的Tree树组件使用技巧

    目录 1,前言 2,需求 3,解决思路 4,完整代码 5,总结 1,前言 最近这段时间在做一个新的模块,其中有一个三层的树结构,产品经理提出了一个很古怪的需求,整的我只能自己控制树的交互,写完之后,感 ...

  9. requests接口测试-requests的安装

    requests接口测试-requests的安装 安装常见问题 提示连接不上,443问题 一般是因为浏览器设置了代理,关闭代理. 网络加载慢,设置国内镜像地址 1.pip安装 2.pycharm安装 ...

  10. regexp 正则表达式

    * 给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false input: 'rattler' output: true function conta ...