如何图像去噪?(二)

第七章 自监督学习与无监督去噪

喜欢可以在我的主页订阅专栏哟,至少更新6年~~,更到我上大学也可能会继续更~~

7.1 自监督去噪的核心思想

自监督学习通过设计无需干净图像的训练任务,从噪声数据中直接学习去噪映射。其核心优势在于摆脱对成对数据(噪声-干净图像)的依赖,适用于真实场景。

关键技术路线

  1. 盲点学习:通过屏蔽部分输入像素,强制网络学习上下文信息
  2. 噪声建模:假设噪声统计特性(如零均值、独立性)构建损失函数
  3. 多帧融合:利用视频或多曝光图像中的时间冗余

7.2 经典自监督去噪方法

7.2.1 Noise2Noise

  • 基本假设:噪声图像对 ( I_{\text{noisy}}^{(1)}, I_{\text{noisy}}^{(2)} ) 的期望值等于干净图像
  • 损失函数
    [ \mathcal{L} = \mathbb{E}\left[ | f_{\theta}(I_{\text{noisy}}^{(1)}) - I_{\text{noisy}}^{(2)} |^2 \right] ]
  • 代码实现
    class Noise2Noise(nn.Module):
        def __init__(self):
            super().__init__()
            self.unet = UNet()
    
        def forward(self, noisy1, noisy2):
            denoised = self.unet(noisy1)
            loss = nn.MSELoss()(denoised, noisy2)
            return loss
    

7.2.2 Noise2Void

  • 盲点策略:随机屏蔽输入像素,强制网络从周围像素推断
  • 掩码生成函数
    def generate_mask(shape, p=0.2):
        mask = torch.ones(shape)
        mask[torch.rand(shape) < p] = 0  # 随机置零
        return mask
    
  • 损失函数:仅计算被屏蔽位置的预测误差

7.3 无监督去噪方法

7.3.1 基于生成对抗网络(GAN)的无监督学习

  • CycleGAN架构
    • 生成器 ( G ): 噪声图像 → 干净图像
    • 判别器 ( D ): 区分生成图像与真实图像分布
  • 循环一致性损失
    [ \mathcal{L}{\text{cycle}} = \mathbb{E} \left[ | G^{-1}(G(I{\text{noisy}})) - I_{\text{noisy}} |_1 \right] ]

7.3.2 深度图像先验(DIP)

  • 核心思想:神经网络结构本身隐式编码图像先验
  • 优化目标
    [ \hat{\theta} = \arg\min_{\theta} | f_{\theta}(z) - I_{\text{noisy}} |^2 ]
    • ( z ): 随机噪声输入
    • 早期停止策略防止过拟合噪声

7.4 基于对比学习的去噪方法

7.4.1 对比损失设计

  • 正样本:同一图像的不同噪声实例
  • 负样本:其他噪声图像
  • 损失函数
    [ \mathcal{L} = -\log \frac{e{s_p/\tau}}{e{s_p/\tau} + \sum e^{s_n/\tau}} ]
    • ( s_p ): 正样本相似度
    • ( s_n ): 负样本相似度
    • ( \tau ): 温度系数

7.4.2 代码实现(SimCLR框架)

class ContrastiveDenoiser(nn.Module):
    def __init__(self):
        super().__init__()
        self.encoder = ResNet50()
        self.projection = nn.Linear(2048, 128)  # 投影头

    def forward(self, x1, x2):
        h1 = self.encoder(x1)
        h2 = self.encoder(x2)
        z1 = self.projection(h1)
        z2 = self.projection(h2)
        return F.normalize(z1, dim=1), F.normalize(z2, dim=1)

# 对比损失计算
def contrastive_loss(z1, z2, temperature
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值