IEEE Transactions on Multimedia 2018
Yafei Song, Jia Li, Xiaogang Wang and Xiaowu Chen
简介
文章对于去雾任务,提出了Ranking-CNN,其中包含一个Ranking卷积层,即对输入到Ranking层中的特征图按每个点的像素值进行从左上到右下的重新排列(通道之间不混合)。添加Ranking层的目的在于同时获得有雾图像的统计和结构信息。在此之外,文章还运用了随机森林参与了网络的估计任务,它通过神经网络提取的特征来估计传输图。随机森林可以衡量特征的重要性并避免过拟合。
Motivation
文章分析现有的去雾方法的机制发现,统计属性(如DCP)和结构属性(如边界)会影响传输图估计的表现。在往常的CNN中,网络具有强大的学习结构属性的功能,而缺乏学习统计属性的功能。文章认为可以引入Ranking层来使网络学习统计属性的能力。
而随机森林仅仅是文章认为普通网络不容易估计传输图,因此提出使用随机森林来代替网络的最后一层来估计传输图。在下面详细说明。
Model
Ranking-CNN
ranking层
分类结果
前文提到CNN的输出为一个十分类的结果。文章认为,对于传输图的估计,其值处于的范围内,而对于这样的值的估计,不容易训练。文章希望将其转化为一个10分类的问题,将估计的传输图的值固定在
的区间内。对于每个输入的有雾图像块
,输出是
,而标签向量为
,其中
可以被计算为:
即为上文提到的,十分类的onehot编码结果。其使用交叉熵损失来训练。
随机森林
容易看出,即使是得到了准确的10分类结果,也只能估算得到当前图像块的传输图值范围,范围大小为0.1。这个结果是不能够准确去雾的。因此,文章舍弃了Ranking-CNN的最后一层,将其倒数第二层的特征值输入到随机森林中,来估计传输图的值。文章的随机森林模型具有200颗树,每棵树随机选择1/3的特征,仅选择1/100的数据参与训练 随机森林是一种机器学习的算法,它综合了多颗决策树的决策结果来计算最后的值。具体算法请另外自行查询。
tricks
- 虽然在训练中认为图像块中的传输图是局部一致的,但是在测试中,文章为每个像素点在其周围取20*20的块后,以此图像块估算当前像素点的传输值。
- 为了防止传输图值过小而导致的分母过小而限定了
的最小值0.05,如下:
- 由于去雾后,图像的普遍亮度都不高,于是文章给出了以下公式:
即去雾结果乘以为增强后的去雾结果。
数据和训练
数据集
-
训练集取自网络中400张无雾图像,将其裁剪为10W张
的图像块,其中随机取
(图像块内恒定),大气光
-
测试集1为Dataset-Syn,其中
,
为场景深度。
-
测试集2为Dataset-Cap,文章使用显示器显示Dataset-Syn的清晰图像,并使用相机拍摄。然后使用造雾机造雾后再度拍摄。
训练设置
- 随机梯度下降发
- 初始学习率为0.01
- 动量为0.9
- mini-batch为64
- 学习率下降公式为
- 一共训练100个epoch
- 倒数第二层全连接层的输出为64维