(论文速读)Neighbor2Neighbor:从单张噪声图像中构造“邻居监督”

论文题目:Neighbor2Neighbor: Self-Supervised Denoising from Single Noisy Images
中文翻译:Neighbor2Neighbor:从单张噪声图像进行自监督去噪
会议:CVPR 2021

摘要:近年来,图像去噪从神经网络的快速发展中受益良多。然而,大量噪声—干净图像对的监督需求限制了这些模型的广泛应用。尽管已有一些工作尝试仅使用单张噪声图像训练去噪模型,现有自监督去噪方法仍存在网络训练效率低、有效信息损失或依赖噪声建模等问题。本文提出一种非常简单而有效的方法 Neighbor2Neighbor,仅使用噪声图像即可训练有效的图像去噪模型。首先,作者提出随机邻居子采样器来生成训练图像对:网络的输入与目标均从同一张噪声图像中采样得到,并要求成对像素在原图中互为邻居,因此具有非常相似的外观。其次,利用第一阶段生成的子采样训练对训练去噪网络,并额外加入一个正则项以获得更好的性能。Neighbor2Neighbor 可以直接利用现有监督去噪网络在架构设计上的进展,同时避免对噪声分布假设的强依赖。作者从理论角度解释了该方法,并在 sRGB 空间不同合成噪声以及 raw-RGB 空间真实噪声数据上进行了广泛验证。

源码:GitHub - TaoHuang2018/Neighbor2Neighbor: Neighbor2Neighbor: Self-Supervised Denoising from Single Noisy Images · GitHub


一、研究背景:没有干净图像,甚至没有第二张噪声图,怎么训练?

监督式去噪通常需要成对数据:输入是噪声图像,目标是对应的干净图像。但真实摄影中获得大量严格对齐的 noisy-clean pair 很困难,而且用合成噪声训练出的模型还可能因为合成噪声与真实噪声存在 domain gap 而明显退化。

Noise2Noise 已经证明:如果同一场景能够获得两次独立噪声观测,那么可以直接用 noisy → noisy 训练。但它仍要求两张具有相同真实内容的图像。Noise2Void、Noise2Self 等进一步走向 single noisy image,通过 blind-spot 思想阻止网络直接看到当前像素,从而避免学成恒等映射。问题是,blind-spot 往往需要特殊结构或掩码机制,会牺牲中心像素信息,也可能带来计算负担;一些后续方法则依赖显式 Gaussian、Poisson 等噪声模型,在真实噪声分布未知时并不稳健。

Neighbor2Neighbor 的出发点很直接:既然拿不到第二张噪声图,能不能从同一张噪声图里“造”出一对足够像 Noise2Noise 的训练样本?

作者的答案是:可以,不去遮中心像素,而是利用相邻像素通常具有相近真实信号,但随机噪声彼此独立这一性质,在局部邻域内随机抽取两个位置,分别组成输入图和目标图。

论文 Figure 1:Neighbor2Neighbor 的整体训练与推理框架

Figure 1 最值得看的是训练和推理的差别。训练时,一张噪声图像 (y) 先经过 Neighbor Sub-Sampler 得到 (g_1(y)) 和 (g_2(y)),前者送入普通去噪网络,后者作为 noisy target;除此之外,作者还用完整图像 (y) 的网络输出构造正则项。推理时则非常简单:不再做子采样,直接把完整噪声图输入训练好的网络得到去噪结果。

这也是它区别于 N2V/N2S 的一个重要点:Neighbor2Neighbor 不要求修改网络本身,任何表现良好的监督去噪网络原则上都可以放进这个训练框架。

二、核心思路:把一张噪声图拆成两张“近似 Noise2Noise”图像

2.1 从 Noise2Noise 推一步

设真实图像为 (x),两次独立噪声观测为 (y) 和 (z)。Noise2Noise 优化:

当 (y) 和 (z) 对应同一个真实 (x),并且噪声满足无偏等条件时,这个目标与使用 clean target 的监督训练具有相同最优解。

但 Neighbor2Neighbor 没有第二次观测,于是作者提出:从同一张 (y) 中用两个采样器 (g_1,g_2) 得到

g_1(y),\quad g_2(y)

然后尝试训练:

\min_\theta \mathbb{E}|f_\theta(g_1(y))-g_2(y)|_2^2

