本人最近在研究去雾方面的最新文献(2016年初),当然去雾方面的经典论文是何凯明博士的《Single Image Haze Removal Using Dark Channel Prior》,我这里讲的论文主要是自己平时在看的一些文献,看的过程中进行总结,一方面是给自己看论文留下一点可参考的东西,另一方面希望能对各位产生帮助。可能有些地方不尽如人意,不喜勿喷。

一、专业词汇:

图1

图2

图3

图4

raw depth map:由雾图恢复过来的深度图,如图1所示

blocking artifacts:块效应,如图2所示

transmission maps:去雾要删掉的图,如图3所示

airlight:大气散射光

二、颜色衰减先验

这篇文章提出了一种新的先验——颜色衰减先验。首先讲讲什么是颜色衰减先验:

通过对雾霾图的场景深度建模(线性模型),它是说图像的深度和亮度,饱和度之间存在线性关系。如上图所示,c区域为近景无雾部分,b区域远近适中,有一定雾,a区域为远景雾气浓重。由c右边图表可知,c图的亮度46.18%,饱和度很高,两者几乎没差。通过图表的比较可以得出以下几个结论:1.饱和度很容易受雾气的影响,一旦有一点雾,下降的很快。2.亮度在有雾的情况下(有散热光)反而会更亮。3.无雾情况下,亮度和饱和度几乎没差,受雾的影响下,亮度和饱和度之差悬殊。并且雾越浓重,两者相差越悬殊,也就是说亮度和饱和度之差和雾浓度正相关。

基于场景深度和雾浓度的关系,我们可以推出:

深度和亮度与饱和度之差正相关!

于是有 d(X)=θ01v(X)+θ2s(X)+ε(X).

三、计算θ0,θ1,θ2和σ2的值

d(X)=θ01v(X)+θ2s(X)+ε(X),

d是深度,v是亮度,s是饱和度。θ0,θ1,θ2线性系数。ε(X)是随机变量表示模型的随机错误。可以把ε当做随机图。

我们让ε(X)~ N(0,σ2),得d(X)-θ01v(X)-θ2s(X)~N(0,σ2) ---->d(X)~N(θ01v+θ2s,σ2)

明确问题:亮度v,饱和度s已知,需要计算θ0,θ1,θ2,σ的值,关键在于深度d目前不可测量于是有了以下方法。

  a.合成图像数据集

  因为测量图片的深度比较困难,没有量化的方法(即d未知)。受唐在<<Investigating haze-relevant features in a learning framework for image dehazing>>文中的方法。根据大气散射模型:I(X) = J(X)t(X)+A(1-t(X)),t(X) = e-βd(X),β散射系数跟大气情况有关。本文采用:清晰无雾图 + 随机深度图 【服从(0,1)均匀分布】+随机大气光A= 样本雾图

第一,对每一张清晰图,我们都产生一张相同大小的随机深度图,合成深度图的像素值服从在开区间(0,1)的标准均匀分布,即A(1-t(X))。第二,产生0.85<k<1的随机大气光A,最后我们用随机深度图d和随机大气光A合成有雾图。我们使用500张无雾图作为训练样本。

 b.最大似然估计

对于联合概率密度函数,我们假设每个像素出错的概率是独立的,可得:

对该式做最大似然估计,两边同时取以e为底的log,然后化简对θ0,θ1,θ2,σ分别做协方差求极值得:

根据公式(16)-(19),采用梯度下降算法去计算θ0,θ1,θ2的值

 1 /*
 2 *Input: the training brightness vector v,the training saturation vector
 3 *s,the training depth vector d,and the number of iteration t
 4 *Output:linear coefficients θ0,θ1,θ2,the variable σ2
 5 *Auxiliary functions:
 6 *   function for obtaining the size of the vector: n=size(in)
 7 *   function for calculating the square: out=square(in)
 8 */
 9 Begin
10     n=size(v);
11     θ0=0;θ1=1;θ2=-1;
12     sum=0;wSum=0;vSum=0;sSum=0;
13     for iteraiton from 1 to t do
14           for index from 1 to n do
15               temp=d[i]-θ0-θ1*v[i]-θ2*s[i];
16               wSum=wSum+temp;
17               vSum=vSum+v[i]*temp;
18               sSum=sSum+s[i]*temp;
19               sum=sum+square(temp);
20           end for
21     σ2=sum/n;
22     θ0=θ0+wSum;θ1=θ1+vSum;θ2=θ2+sSum;
23     end for
24 End    

本文用了500个训练样本和1.2亿像素点训练线性模型。经过517代最后得出的最好系数θ0=0.121779,θ1=0.959710,θ2=-0.780245,σ=0.041337。确定了相关系数,我们就可以用来恢复有雾图的深度。

四、深度图恢复

b就是由a恢复的深度图,称为raw depth map.黑色景物比较近,白色比较远。图b就出现了"白鹅效应",图中的白鹅本身是比较近的,但由于其本身就是白色,误认为是远景,这会影响结果的准确性。

我们取在以遍历的某像素x为中心的r*r图像区域内的最小值,结果如图c所示,有效解决但是出现了块效应。最后才经过导向滤波得到图d.

五、清晰图恢复

