一、课程导论与基础概念

什么是多帧合成降噪?

多帧合成降噪,说白了就是「拍多张,叠一张」。

你想想看,单张照片里的噪点,本质上是随机出现的。既然它是随机的,那同一个场景拍 4 张、8 张、16 张,每张的噪点位置都不一样。把这几张叠在一起取平均,噪点就会互相抵消,而真实的画面细节会保留下来。

我早年做安防摄像头项目时,遇到过极低光照下的监控画面——全是雪花点,人脸根本看不清。后来就是用多帧合成,把连续 8 帧叠起来,画面一下就干净了。嗯,那是我第一次直观感受到「叠加的力量」。

核心公式(简化版):
输出像素 = (帧1像素 + 帧2像素 + ... + 帧N像素) / N
噪点随 N 增大而降低,降低幅度 ≈ √N

举个例子:4 帧合成,噪点降低约 50%;16 帧合成,噪点降低约 75%。当然,这是理想情况,实际还要考虑运动、对齐精度等因素。

为什么需要边缘保留?

直接做平均有个大问题——边缘会糊。

我刚开始做多帧降噪时踩过一个坑:把 8 张夜景照片直接叠在一起,噪点是没了,但建筑物的轮廓、树叶的边缘全变成了一团模糊。为什么?因为手持拍摄时,每张照片之间有微小的位移,直接平均就把锐利的边缘「抹平」了。

边缘保留滤波,就是要在降噪的同时,把那些「不该被平均掉」的结构信息留下来。比如:

  • 强边缘(建筑物轮廓、文字边缘)——保持锐利
  • 纹理区域(布料、木纹)——保留细节
  • 平坦区域(天空、墙面)——大力降噪

说白了,降噪算法得学会「看人下菜碟」。不同区域用不同强度的滤波,这就是边缘保留的核心思想。

我的经验: 边缘保留不是「不做模糊」,而是「有选择地模糊」。判断依据通常是局部梯度——梯度大的地方少模糊,梯度小的地方多模糊。

多帧降噪 vs 单帧降噪

很多人问我:既然单帧降噪算法(比如 BM3D、NLM)已经能去噪了,为什么还要搞多帧?

我直接给你看对比:

对比维度 单帧降噪 多帧降噪
信息量 只有 1 张图的信息 多张图,信息更丰富
降噪上限 有限,过度降噪会丢失细节 更高,可大幅压制噪点
边缘保留 依赖算法本身(如双边滤波) 需要额外对齐+融合策略
运动场景 无运动问题 需要运动补偿,否则鬼影
计算量 低 高(多帧对齐+融合)
适用场景 单张照片、视频单帧 夜景长曝光、视频多帧、连拍

单帧降噪的瓶颈很明显:你只有一张图,噪点和细节混在一起,算法只能「猜」哪些是噪点、哪些是细节。猜对了还好,猜错了要么糊一片,要么噪点还在。

多帧降噪就不一样了。我有 8 张图,每张的噪点位置都不同,但细节位置是相同的。通过统计就能把噪点和细节分开——这不是猜,这是算。

注意: 多帧降噪不是万能的。如果场景中有快速运动物体(比如行人、车辆),直接叠加会产生「鬼影」。这时候需要做运动估计和补偿,或者用更聪明的融合策略。这部分我们后面章节会详细讲。

知识体系总览

下面这张图,帮你快速建立本章的知识框架:

多帧合成降噪与边缘保留滤波 · 知识体系 多帧合成降噪 基本原理 边缘保留滤波 单帧 vs 多帧 多帧叠加平均 噪点随机性利用 信噪比提升 √N 梯度判断边缘 自适应滤波强度 避免边缘模糊 信息量差异 降噪上限对比 运动场景处理 本章核心结论 多帧合成降噪利用帧间噪点随机性提升信噪比,边缘保留滤波确保锐利度不丢失 两者结合,才能实现「既干净又清晰」的最终效果

避坑指南

我刚开始做多帧降噪时,犯过几个低级错误,分享给你:

  • 没做对齐就直接平均——结果边缘全糊了。后来我才知道,哪怕是三脚架拍摄,微小的震动也会导致像素级偏移。
  • 帧数越多越好? 不一定。超过 16 帧后,降噪收益递减,但计算量线性增长。我一般用 4~8 帧,性价比最高。
  • 忽略运动物体——拍夜景时有个行人走过,结果合成出来一个半透明鬼影。后来我加了运动检测,只对静止区域做多帧融合。
一个小技巧: 如果你不确定当前场景适不适合多帧降噪,先拍一张单帧看看。如果单帧噪点已经很少,多帧的收益不大;如果单帧全是噪点,多帧就是救星。