直觉上,(g_1(y)) 和 (g_2(y)) 中对应位置来自原图中的两个邻居。两个位置的真实内容通常接近,而噪声又可以视为独立,因此它们像是一对“近似相同内容、不同噪声”的 Noise2Noise 样本。

2.2 Random Neighbor Sub-Sampler 到底怎么采?

论文 Figure 2:Random Neighbor Sub-Sampler 生成训练图像对

论文默认令 (k=2),把原图划分成大量 2 × 2 小块。对于每个 2 × 2 cell,随机选择两个相邻位置,一个放进 (g_1(y)),另一个放进 (g_2(y))。遍历所有 cell 后,就得到两张尺寸约为原图一半的子采样图。

例如一个 2 × 2 区域为:

10   12
11    9

可以随机选择 10 放入 (g_1(y)),11 放入 (g_2(y))。下一个 cell 又重新随机选择。最终两张子图的同位置像素虽然不是同一个像素,却来自原图的邻近位置。

这里利用的不是“邻居是干净的”,而是两个条件:第一,相邻位置的真实信号通常接近;第二,在给定真实图像后,不同位置的噪声近似独立。因此两张子图具有相似内容,却携带不同噪声。

随机性也很重要。如果永远固定选择 2 × 2 中相同的两个位置,网络看到的数据组合会更单一;随机采样相当于不断生成新的 noisy-noisy training pairs。

三、关键难点:两个邻居毕竟不是同一个真实像素

Neighbor2Neighbor 如果只有上面的想法,其实还不够。

Noise2Noise 的两张图理想情况下具有完全相同的 ground truth;但 Neighbor2Neighbor 选择的是两个邻居像素。例如真实图像局部可能是:

10   11
10   12

即使没有任何噪声,相邻像素本身也不同。因此 (g_1(x)) 与 (g_2(x)) 存在真实信号差异。论文将这个差异记为 (\varepsilon)。作者在 Theorem 1 中说明:当 (\varepsilon\neq0) 时,直接最小化 noisy pair 之间的 MSE 不再严格等价于监督训练;只有当这个差异足够小时,它才是一个合理近似。

直接训练会带来什么?过度平滑。

因为网络可能把邻居之间原本真实存在的细节差异也当成噪声消掉。于是论文真正关键的第二步不是 sub-sampling,而是为这个 ground-truth gap 加一个 correction。

四、Regularized Loss:为什么不能只做 Neighbor2Neighbor 重建?

作者最终的损失由两部分组成:

\mathcal L=\mathcal L_{rec}+\gamma\mathcal L_{reg}

其中重建项为

\mathcal L_{rec}=|f_\theta(g_1(y))-g_2(y)|_2^2

它就是 Neighbor2Neighbor 版本的 Noise2Noise:用第一张子采样噪声图预测第二张。

正则项则为

|f_\theta(g_1(y))-g_2(y) -\big(g_1(f_\theta(y))-g_2(f_\theta(y))\big)|_2^2

直观理解比公式重要。(f_\theta(y)) 是网络对完整噪声图的当前去噪结果,可以把它视为对真实图像结构的估计。再对这个结果使用相同的 (g_1,g_2),两张子图之间的差值

g_1(f_\theta(y))-g_2(f_\theta(y))

就在估计“两个邻居本来应该存在多少真实结构差异”。

因此正则项实际上在告诉模型:

不要把邻居之间所有不同都当成噪声。真正属于图像结构的局部差异,需要保留下来。

论文 Figure 1:重点观察 (L_{rec}) 与 (L_{reg}) 两条训练路径

Figure 1 中左侧路径负责 noisy-to-noisy reconstruction,右侧路径则利用完整图像的去噪结果估计邻居之间的结构差异。论文还对 (g_1(f_\theta(y))) 和 (g_2(f_\theta(y))) 停止梯度,并在训练过程中逐渐增大 (\gamma),以提高训练稳定性。

所以可以把整个方法压缩成:

单张 noisy image → 随机邻居拆成 noisy pair → 像 N2N 一样训练 → 用 regularizer 补偿邻居真实信号并不完全相同的问题。

五、实验结果:不用 clean target,也不用 blind-spot,效果如何?

