ECCV 2018
Yanting Pei, Yaping Huang, Qi Zou, Yuhang Lu, and Song Wang
简介
一般网络在进行去雾以后,都以PSNR和SSIM指标来评价去雾算法的性能。但在很多应用中,图像去雾以后并非是用于人类的视觉,而是用于高级视觉任务,如分类,识别,分割等等。因此就产生了一个问题:去雾方法是否能够产生更清晰的图像,从而提高高级任务的性能?文章使用合成和真实的有雾图像数据集对图像分类任务进行研究。实验结果表明,现有的图像去雾算法不能很好的提高图像分类性能。
Motivation
去雾方法是否能够产生更清晰的图像,从而高级视觉任务的性能?(这里以分类任务为例)
先对这个问题进行理论层面的分析:
在视觉上,去雾以后的图像显得更加清晰,并且具有很多细节,而更清晰和细节更多的图像理应当能够在分类任务中提高正确率和性能。
但,去雾算法仅仅对输入的图像做去雾操作,并不添加任何其他信息。而分类任务在同样的信息量的输入下,无论是否去雾,结果应该是无法改善正确率和性能。
所以文章使用AlexNet,VGGNet,ResNet作为图像分类器在进行和不进行图像去雾预处理的情况下,评估图像分类的准确性。
Proposed Method
有雾图像数据
要对以上问题进行实验,需要准备分类器所需要的有雾和无雾图像,分别用于训练和测试。而当前图像分类的数据集Caltech-256,PASCAL VOCs,ImageNet等均为无雾图像,缺乏对应的有雾图像。
文章使用了两种策略来获得有雾图像:
- 使用大气散射物理模型来合成有雾图像
- 从互联网上收集真实的有雾图像
合成数据集
文章选择了Caltech-256作为合成数据集。它包含来自257个类别的30607张图像,一共257类。 策略一中的大气散射模型公式:
其中,。其中参数
。由于其中的
是未知的。故文章使用[17]中提出的深度估计算法估算了数据集的深度图,最终合成有雾图像。并将无雾图像的分类标签作为有雾图像的分类标签。通过这种方式,就可以使用有雾图像来训练CNN来进行分类,同时和无雾图像训练的CNN进行对比,观察其是否能够提高CNN的分类正确率。
文章给出一个图片示例。图(a)无雾图像;图(b)估算的深度信息;图(c)合成的有雾图像。
真实数据集
文章从网络上收集了包含20个类别的4610张图像,命名为Haze-20。其中图像类别分别是:鸟(231),船(236),桥(233),建筑物(251),公共汽车(222),汽车(256),椅子(213),牛(227),狗(244), 马(237),人(279),飞机(235),绵羊(204),标志(221),路灯(216),塔(230),交通灯(206),火车(207),树 (239)和卡车(223)。括号内为当前类别收集的图像数量。而当前Haze-20数据集缺乏相应的无雾图像,不能进行对比训练测试。因此文章又从网络上收集了一个新的数据集称为HazeClear-20,一共包含3000张图像,每个类别150张图像。
去雾算法
文章对以下八种算法进行了训练和测试:
- Dark-Channel Prior(DCP):使用暗通道去雾,其根据观察到的一个结果(大多数室外无雾图像的局部块包含的像素至少在一个颜色通道中的强度非常低)得到的。
- Fast Visibility Restoration(FVR):基于中值滤波器的快速去雾算法,主要优点是快,其复杂度为输入图像的线性函数。
- Improved Visibility(IV):增强了输入图像的对比度,使用马尔可夫随机场计算每个像素的数据成本和平滑度成本。
- Boundary Constraint and Contextual Regularization(BCCR):使用正则化方法去雾,将传输函数的固有边界约束与基于加权
范数的上下文正则化相结合,建模为优化公式,以获得有雾图像的传输图。
- Color Attenuation Prior(CAP):使用颜色衰减来消除雾度,该衰减是基于雾度图像中像素的饱和度和亮度之间的差异。通过创建线性模型,可以使用颜色衰减先计算模糊图像的景深,然后通过监督方法学习参数。
- Non-local Image Dehazing(NLD):是一种基于非局部先验的除雾算法,它假定无雾图像的颜色可以通过RGB空间中紧密簇的形式以数百种不同的颜色很好地近似。在朦胧的图像中,这些紧密的颜色簇会因雾而发生变化,并在RGB空间中形成穿过空中坐标的线条。
- DehazeNet(DNet):是一种基于CNN的端到端除雾方法,从概念上讲包含四个顺序操作1.特征提取2.多尺度映射3.局部极值4.非线性回归。
- MSCNN:将多尺度深度神经网络用于图像去雾,由一个基于整个图像预测整体透射图的粗尺度网和一个可以局部细化结果的细尺度网组成。
分类框架
分类框架使用以下三个:
- AlexNet
- VGGNet-16
- ResNet-50
评价指标
虽然在以往的去雾算法中广泛使用了PSNR和SSIM作为评价指标。但先前的研究认为,PSNR和SSIM指标并不是和人类的感知一致的。在该文章中,更加关注PSNR和SSIM指标是否和图像分类性能呈现出相关性。并且,在文中,仅仅使用分类精度来测量图像分类性能,其中
表示测试图像的总数,
表示分类正确的测试图像的总数。
实验
数据集和实验设置
在Caltech-256中,我们从每个类别中随机选择48张图像作为训练图像,随机选择12张图像作为验证图像其余图像用于测试。
文章为每个合成了
张训练集和验证集,以及
张测试集。
对于Haze-20真实有雾数据集,我们从每个类别中随机选择80张有雾图像作为训练图像,随机选择20张有雾图像作为验证图像,其余的用于测试。于是得到一个训练集为个图像,验证集为
个图像,测试集为为
个图像。对于HazeClear-20数据集设置同Haze-20数据集。
文章使用的AlexNet,VGGNet-16,ResNet50在ImageNet数据集上进行了预训练。然后,文章将最后一个完全连接的层中的通道数从1,000更改为N,其中N是数据集中的类数。
文章还研究了训练和测试数据的不同组合,包括:
- 有雾图像训练和测试
- 去雾图像训练和测试
- 对无雾图像训练,但对有雾图像测试
4.2合成有雾图和真实有雾图的定量比较
对于图(a)-(e):
它们分别表示 (雾从淡到浓)。横坐标中的Clear表示使用Caltech-256数据集测试,其表示了分类任务在当前网络上的最佳表现。横坐标中的Haze表示使用有雾图像测试。其他横坐标表示用相应的方法去雾后测试结果。
对于图(f): 它的横坐标中的Clear表示使用ClearHaze-20进行测试,横坐标中的Haze使用Haze-20进行测试。其他横坐标表示用相应的方法去雾后测试结果。
对于图(a)-(f): AlexNet_1,VGGNet_1,ResNet_1:使用同一类型的数据。例如:使用DCP对Haze-20去雾以后的图像进行训练和测试。 AlexNet_2,VGGNet_2,ResNet_2:使用无雾数据进行分类训练,而使用相应的无雾数据(Clear),有雾数据(Haze),去雾结果(去雾算法)进行测试。
现象:
- 对比AlexNet_2,VGGNet_2,ResNet_2上的Clear和Haze可得,在无雾图像上训练后,在有雾数据上的分类正确率下降较大,而在去雾算法去雾后指标有所提升,但远低于测试无雾图像的正确率。
- 对比Haze上的AlexNet_1,VGGNet_1,ResNet_1和AlexNet_2,VGGNet_2,ResNet_2可得,在使用Haze作为训练集后,对于有雾图像的测试有了明显的提高,甚至略高于部分去雾算法。 结论:
- 文章认为根据看到的正确率情况,认为去雾算法不会引入新的信息。
4.4去雾方法的性能评估
这个部分对PSNR和SSIM进行评估,希望获得它们和分类正确率排名相关性,即对去雾结果的PSNR和SSIM排序后,和分类结果正确率排名求相关性。如下图所示:
4.6特征重构
根据前几个部分的分析,文章提出问题:是否是分类网络自身在卷积的过程中能够进行一定程度的去雾?
总结和分析
文章给出了总结认为去雾指标的优劣和图像分类正确率之间关系不大。目前文章认为这是由于图像去雾不会引入其他有助于图像分类的新信息而造成的。但是也不能排除是现有的一些去雾算法去雾效果还不佳的原因。