0 引 言
弱光成像技术在国防军事、 天文学等多个领域有广泛的应用需求
[1]。然而, 由于非常有限的光子数和不可避免的噪声, 使得夜间和弱光源成像变得非常困难
[2], 一般的解决方案是通过扩大光圈来收集更多的光子数, 但是这种做法只是对噪声进行了削减, 并不能对噪声进行去除。
弱光环境下所成图像的噪声包括散粒噪声、 读出噪声、 暗电流噪声、 量化噪声等。深度生成模型在微光去噪方面具有优良的性能, 如SID
[3]、 SIDD
[4]等, 还有很多经典去噪算法, 如BM3D
[5]、 VBM4D
[6]等。另外, ELD方法
[7]从传感器的物理成像角度出发, 对微光成像过程中每一步所产生的噪声进行了估计, 同时, ELD方法将成像过程分为光子、 电子、 电压和数字信号四个阶段, 较为合理地将微光环境下产生的噪声表示出来。Monakhova等
[8]在ELD的基础上, 重新设计了噪声种类, 并通过Wasserstain GAN
[9]网络学习了每一种类型的噪声参数, 从而得到了质量较高的噪声图。
本文在Monakhova等
[8]工作的基础上提出了一种新的噪声建模的方法LIGDM(Low-light Image Generation Diffusion Model)。LIGDM通过学习一系列细化步骤将复杂的噪声分布转化为经验数据分布, 类似Langevin动力学, 它是用于训练噪声模型, 迭代的输出噪声, 本文参考SR3
[10]对U-Net网络进行了简单的修改, 使其能够适应有条件的图像生成, 然后使用冷扩散模型的采样方法, 迭代输出得到最终的噪声图。
1 相关工作
1.1 图像去噪与噪声生成
经典的去噪方法通常依赖于图像的先验知识, 如自相似度
[11]、 平滑度
[12]等。同时, 有EMCCD的视频降噪算法
[13]的性能较为优异。与预先设置图像的经典方法不同, 基于深度学习的方法
[14]是通过学习图像数据的分布得到图像的先验, 其在图像质量方面比经典方法有显著的提升, 但是由于缺少成对的数据集, 基于深度学习的方法的可学习性往往较差。
为了解决复杂的数据分布带来的瓶颈问题, 已经有学者进行了提高弱光下和夜间噪声建模真实感的研究。这类研究从传感器的自身特性出发, 考虑了传感器本身带来的噪声(包括散粒噪声和读出噪声等), 对弱光下可能会产生的噪声进行精准了建模。例如: 泊松-高斯噪声
[15]、 ELD
[7]。弱光摄影中的一个常用方法是将多幅图像进行合并降噪, 即Brust Denoising
[16], 但这类方法通常需要大量的成对数据集进行训练, 这在实际场景中是十分困难的。
1.2 扩散模型
目前, 扩散模型
[17]已经成为建模的强大工具。扩散模型有很多种类, 但是基本都是围绕随机噪声去除的概念建立的。Ho等
[18]提出了条件扩散模型, 在训练过程中引入了条件
y来引导模型的生成。Bansal等
[19]认为, 扩散模型的前向过程不局限于高斯噪声, 它可以使用任意形式的噪声替换, 甚至无噪声反演任意图像, 即冷扩散。
2 噪声图像生成方法
2.1 噪声特性
数字图像传感器所产生的噪声图
可以用简单的线性模型表示为
[7]式中:
为光电子数;
为模拟增益和数字增益的总和;
为所有噪声的总和。相机的成像过程可以分为光子、 电子、 电压和数字信号四个阶段。在整个过程中, 每一阶段都会产生不同的噪声, 从而影响整个图像的质量。在光照良好的环境中, 由于传感器收集的光子数较多, 噪声对图像的影响较小, 主要是散粒噪声, 因此可以将其建模为异方差高斯噪声。然而, 在光线较差的环境中, 传感器所能接收到的光子数较少, 噪声在整个图像中所占的比例较大, 之前的噪声模型不能够很好地描述弱光环境中复杂的噪声特性, ELD
[7]将弱光环境中的噪声分解为散粒噪声、 读出噪声、 行噪声和固定模式噪声。Monakhova等
[8]在ELD的基础上将噪声细分为散粒噪声、 读出噪声、 行噪声、 时间行噪声、 量化噪声、 固定模式噪声和周期噪声, 并将这些噪声参数输入到GAN网络中进行学习, 不需要手动校准噪声参数就可以得到质量较高的噪声模型。本文在此基础上提出了一种基于条件扩散模型和冷扩散模型的噪声生成器LIGDM, 它先重复地往清晰的图像中加入噪声, 然后再反向得到噪声图像。LIGDM不需要对抗训练, 只需要通过扩散过程即可得到噪声图像。本文的方法使用Monakhova等
[8]开源的数据集进行训练, 并成功合成真实的噪声。
本文的LIGDM噪声模型考虑了散粒噪声、 读出噪声、 量化噪声和固定模式噪声。图像从光子到电子的转化过程中, 由于光子的量子性质, 通常被建模为泊松分布, 而读出噪声可以被近似为高斯分布, 两者可以用一个异方差高斯噪声来表示, 从电压到数字信号的转化过程中, 会产生量化噪声, 其可以被看作输入电压与输出数字之间的舍入误差, 服从均匀分布。对于传感器捕获的原始图像, 本文将噪声的形成过程建模为
式中: 为散粒噪声; 为读出噪声; 为量化噪声; 为固定模式噪声。
在确定噪声模型后, 本文通过模拟条件扩散模型的前向过程给清晰的图像添加噪声, 使图像变得模糊, 然后将模糊图像和清晰图像同时输入Unet网络进行噪声特性学习, 进一步通过反向推理合成噪声图像。
2.2 前向扩散模块
给定一个由配对图像组成的数据集, 记为 , 表示从未知的条件分布中抽取的样本, 这是一个一对多的映射, 其中多个图像可能与单个图像对应, 而本文主要研究图像与相同的映射, 并学习它的随机迭代优化过程。本文将扩散概率模型应用于条件图像生成来解决这个问题。
条件扩散模型可以通过条件来控制输出结果, 对此, LIGDM修改了DDPM的模型, 将模型的输入修改为两幅图像, 即引入一幅参考图像作为条件, 以此来引导扩散模型的输出。模型输入的另一幅图像是经过前向过程的模糊图像, 该过程通过逐渐地向清晰图像中加入噪声而得到过度加噪的图像, 该图像与参考图像一起输入到网络中, 最后输出噪声图像。
LIGDM的架构类似于DDPM中的Unet结构, 如
图 2 所示, 输入的图像会先经过两个线性层和一个卷积层, 然后会经过四层编码器, 中间层由两个残差块和一个注意力模块组成, 然后会经过四层解码器以及一个GroupNorm, 最终输出结果。本文的损失函数使用均方误差损失, 计算公式为
之前的扩散模型在推理过程中需要1~2 000个扩散步骤, 导致生成噪声图的效率较低。本文提出的LIGDM采用冷扩散模型中的方法来实现更加有效的推理, 这允许其使用更少的推理步骤。如
图 3 所示, 本文参考冷扩散中的雪花算子推理步骤, 将推理步骤设置为50步, 并将各类噪声加入到这50步之内。
2.3 反向扩散模块
选择模糊算子并训练模型来进行恢复后, 这些算子可以串联使用, 通过使用扩散模型文献中的方法来逆转较为模糊的结果。对于值较小的模糊来说, 进行一次就可以获得理想的结果, 然而, 当较大时, 会产生模糊的结果, 因此需要迭代多次。在冷扩散的光滑/可微情况下(非高斯随机噪声), 标准扩散模型由于加入非高斯噪声导致推理结果很差, 所以本文采用冷扩散中的算法2来进行推理。本文的迭代方法, 每次迭代都需计算前一个状态的, 即前一时刻的过程图像。其中, 迭代次数通过实验确定。
通过归纳发现, 使用冷扩散模型中的采样算法2, 生成的值能够达到本文方法的预期, 该方法不通过对抗训练就可以获得质量较高的噪声图像。推理过程如
图 4 所示。
3 实验验证
3.1 数据集及实验环境
本文使用Monakhova等
[8]公开的数据集进行训练和验证。其中, 将成对的干净/嘈杂的静态场景中的灰度图像数据集用于训练本文LIGDM的噪声生成器, 将自然场景下配对的干净/嘈杂的图像数据集用于验证, 该数据集由67个成对的图像对组成, 每个干净图像包含16个噪声脉冲。所有的图像都是在最低光环境下拍摄的, 能够满足本文进行噪声建模的任务要求。
本文的实验开发环境为基于python 3.7.13的深度学习框架pytorch 1.12.1, 训练模型使用的是系统为Ubuntu 18.04 64位的NVIDIA Staion服务器, 内存为128 G, 4个Tesla V100显卡, 每张显卡的显存为32 G。本文的模型采用Adam优化器进行训练, 初始学习率设置为0.000 01, batchsize设置为1。所有的图像都是以raw数据的形式储存, 使用均方误差损失进行了700个epoch的训练, 训练过程中学习率会降低, 最低的学习率为10-6。在训练到第616个epoch时, 损失最低。
本文将数据集裁剪为像素128×128的图像块, 在减去干净的图像后, 计算了合成噪声和真实噪声之间的KL散度, 以此来判断本文方法生成的噪声图像的真实性。
3.2 结果对比
在训练完LIGDM之后, 利用星光下跳舞中的自然场景配对的数据集来验证本文所提方法LIGDM的可行性与先进性。本文比较了基于GAN网络的starlight模型
[8](baseline)、 非深度低光噪声模型ELD
[7]、 以及两种基于深度学习的噪声模型CA-GAN
[20]和noise Flow
[21]。如
表 1 所示, Noise Flow和CA-CAN都忽略了真实噪声中存在的条带噪声, ELD丢失了量化噪声, Starlight需要对抗训练, 而本文方法LIGDM在该数据集中的表现较好, 在定量指标方面, LIGDM所计算的KL散度与baseline接近。如
图 5 所示, 在定性效果方面, LIGDM能够较好地学习到最低光照条件下的噪声, 与baseline效果接近, 同时, 本文方法不需要对抗训练, 具有更好的可解释性。
3.3 消融实验
本文比较了单独使用条件扩散模型和冷扩散模型的效果, 并计算了合成噪声与真实噪声之间的KL散度值, 结果如
表 2 所示。
进一步分析可知, 当只使用条件扩散模型时, 由于本文添加的噪声服从非高斯分布, 因此不能生成非高斯分布的噪声图像; 当只使用冷扩散模型时, 由于模型训练过程中丢失了原始图像的信息导致不能恢复出原始图像, 所以不能生成噪声图像。当两者结合时, 可以实现优势互补, 最终生成较好的噪声图像。
4 结 论
本文提出了一种弱光环境下的噪声图像生成方法, 将扩散模型应用于弱光噪声建模领域, 并取得较好的效果。首先, 将不同噪声特性的噪声加入弱光干净图像中, 提供足够的噪声分布, 使其能够满足弱光环境中的噪声分布, 然后通过反向迭代, 细化每一种噪声参数, 从而得到符合弱光环境下噪声分布的噪声图像, 建立了更加真实的噪声模型。后续研究可用本文建立的噪声模型来去噪, 以更加准确地去除噪声。
山西省科技重大专项计划(202101010101018)