论文在合成 sRGB 和真实 raw-RGB 两类场景上测试。合成实验包括固定/变化强度的 Gaussian 和 Poisson noise,测试集使用 Kodak、BSD300、Set14;真实噪声实验使用 SIDD。

论文 Table 1:Gaussian / Poisson 合成噪声下的 PSNR、SSIM 对比

Table 1 中,Neighbor2Neighbor 在不使用 clean image 的方法里表现很强。例如 Gaussian (\sigma=25) 的 Kodak 上达到 32.08 dB,而 N2V 为 30.32 dB;Poisson (\lambda=30) 时达到 31.44 dB,而 N2V 为 28.90 dB。它也明显优于 DIP、Self2Self、Noisier2Noise、Laine19-mu 和 DBSN,并接近需要显式噪声建模和 posterior mean estimation 的 Laine19-pme。

论文 Figure 3–4:Gaussian (\sigma=25) 与 Poisson (\lambda=30) 的可视化比较

两张图主要验证定量结果是否转化为视觉质量。Neighbor2Neighbor 在边缘、纹理和细节保留上具有竞争力,并没有因为使用邻居作为 target 就必然得到严重模糊的结果。

真实噪声更能体现这篇论文的价值。

论文 Table 2:SIDD Benchmark / Validation 上的真实 raw-RGB 去噪结果

使用相同 U-Net 时,Neighbor2Neighbor 在 SIDD Benchmark 上达到 50.47 dB / 0.990,明显高于 N2V 的 48.01 dB / 0.983,也优于 DBSN、BM3D 和 Laine19。更有意思的是,将 backbone 从 U-Net 换成更强的 RRGs 后,结果进一步提升到 50.76 dB / 0.991,甚至略高于表中的监督 N2C 基线 50.60 dB / 0.991。这里最重要的不是“超过监督”这一单个数字,而是说明 Neighbor2Neighbor 与网络架构解耦,可以直接继承更强监督去噪网络的架构进步。

论文 Figure 5:SIDD Benchmark 上的真实噪声可视化结果

Figure 5 展示了真实手机噪声下的视觉比较,与 Table 2 一起说明方法并不依赖预先指定 Gaussian 或 Poisson 模型。论文还指出,在真实数据上,带显式概率后处理的方法反而可能下降,因为真实摄影噪声难以被简单分布准确描述。

5.1 Regularizer 是否真的必要?

论文 Table 3:不同 (\gamma) 的正则项消融
论文 Figure 6:不同 (\gamma) 下平滑程度与残余噪声的变化

这组实验非常关键。Gaussian (\gamma=25) 的 Kodak 上,(\gamma=0) 时只有 31.77 dB,(\gamma=2) 提升到 32.08 dB。Figure 6 更直观:没有正则项时结果偏平滑;随着 (\gamma) 增大,细节逐渐变锐;但 (\gamma) 太大又会留下更多噪声。

因此 (\gamma) 实际上控制的是一个 trade-off:

(\gamma) 太小 → 把真实邻居差异也抹掉,过平滑;(\gamma) 太大 → 过度强调差异,残留噪声。

论文最终在合成实验取 (\gamma=2),真实实验取 (\gamma=1)。

5.2 为什么必须随机采样?

论文 Table 4:Fix-location 与 Random Neighbor Sampling 的消融

Table 4 比较固定位置采样与随机邻居采样。在 Kodak 的四种噪声设置以及 SIDD Validation 上,Random 都获得更好的结果,例如 SIDD Validation 从 50.92 dB 提升到 51.06 dB。提升幅度不算巨大,但趋势一致,说明随机性能够增加训练 pair 的多样性,是该 sampling strategy 的有效组成部分。

六、总结与思考

如果把 Neighbor2Neighbor 压缩成一句话:

它把“只有一张 noisy image”的问题,转换成了“从一张图中随机抽取相邻像素,人工构造近似 Noise2Noise 的 noisy-noisy pair”。

与 Noise2Void / Noise2Self 相比,它们都利用了“真实信号具有局部相关性,而随机噪声在不同像素间近似独立”这一核心统计性质,但实现路径不同。N2V/N2S 的思路是遮住当前像素,用其他位置预测它;Neighbor2Neighbor 则更像是从邻域中抽两个位置,让一个 noisy neighbor 去监督另一个 noisy neighbor。因此它不需要 blind-spot architecture,也不需要在推理时隐藏中心像素。

