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

  从最开始的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  转载请保留本行信息************************

 

posted @ 2014-01-12 13:35  Imageshop  阅读(40684)  评论(16编辑  收藏  举报