一年去雾算法研究的总结。

  从最开始的Crimm Imageshop中最简单的去雾功能开始,到前不久为止研究的诸多去雾算法,再到近日和一些朋友的关于去雾经验的交流,感觉自己对这个方面的研究已经止步了,现对这些算法做个简单的总结。

     本博客中共给出了6种有去雾功能的算法:

  (1)基于何凯明博士提出的暗通道去雾算法;

     (2)基于中值滤波(也可使用高斯\均值\双边之类的)的去雾;

     (3)基于均值滤波的实时去雾算法;

  (4)基于多尺度Retinex图像增强技术;

  (5)基于自适应直方图均衡化算法;

  (6)基于自适应对比度及色阶增强的图像算法;

  其中前三种算法属于基于去雾物理模型的,后三种属于普通图像增强手段。

     我们先说说后三种吧。基于Retinex的算法对于整体偏暗的图像有很好的增强作用,用于去雾方面只可用于静态的图像,原因有:(1) MSRCR是基于多次高斯模糊的,里面有很多的浮点计算,速度是个瓶颈;(2)对于有雾图,有可能会出现过增强现象,使的图像出现噪点;(3)对于本身比较正常的图,处理后的效果人的视觉看来很不自然。

     第5和第6种算法i是传统的增强算法,对于图像整体特征比较单一的图去雾的效果还是相当明显的,但是这两个算法受参数的影响比较大,特别是取样数或者说是Tile的大小,不同的Tile会造成局部图像的过增强(偏白或偏黑),并且算法的复杂度也比较高,内部的分块处理也不适合于并行处理,严重限制了其在实时去雾方面的应用。

      第2种基于中值滤波的方式在一些论文里也时有提到,实际我用高斯或者均值之类的模糊代替高斯,也有一定的去雾能力,如果是用中值,可能还会出现图像周边有明显的分界效果,如下图所示,注意看建筑物顶部的几个角的位置:

     还有个问题就是虽然有快速的中值算法,但是考虑到现在的工业应用场合常见的处理大小,实时性还是难以保证,因此,我认为这个算法也只有停留在纸面上,创造不了使用价值。 

     第3篇算法提出的实时算法,其核心就是一个boxblur,约占整个过程耗时一半左右,但确实能做到实时的能力。对于单幅图像的去雾效果也是相当的不错的,但是用于连续的视频流去雾似乎能发现各帧之间的过渡不是特别的自然。

     在来说说何凯明的去雾算法吧,我现在看来,还是这个算法最稳定、最可靠。一是这个算法的原理性经得起推敲,二是其效果综合来说要比其他的算法都为好,特别是用于连续的视频流。我认为这主要还是得益于其透射率图要比其他的都为精细。你如果看看中值或者那个实时的,就可以知道他们对应的透射率图都很粗糙。 不过何的算法有一个致命的弱点,速度很慢,因为无论是用soft matting或者guide filter都有着大量的浮点运算,这严重的限制了其用于工业CCD的实时处理。

     鉴于此,作者也试着对代码进行深层次的优化,包括SSE处理、并行运行等,但由于算法本身的顺序执行,无法全程并行,偶尔一个小函数可以并行,但由于其本身执行就特别快,比如不要5ms,你去用并行算法可能耗时还会大一些。因此,一直没有什么大的进步,对于一副1024*768的彩图进行去雾需要90ms,这肯定无法满足需求。

     最近,在思考,既然暗通道去雾的透射率图比其他的算法都来的精细,如果适当的降低一点点其精度,其去雾的效果理论上应该不会有太大的区别,于是我想到了一种方式,即求取透射率的时候不是对原图进行求取,而是先对原图进行下采样,比如缩小为原图的1/4,计算出小图的透射率,之后在通过插值的方式的获取原图大概的透射率,则应该也可以获得效果。经过实践,这种方式大大的提高了执行速度,而且效果和原始的方案基本一致,对于1024*768的图像大约只需要30ms了,如果进一步取1/9的缩放,则只需要大约20ms,完全可以满足工业实时性要求高的场合。

    当然,如果你的缩小系数不是特别大的话,比如缩小为原来的0.5大小,可能两次缩放所用的耗时还抵消了计算小图的透射率图所换来的盈利,因此必须合理选择这个下采样率。

    去雾还有一些其他人做的论文,比较经典比如有fattal论文:Single Image Dehazing

                 Jean-Philippe Tarel: Fast Visibility Restoration from a Single Color or Gray Level Image

  最新的比如2013年的 Gaofeng MENG: Efficient Image Dehazing with Boundary Constraint and Contextual Regularization (国产的)

    有兴趣的朋友可以自己去研究研究。 

    我做了一个程序,集成了上述6种图像去雾的算法: 图像去雾综合版本

*********************************作者: laviewpbt   时间: 2014.1.12   联系QQ:  33184777  转载请保留本行信息************************

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

为何你只能做出渣图表?数据可视化的十大误区

通过可视化信息,我们的大脑可以更有效地合成和保留信息内容,增强对信息的理解。但是如果不正确数据可视化,它可能弊大于利。错误的图表可以减少数据的信息,或者更糟的是...

823
来自专栏大数据挖掘DT机器学习

R语音与数据挖掘常用的包

本文分为6个部分,分别介绍初级入门,高级入门,绘图与可视化,计量经济学,时间序列分析,金融等。 1初级入门 《R语言实战》,这是高涛、肖楠等翻译的一本书详细全面...

3368
来自专栏机器人网

机器学习岗位面试内容总结

引言 近两周面试了映客、美团、宜信、微播易的机器学习岗位,基本上是正式岗,也有实习生招聘。感觉被虐得挺爽,一方面是自己知道系统学习机器学习的时间才三个月,另一方...

3426
来自专栏BestSDK

【干货教程】可视化大数据最易犯的10个错误:排序混乱,扭曲数据...

  从传播学的角度,这意味着以图片为载体的视觉叙事更加引人注意,更容易获得人们的好感。   通过可视化信息,我们的大脑可以更有效地合成和保留信息内容,增强对信息...

3336
来自专栏数据科学与人工智能

【数据科学家】数据科学家修炼之路

经常有人问我“要成为数据挖掘工程师或者数据科学家应该读什么书?”类似的问题。下面是一份建议书单,同时也是成为数据科学家的指南,当然,这不包括取得合适大学学位的要...

28410
来自专栏思影科技

《大话脑成像》系列之八——组水平标准化

2018已经到来,值此新春佳节之际,作为西南地区第一颜值担当的我继续为大家带来更加丰富多彩,干货满满的脑影像处理中的一些关键知识点讲解,并且不要19888...

3506
来自专栏阮一峰的网络日志

图像与滤波

我对图像处理一直很感兴趣,曾经写过好几篇博客(1,2,3,4)。 前几天读到一篇文章,它提到图像其实是一种波,可以用波的算法处理图像。我顿时有一种醍醐灌顶的感觉...

2745
来自专栏崔庆才的专栏

中文分词原理及常用Python中文分词库介绍

2685
来自专栏张耀琦的专栏

iPhone 摄影中的深度捕捉 ( WWDC2017-Session 507 ) 上篇

在 iOS 11中, 了解如何利用深度信息为创意成像开辟新的可能性。 获得对高层次深度概念的更广泛的了解,并学习如何从相机中捕获流式传输和静态图像深度数据。

4390
来自专栏数据结构与算法

P1719 最大加权矩形

为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听...

38713

扫码关注云+社区