图像去雾 2019CVPR PMS-Net【补丁图像选择网络】
图像去雾 2019CVPR PMS-Net【补丁图像选择网络】
-
提出原因:
常规patch-based haze removel algorithms 有缺点,也就是我们常说的暗通道先验在处理去雾图像时常会遇到 1)过饱和2)图像失真
-
本文亮点:
设计出一种自适应和自动补丁大小选择模型(PMS-Net),对应于每个像素去选择补丁大小。本文通过训练CNN,可以通过输入图像得到补丁图像。该网络运用于合成图像和真实有雾图像,训练结果良好。
-
相关知识点
1) 暗通道先验
对应何凯明的暗通道先验(dark channel prior),统计了大量的无雾图像,发现一条规律:每一幅图像的每一个像素的RGB三个颜色通道中,总有一个通道的灰度值很低。基于这个几乎可以视作是定理的先验知识,作者提出暗通道先验的去雾算法。
I(x)为观察到的有雾图像,J(x)为无雾图像,A是大气光值,t(x)为透射率,表示能够到达计算机系统的没有被散射掉的一部分光。之后我们根据以下等式估计传输图得到无雾图像:
引入的
是常数,为了防止去雾太彻底,不自然。
所以使用暗通道就常常会出现不自然的现象,例如传统的暗通道修复无雾图像时常常会设置固定的补丁大小,如果选择的补丁大小是5或15时,暗通道的灰度值就不总是0了,尤其是对于强度较大的区域(白色区域、天空等)如下图:
2)GCN图卷积神经网络
这里说的蛮有意思的 link
我想知道的文章重点就是:这个GCN设计了一个牛逼的公式,用这个公式就可以很好地提取图的特征。而且它还有个优点就是即使不训练,完全使用随机初始化的参数W,GCN提取出来的特征就以及十分优秀了!这与CNN完全不同。3)BN(Batch Normalization)
批量归一化、标准化
4) BR(boundary refinement module)
边界优化模块:用来保留图像边界信息 -
网络架构
首先是总体架构【除雾算法流程图】
输入有雾图像,通过PMS-Net(patch map selection net)得到补丁图像,再将得到的补丁图像采用暗通道先验处理得到对应像素的传输图(transmission map)和大气光值(atmospheric light)。之后再根据大气散射模型,将得到对应参数输入,最终得到复原图像。patch map作用:可以预测更精确的大气光和传输图。
其次是本文的核心网络【PMS-Net】
此网络可以被分为编码部分和解码部分两块内容。编码部分:首先将输入图像通过一个3*3 filter16通道的卷积核映射到高维空间,然后通过Multiscale U-module从更高维度的数据中提取图像特征。解码部分:运用GCN进行解码上采样,BR保留图像边界信息,而且这种密集的连接可以合并高分辨率和低分辨率的信息,最终得到更好的patch map。Multiscale U-module部分对应的网络架构
Multiscale U-module作用:从更高维度的数据中提取特征。
总的来说,在一个MSWR(Multiscale W-ResBlock)中会有多种尺度的kernel层(例如MSWR1中有55,33,1*1三种规格)是为了在较高层中以不同规模保存更多信息,这样的操作可以减少参数的使用。
在每一个MSWR中都沿用了相同的架构(conv-BN-relu-dropout-conv-BN-relu),这样多架构的结合架构不仅可以提取细节信息,而且这样的网络可以更有效的得到传输图或是无雾图像。
再看Multi-Deconv,它并非传统的去卷积网络,而是先与先前MSWR各输出层的信息结合,进行去卷积,得到更精确的特征图。附加:PMG(patch map generator)【补丁图像生成器】
为了训练PMS-Net,我们需要从训练数据中生成patch map,所以提出了PMG。对应相关的式子如下:
比较清楚,不详细写了。 -
结果展示
文章还专门对比了一下此方法在处理蓝天和明亮区域的的优势。