HC(Histogram-based Contrast) 基于直方图对比度的显著性
HC(Histogram-based Contrast) 基于直方图对比度的显著性
来源于: 2011, Global contrast based salient region detection, ChengSaliencyCVPR2011.pdf (mmcheng.net)
详见作者主页: Global contrast based salient region detection – 程明明个人主页 (mmcheng.net)
显著性定义
图像中像素的显著性值可以它和图像中其它像素的对比度来定义, 具体公式为:
\]
其中, \(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颜色空间计算距离).
最后, 对量化后的图像直方图进行操作, 避免对整幅图像进行处理, 从而提高效率.
颜色空间平滑
量化后虽然提高了效率, 但会带来负面影响, 因为相似的颜色会被量化为不同值, 这样相似的颜色会得到不同的显著性值. 为解决这个问题, 作者使用了颜色空间平滑, 对计算出来的显著性值进行平滑: 每个颜色的显著性值被替换为相似颜色的显著性值的加权平均, 具体公式为:
\]
其中, \(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) 基于直方图对比度的显著性的更多相关文章
- LBS(Location Based Service)(基于位置的服务)
LBS(Location Based Service)(基于位置的服务) Android 中定位方式基本可以分为两种:GPS定位,网络定位. GPS定位的工作原理是基于手机内置的GPS硬件直接和卫星进 ...
- 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 ...
- Poj 2136 Vertical Histogram(打印垂直直方图)
一.Description Write a program to read four lines of upper case (i.e., all CAPITAL LETTERS) text inpu ...
- leetCode 84.Largest Rectangle in Histogram (最大矩形直方图) 解题思路和方法
Given n non-negative integers representing the histogram's bar height where the width of each bar is ...
- 【sqli-labs】 less17 POST - Update Query- Error Based - String (基于错误的更新查询POST注入)
这是一个重置密码界面,查看源码可以看到username作了防注入处理 逻辑是先通过用户名查出数据,在进行密码的update操作 所以要先知道用户名,实际情况中可以注册用户然后实行攻击,这里先用admi ...
- 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 ...
- 论文阅读:Review of Visual Saliency Detection with Comprehensive Information
这篇文章目前发表在arxiv,日期:20180309. 这是一篇针对多种综合性信息的视觉显著性检测的综述文章. 注:有些名词直接贴原文,是因为不翻译更容易理解.也不会逐字逐句都翻译,重要的肯定不会错过 ...
- Global Contrast based Salient Region Detection (Ming ming Cheng)
abstract: Automatic estimation of salient object regions across images, without any prior assumption ...
- 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 ...
随机推荐
- 关于SequenceInputStream
两个流合并时: package stream.sequence; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...
- Linkerd 2.10(Step by Step)—3. 自动轮换控制平面 TLS &Webhook TLS 凭证
Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...
- 聊聊spring事务失效的12种场景,太坑了
前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了. 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据.为了保证操作的原子性(要么同时成功,要么同时失败),避免数据 ...
- SQLServer数据库之连接查询
SQLServer数据库之连接查询 表的连接查询的几种方法介绍: inner join on内连接,left join on 左连接 , rigth join on 右连接, full join on ...
- shell循环语句for
1.方式1 for i in {list[0]} {list[1]} .. do 执行命令 done 2.方式2(三要素循环) for (( 初始值; 判断值; 步长; )) do 执行命令 done
- GridView控件使用
增加显示列gridView.Columns.AddVisible("AgentName", "姓名");设置是否为只读gridView1.OptionsBeha ...
- footer沉底效果
介绍一个简单直接的方法: flex布局 heml,body{ height: 100%; min-height: 100%; display: flex; flex-direction: column ...
- shell编程之条件语句
目录: 一.条件测试 1.test命令测试 2.文件测试 3.字符串比较 4.逻辑测试 二.if语句 1.if单分支语句 2.if双分支语句 3.if多分支语句 三.case语句 case多分支语句 ...
- 【第十一篇】- Git Gitee之Spring Cloud直播商城 b2b2c电子商务技术总结
Git Gitee 大家都知道国内访问 Github 速度比较慢,很影响我们的使用. 如果你希望体验到 Git 飞一般的速度,可以使用国内的 Git 托管服务--Gitee(gitee.com). G ...
- tar解压缩问题
gzip: stdin: unexpected end of filetar: 归档文件中异常的 EOFtar: 归档文件中异常的 EOFtar: Error is not recoverable: ...