文档章节

数字图像去雾快速算法

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:46
字数 1141
阅读 20
收藏 0

 

 

1.简介。

          严格的来说,去雾也是对比度增强的一种。但是用常见的对比度增强以及直方图均衡的算法根本达不到良好的效果。这方面最近比较好的工作就是He kaiming等提出的Dark Channel方法。这篇论文也获得了2009的CVPR最佳论文奖。

 文章标题: single Image Haze Removal  Using Dark Channel Prior。

2. 暗通道先验的理解

          从论文的公式1可以看出,去雾模型和图像抠图在代数方程上是一致的。

    简单的说,有雾气的图像I是由清晰图像J与大气光幕A的alpha混合,混合方程如下:

             I = alpha * J + A * (1 - alpha)

    从上述方程看出,我们在仅仅知道I的前提下,要得到J,这是一个有无穷多个解的问题。

    事实上,图像处理的很多问题都是这样,当被规约为简单代数方程之后,都有无穷多个解。

    如果我们找到一些对方程中变量的先验分布,则可能得出方程的唯一解。He kaiming等

    通过对大量清晰无雾图像的统计发现这样一个事实:

         在图像的一个小的区域,至少有一个通道的最小值趋向于零。

         而图像中有雾的区域,并不满足这一规律。这个规律就是暗通道先验。

         根据这一规律,He kaiming等推导了求解透射率的公式。

         简单的说,透射率,其实就是上述方程中的 1- alpha,这个分量。

3. 优化透射率。

           作者采用暗通道求反,得到透射率的初步估计。然后,作者根据抠图模型的一篇经典文献:

           A Closed Form solution to Nature Image Matting

         中采用的方法,逐步求精,优化透射率,消除了透射率的块效应。而对大气光幕的估计,

    作者也给出了简单的思路,即直接取暗通道的最大值的99.5%。

          事实上,网上已经有matlab代码,但是在求取透射率的时候,没有优化透射率,

    所以网上的matlab代码去雾效果与作者的效果相差甚远。

4.  时间复杂度。

            算法的效果虽然比以往的算法好很多,但是计算时间很慢。尤其是在优化透射率这一步,

     对于640x480的图像,其报道的时间是需要2-3秒的时间。由于去雾是基于快的,其patch

     大小为15x15.所以其时间复杂度为O(15*15*M*N)。

5. 其它基于暗通道先验DCP的改进算法。

   5.1 基于中值滤波的改进算法(MDCP)

         算法效果一般,时间复杂度为O(log(N)),分块并行处理之后可以达到实时。

   5.2 基于半求反semi-inverse的快速去雾算法, SIGGRAPH ASIA2010

         算法非常简单,能够有效监测雾的区域并有效去雾,已达到实时的要求。

   5.3 基于双边滤波的改进算法

        这类算法基本上是咱们大陆的同胞搞的,网上有好几篇这方面的文献。由于双边滤波有O(1)时间的快速算法,所以理论上

        这类算法比He kaiming的要快很多倍。但是文献中基于双边滤波的算法都要执行两次双边滤波,所以实际上没没有想象中的快。

6. 我的改进方案。

             根据其他人改进方案的思路都在优化透射率这一步上使用快速算法,我的改进也是在这一步。我采用一种快速的边缘保持滤波算法,而这种算法只需要执行一次就可以了。当然,这种边缘保持滤波器完全可以用任意一种边缘保持滤波器取代,例如双边滤波。

             经过上述改进之后,计算时间的瓶颈在最小值滤波求取暗通道这一步之上,而我经过参数选取,图像patch的大小为3x3而不在是15x15的快。这样最小值滤波的时间小了很多,而基于快的统计指标计算可以把时间复杂度由平方项降为线性时间复杂度。

             经过上述两项的算法优化,我的浮点代码在普通PC I3机器上处理一张640x480的彩色图像的时间小于50ms。

7. 实测图片效果

  

 

 

 

 

 

本文转载自:http://www.cnblogs.com/celerychen/archive/2013/03/23/2976792.html

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
预告 | 大咖Live X 众向科技:智能驾驶中视觉技术瓶颈的思考和对策

7 月 25 日(星期三)晚上 8 点,【大咖Live】第 10 期视觉感知专场,我们邀请到武汉众向科技技术总监田岩博士,详细解析智能驾驶中的视觉计算问题。照例,本次分享对雷锋网(公众号:雷锋网)...

新智驾
07/20
0
0
海思Hi3518EV200(1)简介

1. 简介 Hi3518EV200为新一代HD IP摄像机SOC,集成新一代ISP,优化后的编码前图像处理算法和新一代H.264编码器,同时采用先进低功耗工艺和低功耗架构设计,使得Hi3518EV200在低码率、高图像质...

科技小能手
2017/11/12
0
0
机器视觉字符识别中的深度学习技术

光学字符识别(OCR)是工业环境中的重要技术。工业智能相机及机器视觉方案提供商朗锐智科(www.loongv.com)认为,OCR技术在办公室通信中尤为出色。纸张文件(如发票,发货单和其他记录)的扫描...

gunser
04/27
0
0
手写数字识别系统之倾斜矫正

简介 倾斜校正主要有两种,一种是整体倾斜校正,另一种是局部倾斜校正。 由于本文主要研究具有不规则分布的多数字识别,因此只需要关注经过提取后的数字校正问题,也就是图像的局部校正。 矫...

ruki
2016/08/01
47
0
手写数字识别系统之数字提取

引言 所谓数字分割就是指将经过二值化后的图像中的单个数字区域进行提取的过程。数字分割在数字识别中是一个必不可少的关键步骤,只有能够将数字进行准确的提取,才能将其一一识别。 数字分割...

ruki
2016/07/30
39
0

没有更多内容

加载失败,请刷新页面

加载更多

十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
24分钟前
2
0
Docker搭建代码质量检测平台-SonarQube(中文版)

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言...

Jacktanger
31分钟前
2
0
Windows / Linux / MacOS 设置代理上网的方法汇总

本文汇总了 Windows / Linux / MacOS 设置代理上网的各种方法,总结如下: 1、设置系统代理(Windows、Linux、MacOS) 2、设置代理插件(Chrome、Chromium、Firefox、Opera、QQ等浏览器) 3、...

sunboy2050
昨天
4
0
自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
昨天
3
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部