基于深度学习的图像去雾算法:AOD-Net
字数 1997 2025-10-29 00:00:25
基于深度学习的图像去雾算法:AOD-Net
题目描述
图像去雾旨在从有雾图像中恢复出清晰、无雾的场景内容。雾、霾等天气条件会使得图像对比度下降、颜色失真,严重影响计算机视觉系统的性能。传统的去雾算法通常依赖于大气散射模型,并需要分别估计透射率图和全局大气光,这两个步骤的误差会相互累积。AOD-Net(All-in-One Dehazing Network)是一种端到端的深度学习去雾算法,它不显式地估计透射率和大气光,而是通过一个轻量级的神经网络直接学习有雾图像到清晰图像的映射关系,将大气散射模型中的参数估计过程嵌入到网络中进行联合优化。
解题过程
-
问题建模:大气散射模型
- 首先,我们需要理解雾图形成的物理模型。最常用的是大气散射模型:
I(x) = J(x)t(x) + A(1 - t(x)) - I(x):我们观测到的有雾图像(输入)。
- J(x):我们希望恢复的无雾图像(目标输出)。
- t(x):透射率图,表示光线能到达相机的比例。场景点距离越远,t(x)越接近0(雾越浓)。
- A:全局大气光值,通常假设为全局常数。
- 传统方法的核心是先从I(x)中估算出t(x)和A,然后代入公式反解出J(x)。这个过程容易出错。
- 首先,我们需要理解雾图形成的物理模型。最常用的是大气散射模型:
-
核心思想:模型引导的端到端学习
- AOD-Net的关键创新在于,它没有抛弃这个物理模型,而是巧妙地重构了它。我们将大气散射模型重新表述,将J(x)表示为I(x)的函数:
J(x) = K(x)I(x) - K(x) + b
(这里的K(x)是一个新定义的变量,它由t(x)和A共同决定,b是一个偏置项,通常设为1)。 - 更精确地,通过公式推导,可以得出:
J(x) = (I(x) - A) / t(x) + A = (1/t(x)) * I(x) + A * (1 - 1/t(x)) - 我们定义
K(x) = 1/t(x)和B(x) = A * (1 - 1/t(x))。由于A是全局常数,B(x)实际上也由t(x)决定。AOD-Net的核心思想是,直接用一个神经网络来学习这个联合参数K(x)。这样,清晰的图像J(x)就可以通过一个简单的线性变换得到:J(x) = K(x) * I(x) - K(x) + 1(这里b=1)。网络只需要预测K(x)这一个图。
- AOD-Net的关键创新在于,它没有抛弃这个物理模型,而是巧妙地重构了它。我们将大气散射模型重新表述,将J(x)表示为I(x)的函数:
-
网络结构设计
- AOD-Net采用了一个轻量级的卷积神经网络结构,它主要由两个部分级联而成:
- 第一部分:估计一个初步的K'(x)映射。 这一部分由5个卷积层组成。前4个层使用“卷积+ReLU”的组合,逐步从输入图像I(x)中提取多尺度特征。最后一个卷积层不使用激活函数,直接输出一个初步的参数图K'(x)。所有卷积核都是3x3,但通过不同的步长和通道数来捕捉不同范围的环境光信息。
- 第二部分:多尺度融合与精炼。 由于雾的浓度可能与尺度相关,网络将第一部分中两个中间层的特征图(具有不同感受野,代表不同尺度的信息)与初步的K'(x)进行拼接(Concatenation)。然后,再通过一个卷积层对这些多尺度信息进行融合,最终输出精确的K(x)图。
- 这个设计确保了网络能够同时考虑局部细节和更大范围的上下文信息来准确估计去雾参数。
- AOD-Net采用了一个轻量级的卷积神经网络结构,它主要由两个部分级联而成:
-
损失函数与训练过程
- 网络的训练是端到端的监督学习。我们需要清晰-有雾的成对图像数据集。
- 损失函数:AOD-Net使用最常用的均方误差(MSE)损失,也称为L2损失。它直接比较网络预测出的无雾图像J_pred(x)与真实的清晰图像J_gt(x)之间的像素级差异:
Loss = MSE(J_pred, J_gt) = (1/N) * Σ ||J_pred(x) - J_gt(x)||² - 通过最小化这个损失函数,网络被驱动去学习那个能够最准确地将有雾输入映射到清晰输出的参数K(x)。由于整个流程(从I(x)和K(x)计算J(x))是可微分的,误差可以通过反向传播算法顺利地从输出J(x)传递到参数K(x),再传递到网络的所有权重中。
-
推理(测试)过程
- 当模型训练好后,对一个全新的有雾图像进行去雾非常简单高效:
a. 将有雾图像I(x)输入到训练好的AOD-Net中。
b. 网络前向传播,直接输出估计出的K(x)图。
c. 利用公式J(x) = K(x) * I(x) - K(x) + 1进行逐像素计算,得到最终的去雾结果J(x)。 - 这个过程是单次前向传播,速度非常快,适合实时应用。
- 当模型训练好后,对一个全新的有雾图像进行去雾非常简单高效:
总结
AOD-Net的巧妙之处在于它将物理先验(大气散射模型)与深度学习的强大拟合能力相结合。通过重新参数化,它将传统方法中两个独立的、容易出错的估计任务(t(x)和A)合并为一个统一的参数K(x)的估计任务,并由一个端到端的网络来完成。这种方法减少了误差累积,简化了流程,并且实现了高效的单次去雾,在效果和速度之间取得了良好平衡。