雾霾太重?深度神经网络教你如何图像去雾

简介:

雷锋网(公众号:雷锋网)按:本文作者蔡博仑,华南理工大学在读博士研究生。主要研究方向,机器学习,计算机视觉,图像处理等

导读

北京城被中度污染天气包围,到处都是灰蒙蒙一片——雾霾天又来了。从11日起,雾霾天气就开始出现,根据北京环境监测中心最新预报,这一轮雾霾短期内不会明显好转,尤其是今明两天,北京空气质量维持在4级中度污染,雾霾会一直持续到本周日。

雾霾是特定气候与人类活动相互作用的结果。高密度人口的经济生产及社会活动会排放大量细颗粒物,一旦排放量超过大气循环和承载能力,悬浮颗粒受静稳天气的影响持续积聚,极易出现大范围的雾霾。

一、图像去雾的核心

现有的图像去雾(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.


本文作者:蔡博仑


本文转自雷锋网禁止二次转载,原文链接

相关文章
|
2月前
|
机器学习/深度学习 算法 PyTorch
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
46 0
|
6月前
|
机器学习/深度学习 运维 算法
基于卷积神经网络和手工特征注入的皮肤损伤图像异常检测:一种绕过皮肤镜图像预处理的方法
基于卷积神经网络和手工特征注入的皮肤损伤图像异常检测:一种绕过皮肤镜图像预处理的方法
59 1
|
7月前
|
索引 容器
Bootstrap4----网络系统、图像形状、轮播、滚动监听、多媒体对象、下拉菜单导航及按钮
Bootstrap4----网络系统、图像形状、轮播、滚动监听、多媒体对象、下拉菜单导航及按钮
|
1月前
|
机器学习/深度学习 编解码 异构计算
ELAN:用于图像超分辨率的高效远程注意力网络
ELAN:用于图像超分辨率的高效远程注意力网络
33 1
|
2月前
|
机器学习/深度学习 算法 Python
【Siamese】手把手教你搭建一个孪生神经网络,比较两张图像的相似度
【Siamese】手把手教你搭建一个孪生神经网络,比较两张图像的相似度
71 0
|
2月前
|
前端开发 PyTorch 算法框架/工具
【基础实操】借用torch自带网络进行训练自己的图像数据
【基础实操】借用torch自带网络进行训练自己的图像数据
22 0
【基础实操】借用torch自带网络进行训练自己的图像数据
|
4月前
|
机器学习/深度学习 自动驾驶 算法
【计算机视觉+自动驾驶】二、多任务深度学习网络并联式、级联式构建详细讲解(图像解释 超详细必看)
【计算机视觉+自动驾驶】二、多任务深度学习网络并联式、级联式构建详细讲解(图像解释 超详细必看)
69 1
|
4月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch使用神经网络进行手写数字识别实战(附源码,包括损失图像和准确率图像)
PyTorch使用神经网络进行手写数字识别实战(附源码,包括损失图像和准确率图像)
45 0
|
4月前
|
机器学习/深度学习 文字识别 算法
[Halcon&图像] 基于多层神经网络MLP分类器的思想提取颜色区域
[Halcon&图像] 基于多层神经网络MLP分类器的思想提取颜色区域
51 0
|
3月前
|
机器学习/深度学习 vr&ar
生成对抗网络(GANs)在图像生成和风格转换方面的研究进展
生成对抗网络(GANs)在图像生成和风格转换方面的研究进展
77 0
生成对抗网络(GANs)在图像生成和风格转换方面的研究进展