一、课程导论与基础概念
什么是多帧合成降噪?
多帧合成降噪,说白了就是「拍多张,叠一张」。
你想想看,单张照片里的噪点,本质上是随机出现的。既然它是随机的,那同一个场景拍 4 张、8 张、16 张,每张的噪点位置都不一样。把这几张叠在一起取平均,噪点就会互相抵消,而真实的画面细节会保留下来。
我早年做安防摄像头项目时,遇到过极低光照下的监控画面——全是雪花点,人脸根本看不清。后来就是用多帧合成,把连续 8 帧叠起来,画面一下就干净了。嗯,那是我第一次直观感受到「叠加的力量」。
核心公式(简化版):
输出像素 = (帧1像素 + 帧2像素 + ... + 帧N像素) / N
噪点随 N 增大而降低,降低幅度 ≈ √N
输出像素 = (帧1像素 + 帧2像素 + ... + 帧N像素) / N
噪点随 N 增大而降低,降低幅度 ≈ √N
举个例子:4 帧合成,噪点降低约 50%;16 帧合成,噪点降低约 75%。当然,这是理想情况,实际还要考虑运动、对齐精度等因素。
为什么需要边缘保留?
直接做平均有个大问题——边缘会糊。
我刚开始做多帧降噪时踩过一个坑:把 8 张夜景照片直接叠在一起,噪点是没了,但建筑物的轮廓、树叶的边缘全变成了一团模糊。为什么?因为手持拍摄时,每张照片之间有微小的位移,直接平均就把锐利的边缘「抹平」了。
边缘保留滤波,就是要在降噪的同时,把那些「不该被平均掉」的结构信息留下来。比如:
- 强边缘(建筑物轮廓、文字边缘)——保持锐利
- 纹理区域(布料、木纹)——保留细节
- 平坦区域(天空、墙面)——大力降噪
说白了,降噪算法得学会「看人下菜碟」。不同区域用不同强度的滤波,这就是边缘保留的核心思想。
我的经验: 边缘保留不是「不做模糊」,而是「有选择地模糊」。判断依据通常是局部梯度——梯度大的地方少模糊,梯度小的地方多模糊。
多帧降噪 vs 单帧降噪
很多人问我:既然单帧降噪算法(比如 BM3D、NLM)已经能去噪了,为什么还要搞多帧?
我直接给你看对比:
| 对比维度 | 单帧降噪 | 多帧降噪 |
|---|---|---|
| 信息量 | 只有 1 张图的信息 | 多张图,信息更丰富 |
| 降噪上限 | 有限,过度降噪会丢失细节 | 更高,可大幅压制噪点 |
| 边缘保留 | 依赖算法本身(如双边滤波) | 需要额外对齐+融合策略 |
| 运动场景 | 无运动问题 | 需要运动补偿,否则鬼影 |
| 计算量 | 低 | 高(多帧对齐+融合) |
| 适用场景 | 单张照片、视频单帧 | 夜景长曝光、视频多帧、连拍 |
单帧降噪的瓶颈很明显:你只有一张图,噪点和细节混在一起,算法只能「猜」哪些是噪点、哪些是细节。猜对了还好,猜错了要么糊一片,要么噪点还在。
多帧降噪就不一样了。我有 8 张图,每张的噪点位置都不同,但细节位置是相同的。通过统计就能把噪点和细节分开——这不是猜,这是算。
注意: 多帧降噪不是万能的。如果场景中有快速运动物体(比如行人、车辆),直接叠加会产生「鬼影」。这时候需要做运动估计和补偿,或者用更聪明的融合策略。这部分我们后面章节会详细讲。
知识体系总览
下面这张图,帮你快速建立本章的知识框架:
避坑指南
我刚开始做多帧降噪时,犯过几个低级错误,分享给你:
- 没做对齐就直接平均——结果边缘全糊了。后来我才知道,哪怕是三脚架拍摄,微小的震动也会导致像素级偏移。
- 帧数越多越好? 不一定。超过 16 帧后,降噪收益递减,但计算量线性增长。我一般用 4~8 帧,性价比最高。
- 忽略运动物体——拍夜景时有个行人走过,结果合成出来一个半透明鬼影。后来我加了运动检测,只对静止区域做多帧融合。
一个小技巧: 如果你不确定当前场景适不适合多帧降噪,先拍一张单帧看看。如果单帧噪点已经很少,多帧的收益不大;如果单帧全是噪点,多帧就是救星。