这篇论文真正巧妙的地方还在于作者意识到:“邻居相似”并不等于“邻居真实值相同”。如果直接模仿 Noise2Noise,ground-truth gap 会导致过平滑,所以又引入 regularization 去补偿这部分结构差异。Random Neighbor Sub-Sampler 解决“训练对从哪里来”,Regularizer 解决“这对训练样本为什么并不完全等价于 Noise2Noise”,两部分缺一不可。

它的边界也很明确:方法仍然依赖不同位置噪声近似独立,以及邻居真实信号足够相似。论文在结尾把 spatially-correlated noise 和 extremely dark images 作为未来方向,这意味着当噪声本身具有明显空间相关性,或者极暗场景下邻域信号质量过低时,当前假设仍可能受到挑战。

从方法演化来看,可以把几条路线理解为:

Noise2Noise:第二张独立 noisy image 提供监督 → Noise2Void / Noise2Self:遮掉自己,由上下文监督自己 → Neighbor2Neighbor:没有第二张图,就从同一张图的邻居中构造一对近似独立的 noisy observations。

它最值得记住的并不是复杂网络,而是一个很简单的数据构造思想:监督不一定来自额外标注,也可以从数据内部的局部统计关系中“造出来”。

内容概要:本文系统研究了Picard迭代法在非线性常微分方程参数估计中的应用,深入阐述了该方法的数学原理及其在参数辨识中的收敛性与稳定性优势。通过构建最小化误差的目标函数,并结合数值积分技术,采用迭代方式逐步逼近系统的真实参数值,有效解决了非线性动态系统中因缺乏解析解而难以进行精确建模的问题。文中提供了完整的Matlab代码实现,涵盖模型定义、迭代求解、参数更新与结果可视化等关键环节,增强了方法的可操作性与工程实用性。研究通过典型非线性系统案例验证了算法的有效性,展示了其在科学计算与工程建模中的良好适应性与推广潜力。; 适合人群:具备常微分方程理论、数值分析基础及Matlab编程能力,从事系统建模、参数辨识、动力学仿真等相关方向的研究生、科研人员和工程技术开发者。; 使用场景及目标:①解决实际工程中非线性微分方程模型的未知参数估计问题;②深入理解Picard迭代法在科学计算中的实现机制与数值特性;③为学术论文复现、科研项目开发或课程设计提供可运行、易调试的技术方案与代码参考。; 阅读建议:建议读者结合文中的数学推导与Matlab代码逐行分析,重点关注迭代流程、目标函数构造与数值积分的耦合实现,通过修改模型结构或噪声条件进行扩展实验,以深化对算法鲁棒性与适用边界的理解。配套资源可通过指定公众号和网盘链接获取,推荐同步学习以加速科研进程。
内容概要:本文详细介绍了一种基于多尺度集成极限学习机(Extreme Learning Machine, ELM)的回归方法,并提供了完整的Matlab代码实现。该方法通过构建多尺度特征表示与集成学习机制,有效提升了ELM在处理非线性、高维复杂数据时的预测精度与模型鲁棒性,特别适用于时间序列回归任务。文档不仅阐述了算法的核心原理与技术流程,还系统展示了其在风电功率预测等工程场景中的应用潜力。同时,文中附带了丰富的科研仿真案例集合,涵盖智能优化算法、深度学习、信号处理、电力系统调度等多个前沿方向,体现了多学科交叉融合的技术优势与实践价值。; 适合人群:具备一定Matlab编程能力,从事科学研究或工程应用的研究生、科研人员及工程技术开发者,尤其适合专注于机器学习、智能算法优化、新能源预测与电力系统建模等相关领域的专业人员。; 使用场景及目标:①用于风电、光伏、负荷等时间序列数据的高精度回归预测任务;②为科研工作者提供可复现的多尺度集成ELM模型代码框架,支持快速算法验证与二次开发;③满足实际工程项目中对高效建模、实时预测与智能决策的技术需求。; 阅读建议:建议读者结合所提供的Matlab代码进行动手实践,深入理解多尺度特征构造与集成策略的设计思想,同时可参考文档中其他相关算法案例进行横向比较与综合应用,以提升整体科研创新能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这张生成的图像能检测吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值