本文作者蔡博仑,华南理工大学在读博士研究生。主要研究方向,机器学习,计算机视觉,图像处理等。目前已在TIP、ICCV、ICIP等期刊会议上发表论文10余篇,曾获第17届PCM最佳学生论文。现为TIP、TCSVT、Neurocomputing等期刊审稿人。(https://caibolun.github.io/)
现有的图像去雾(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取得了更好的去雾结果,更多的对比实验和代码资源:
项目主页
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
参考文献
[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.
文章还不够?来看直播吧!
扫码进入直播间
关注 AI 研习社(okweiwu),回复 1 领取
【超过 1000G 神经网络/AI/大数据、教程、论文!】
后台回复 “我要进群” 加入 AI 技术讨论群
论黑科技的极致,大概就是谷歌DeepMind吧
▼▼▼