DehazeNet: An End-to-End System for Single Image Haze Removal
项目主页:http://caibolun.github.io/DehazeNet/
GitHub代码 :https://github.com/caibolun/DehazeNet
BReLU+Caffe :https://github.com/zlinker/mycaffe
其他复现:(1)https://github.com/zlinker/DehazeNet (2)https://github.com/allenyangyl/dehaze
总结:
提出一种名为DehazeNet的可训练的端到端系统,用于传输值估计。 DehazeNet将模糊图像作为输入,并输出其中间透射图,随后用于通过大气散射模型恢复无雾图像。 DehazeNet采用基于卷积神经网络的深层架构,其层专门设计用于体现图像去雾中已建立的假设/先验。具体而言,Maxout单位的图层用于特征提取,这可以生成几乎所有与雾相关的特征。我们还在DehazeNet中提出了一种新的非线性激活函数,称为双边整流线性单元,它能够提高恢复的无雾图像的质量。我们在提议的DehazeNet的组件与现有方法中使用的组件之间建立连接。基准图像的实验表明,DehazeNet比现有方法具有更高的性能,同时保持高效和易用。
摘要
背景:Single image haze removal is a challenging ill-posed problem.
现存方法:Existing methods use various constraints/priors to get plausible dehazing solutions. The key to achieve haze removal is to estimate a medium transmission map for an input hazy image.
提出的方法:In this paper, we propose a trainable end-to-end system called DehazeNet, for medium transmission estimation. DehazeNet takes a hazy image as input, and outputs its medium transmission map that is subsequently used to recover a haze-free image via atmospheric scattering model. DehazeNet adopts convolutional neural network-based deep architecture, whose layers are specially designed to embody the established assumptions/priors in image dehazing. Specifically, the layers of Maxout units are used for feature extraction, which can generate almost all haze- relevant features. We also propose a novel nonlinear activation function in DehazeNet, called bilateral rectified linear unit, which is able to improve the quality of recovered haze-free image. We establish connections between the components of the proposed DehazeNet and those used in existing methods. Experiments on benchmark images show that DehazeNet achieves superior performance over existing methods, yet keeps efficient and easy to use.
贡献:
- DehazeNet是一个端到端系统。 它直接学习和估计模糊图像patches与其传输图之间的映射关系。 这是通过其深层架构的特殊设计来实现的,以体现已建立的图像去雾原理。
- 提出了一种新的非线性激活函数,称为双边整流线性单元1(BReLU)。 BReLU扩展了整流线性单元(ReLU)并证明了其在获得精确图像恢复方面的重要性。 从技术上讲,BReLU使用双边约束来减少搜索空间并改善收敛。
- 在DehazeNet的组件与现有的去雾方法中使用的假设/先验之间建立联系,并解释DehazeNet通过自动从头到尾自动学习所有这些组件来改进这些方法。
图像去雾的核心
现有的图像去雾(Image Dehazing)技术离不开一个简单的自然模型——大气散射模型(Atmospheric Scattering Model)。大气散射模型描述了,在雾霾和光照的共同作用下的成像机制:
阳光在物体表面形成反射光 J(x),反射光在穿过雾霾的过程发生散射,只有部分能量 J(x)t(x) 能到达摄像头。与此同时,阳光也在悬浮颗粒表面散射形成大气光 α 被摄像头接收。因此,摄像头中的成像 I(x) 可由两部分组成,透射的物体亮度 J(x)t(x) 和散射的大气光照 α(1-t(x)):
其中,t(x) 是媒介透射率(medium transmission),顾名思义表示能顺利透过雾霾到达摄像头的比率。因此,透射率跟物体与摄像头距离 d(x) 成反比,离摄像头越远的物体受雾霾影响更大。当距离 d(x) 趋于无穷大时,透射率 t(x) 趋于零,I(x) 趋近于 α,α=maxy∈{x|t(x)≤t0}I(y)。综上所述,去雾的核心是如何更精确地估计媒介透射率 t(x)。
基于人工特征
手工特征是传统机器视觉的基础,讲究的是熟能生巧,依赖的是实践出真知。通过“观察→经验→设计”构建各式各样的特征来满足各式各样的任务需求。图像去雾技术也是沿着手工特征逐步地发展起来。
(1)暗通道先验[2](Dark Channel Prior,DCP)
说起去雾特征,不得不提起的暗通道先验(DCP)。大道之行在于简,DCP作为CVPR 2009的最佳论文,以简洁有效的先验假设解决了雾霾浓度估计问题。
观察发现,清晰图像块的RGB颜色空间中有一个通道很暗(数值很低甚至接近于零)。因此基于暗通道先验,雾的浓度可由最暗通道的数值近似表示:
(2)最大对比度[3](Maximum Contrast,MC)
根据大气散射模型,雾霾会降低物体成像的对比度:Σx‖ΔI(x)‖=tΣx‖ΔJ(x)‖≤Σx‖ΔJ(x)‖。因此,基于这个推论可利用局部对比度来近似估计雾霾的浓度。同时,也可以通过最大化局部对比度来还原图像的颜色和能见度。
(3)颜色衰减先验[4](Color Attenuation Prior,CAP)
颜色衰减先验(CAP)是一种与暗通道先验(DCP)相似的先验特征。观察发现雾霾会同时导致图像饱和度的降低和亮度的增加,整体上表现为颜色的衰减。根据颜色衰减先验,亮度和饱和度的差值被应用于估计雾霾的浓度:
基于深度智能
人的视觉系统并不需依赖这些显式的特征变换,便可以很好地估计雾的浓度和场景的深度。DehazeNet是一个特殊设计的深度卷积网络,利用深度学习去智能地学习雾霾特征,解决手工特征设计的难点和痛点。
(1)特征提取(Feature Extraction)
特征提取有别于传统卷积神经网络,DehazeNet采用“卷积+Maxout[5]”的结构作为网络第一层:
并且可以证明,“卷积+Maxout”等价于传统的手工去雾特征:
当W1是反向(Opposite)滤波器,通道的最大等价于通道的最小值,等价于暗通道先验(DCP);当W1是环形(Round)滤波器, 等价于对比度提取,等价于最大对比度(MC);当W1同时包含反向(Opposite)滤波器和全通(All-pass)滤波器,等价于RGB到HSV颜色空间转换,等价于颜色衰减先验(CAP)。
此外,从机器学习角度看,Maxout是一种样条函数,具有更强的非线性拟合能力,如下图(d)。
(2)多尺度映射(Multi-scale Mapping)与局部极值(Local Extremum)
多尺度特征会提高不同分辨率下特征提取的鲁棒性。传统去雾方法中也会采用不同尺度的滤波器(均值、中值、最小值)来增强特征在不同尺度下的鲁棒性。借鉴于GoogLeNet中的inception结构,采用3组不同尺度(3×3,5×5,7×7)的滤波器实现DehazeNet的尺度鲁棒性:
局部极值(MAX Pooling)是深度卷积神经网络的经典操作。局部极值约束了透射率的局部一致性,可以有效抑制透射率的估计噪声。此外,局部极值也对应于暗通道先验(DCP)的局部最小值和最大对比度(MC)的局部最大值。
(3)非线性回归(Non-linear Regression)
大气透射率是一个概率(0到1),不可能无穷大,也不可能无穷小。受到Sigmoid和ReLU激励函数的启发,提出双边纠正线性单元(Bilateral Rectified Linear Unit,BReLU),在双边约束的同时,保证局部的线性。
BReLU的非线性回归对应于传统去雾方法中的边缘抑制操作(如DCP和CAP)。双边约束引入先验信息缩小参数搜索空间,使得网络更加容易训练;局部线性避免Sigmoid函数梯度不一致带来的收敛困难。
DehazeNet基于手工特征,又超出传统方法,从人工到智能。因此,DehazeNet取得了更好的去雾结果,更多的对比实验和代码资源:
参考文献
[1] Cai B, Xu X, Jia K, et al. DehazeNet: An End-to-End System for Single Image Haze Removal [J]. IEEE Transactions on Image Processing, 2016, 25(11): 5187-5198.
[2] He K, Sun J, Tang X. Single image haze removal using dark channel prior[J]. IEEE transactions on pattern analysis and machine intelligence, 2011, 33(12): 2341-2353.
[3] Tan R T. Visibility in bad weather from a single image[C]//Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2008: 1-8.
[4] Zhu Q, Mai J, Shao L. A fast single image haze removal algorithm using color attenuation prior[J]. IEEE Transactions on Image Processing, 2015, 24(11): 3522-3533.
[5] Goodfellow I J, Warde-Farley D, Mirza M, et al. Maxout networks[J]. ICML (3), 2013, 28: 1319-1327.