通过d,A和公式1,2恢复场景J。为了抑制噪声,t(X)选取0.1-0.9之间。--- ①
I(X) = J(X)t(X)+A(1-t(X)), --- ②
t(X) = e-βd(X) --- ③
1、由②③可知在深度图中的白色区域深度无限深,所以I(X)=A,所以本文直接选取深度图中0.1%亮度像素,选取亮度最集中的一块作为大气光A。

2、由①②③得出公式:

有了该公式于是可以对J(X)无雾图进行恢复已达到目标结果。

散射系数β表示大气朝各个方向散射光的单位体积的能力。换句话说,间接决定了去雾的强度。

图11(e-g)不同β的transmission maps,(b-d)是相应去雾结果。可以看出,β太小去雾效果不好,而β太大则去雾过渡(图d变黑)。因此选取合适的β非常重要。大多数情况β=1.0去雾效果已经足够了。

转载于:https://www.cnblogs.com/zjuthantics/p/5276856.html

A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior——基于颜色衰减先验单图片去雾算法原理...相关推荐

  1. 读A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior

    学习目标: A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior 个人体会: 基于模糊图像中像素的亮度和饱和 ...

  2. Visual Haze Removal by a Unified GenerativeAdversarial Network(基于生成式对抗网络的图像去雾IEEE2019)

    摘要:本文提出了一种生成式对抗网络来去除视觉雾霾,称为HRGAN.HRGAN由生成网络和鉴别网络组成.一个联合估计传输图.大气光和无雾图像的统一网络(称为UNTA)被提议作为HRGAN的生成器网络.H ...

  3. 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果(速度可实时)...

    最新的效果见 :http://video.sina.com.cn/v/b/124538950-1254492273.html 可处理视频的示例:视频去雾效果 在图像去雾这个领域,几乎没有人不知道< ...

  4. 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果及其他。...

    在图像去雾这个领域,几乎没有人不知道<Single Image Haze Removal Using Dark Channel Prior>这篇文章,该文是2009年CVPR最佳论文.作者 ...

  5. 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果及其他。 ...

    在图像去雾这个领域,几乎没有人不知道<Single Image Haze Removal Using Dark Channel Prior>这篇文章,该文是2009年CVPR最佳论文.作者 ...

  6. Single Image Haze Removal Using Dark Channel Prior 基于暗原色先验的单一图像去雾方法【翻译】

    Single Image Haze Removal Using Dark Channel Prior Kaiming He, Jian Sun, Xiaoou Tang The Chinese Uni ...

  7. Single Image Haze Removal Using Dark Channel Prior

    单幅图像基于暗通道先验的去雾 Single Image Haze Removal Using Dark Channel Prior Kaiming He, Jian Sun, and Xiaoou T ...

  8. MyDLNote - Enhancement: Fast Single Image Rain Removal via a Deep Decomposition-Composition Network

    Fast Single Image Rain Removal via a Deep Decomposition-Composition Network [paper] Fast Single Imag ...

  9. 去雾算法学习——Fast Visibility Restoration from a Single Color or Gray Level Image笔记

    去雾算法研究之Fast Visibility Restoration from a Single Color or Gray Level Image学习 本文首先给出了雾的效果模型: ·可见性恢复算法 ...

最新文章

  1. Cocos2d入门--3--向量的应用
  2. javascript的数值范围
  3. 数字IC—FPGA同行交流
  4. java设计模式---工厂方法模式
  5. 加密解密技术—对称算法加密
  6. 程序 峰谷值 提取_ABAQUS:Python后处理—用excel提取位移、体积、应变等变化(一)...
  7. 第五章 云原生与容器技术
  8. scala与java混合编译出现的问题
  9. 怎么关闭默认使用腾讯视频播放视频文件
  10. 不可错过!斯坦福课程3D数据的机器学习方法(Machine Learning for 3D Data)第二部分Geometry Foundations: Surface Representations
  11. Spring RestTemplate: 比httpClient更优雅的Restful URL访问, java HttpPost with header
  12. oracle12 group by 拼接字符串
  13. python做一个本地搜索_用 python, django 实现的一个很简单的搜索引擎
  14. DockerKubernetes ❀ Kubernetes集群 - DashBoard服务(Web管理)安装部署
  15. 内温的整体优先效应实验_认知
  16. AD831混频器模块
  17. 理科生浪漫java表白代码_数学公式表白-2020理科生专属浪漫表白句子大全
  18. 抖音获取douyin分享口令url API 返回值说明
  19. 安卓玩机搞机技巧综合资源-----不亮屏幕导资料 有屏幕锁保数据刷机等 多种方式【十五】
  20. 企业电子邮箱怎么注册使用?outlook群发邮件怎么撤回?

热门文章

  1. iOS wallet开发
  2. 二分——切绳子(C++)
  3. linux网络编程一
  4. 网络请求(四)Retrofit实战——金山词霸查词API遇到的问题
  5. unity 2019 点击脚本启动不了VS_蚂蚁森林能量脚本,无需ROOT+支持模拟器
  6. 002-ESP32学习开发(SDK)-测试网络摄像头(OV2640),实现远程视频监控(花生壳http映射)
  7. ajax使鼠标触摸时图片放大,当鼠标移动到图片上时跟随鼠标显示放大的图片效果...
  8. 打印样式CSS的技巧和要点介绍
  9. linux 安装R 环境(最新)
  10. Hive中各种日期格式转换方法总结