基于深度学习的图像去噪算法:CBDNet(卷积盲去噪网络)
字数 1277 2025-11-09 23:24:47
基于深度学习的图像去噪算法:CBDNet(卷积盲去噪网络)
题目描述
图像去噪是计算机视觉中的基础任务,旨在从受噪声污染的图像中恢复出清晰的原始图像。传统去噪算法通常假设噪声类型已知(如高斯噪声),但真实场景中的噪声往往复杂且未知(如相机传感器噪声,受光照、ISO设置等因素影响)。CBDNet(Convolutional Blind Denoising Network)是一种针对真实噪声的盲去噪算法,它通过结合噪声估计子网络和非盲去噪子网络,实现对未知噪声的有效去除。
解题过程
CBDNet的核心思想是分两步处理盲去噪问题:先估计图像的噪声水平(噪声估计子网络),再根据估计结果进行自适应去噪(非盲去噪子网络)。以下是详细步骤:
-
问题建模
真实噪声图像可建模为:
\(y = x + n\)
其中 \(y\) 是观测到的噪声图像,\(x\) 是清晰图像,\(n\) 是未知噪声。盲去噪的目标是在不知道 \(n\) 具体分布的情况下,从 \(y\) 中恢复 \(x\)。 -
网络整体结构
CBDNet由两个子网络串联组成:- 噪声估计子网络:一个轻量级卷积网络,输出与输入图像相同尺寸的噪声水平图(noise level map)。
- 非盲去噪子网络:基于U-Net结构,将噪声图像和噪声水平图共同作为输入,进行去噪操作。
-
噪声估计子网络的设计
- 输入:噪声图像 \(y\)(单张图像)。
- 结构:包含5个卷积层,每层后接ReLU激活函数,最后输出噪声水平图 \(\hat{n}\)。
- 关键点:噪声水平图每个像素值表示该位置的噪声强度,使网络能处理空间变化的噪声(例如图像暗区噪声更明显)。
-
非盲去噪子网络的设计
- 输入:将噪声图像 \(y\) 和噪声水平图 \(\hat{n}\) 在通道维度拼接(共4通道:RGB三通道 + 噪声水平图)。
- 结构:采用带有跳跃连接的U-Net,增强细节保留能力。
- 输出:去噪后的图像 \(\hat{x}\)。
-
损失函数设计
为了同时优化噪声估计和去噪效果,CBDNet使用复合损失函数:- 去噪损失:采用非对称损失(Asymmetric Loss)和感知损失(Perceptual Loss)的组合:
- 非对称损失:惩罚去噪后图像过于平滑的问题,鼓励保留细节。
- 感知损失:基于VGG网络的特征差异,提升视觉质量。
- 噪声估计损失:约束估计的噪声水平图与真实噪声差异(需合成噪声数据训练)。
- 去噪损失:采用非对称损失(Asymmetric Loss)和感知损失(Perceptual Loss)的组合:
-
训练策略
- 使用合成噪声数据(如添加高斯噪声)和真实噪声数据(如相机拍摄的低光照图像)混合训练。
- 通过交替训练两个子网络,避免直接端到端训练的不稳定性。
-
推理过程
给定一张真实噪声图像,只需前向传播一次:- 噪声估计子网络生成噪声水平图 → 与非盲去噪子网络拼接 → 输出最终去噪结果。
总结
CBDNet通过显式估计噪声水平,使去噪过程更具适应性,尤其在真实复杂噪声场景下表现优于传统方法。其分步设计解决了盲去噪中噪声分布未知的挑战,为后续真实图像去噪研究提供了重要思路。