这篇文章研究了如何使用图像深度估计进行去雾操作。该方法只需要使用训练好的深度估计网络(本文使用了 monodepth2[1]),即可实现去雾。但由于要对图像进行逆向求解,因此推理速度相对较慢。此外,由于受深度估计精度和假设雾分布均匀的限制,该方法具有一定的局限性。

文献[2]中使用的公式$I(x) = R(x)t(x) + L(1 − t(x))$可用于为图像添加雾,其中$I(x)$表示经过加雾处理的图像,$R(x)$代表未经处理的原始清晰图像,$L$表示环境光,而$t(x) = exp (−\beta\ell(x))$,其中的$\ell(x)$是图像深度图。该方法可以生成非常逼真的雾天图像,并且该公式可微分,因此可以利用梯度下降法从$I(x)$逆向求出去雾后的图像$R(x)$。

在去雾过程中,将上面公式中$t(x)$改为$t(x) = exp (\alpha\ell(x)+\beta)$,即对深度估计进行线性变换,另外$R(x)$与$L$变为可训练参数,其中$R(x)$为与有雾图像大小相同,利用标准正态分布的随机数进行舒适化的张量,另外利用了$sigmoid$函数保证图像在0到1之间。$L$是一个三维向量,代表环境光颜色。对加雾后的利用L1损失项与输入的加雾图片进行比较,利用反向传播更新输入图像与环境光等参数,反向传播过程中冻结了深度估计网络。产生去雾图像的过程使用Adam优化器(学习率为0.01)训练了1000次,产生去雾图像的结果如下图所示,可以看到对输入图像有一定程度的去雾效果。

生成去雾图像的过程如下图所示,可以看到从随机初始化的参数慢慢生成了去雾后的图像。

但是这种方法非查依赖于深度估计网络的精度,对于OOD的数据不能有效处理。

[1] C. Sakaridis, D. Dai, and L. Van Gool, ‘Semantic Foggy Scene Understanding with Synthetic Data’, International Journal of Computer Vision, vol. 126, no. 9, pp. 973–992, Sep. 2018.

[2] C. Godard, O. Mac Aodha, M. Firman, and G. J. Brostow, ‘Digging into Self-Supervised Monocular Depth Prediction’, Oct. 2019.