2、多帧合成技术原理:从信号处理角度理解叠加、对齐与融合

多帧合成,说白了就是「拍一堆,合成一张」。但为什么不是简单地把几张图叠在一起就行?这里面的门道,得从信号处理的角度来拆解。

我刚开始接触这个领域时,也以为就是做个平均。结果第一次在暗光下拍夜景,合成出来的照片全是重影,还不如单张。后来才明白,多帧合成的核心是三个步骤:叠加、对齐、融合。每一步都有它的物理意义和数学逻辑。

2.1 叠加:为什么能降噪?

先问一个问题:为什么多张照片叠加能降低噪点?

这得从噪声的统计特性说起。传感器上的噪声,尤其是暗光下的热噪声和读出噪声,基本是随机且独立的。而信号(你拍的主体)是确定且相关的。

假设你拍了 N 张完全对齐的照片,每张照片在同一个像素位置的亮度值为:

I_i = S + N_i

其中 S 是真实信号,N_i 是第 i 张的噪声。噪声的均值为 0,标准差为 σ。

当你把这 N 张照片叠加平均:

I_avg = (1/N) * Σ(S + N_i) = S + (1/N) * ΣN_i

根据大数定律,噪声的均值会趋近于 0,而噪声的标准差会变成 σ/√N。

关键结论:叠加 N 张照片,信噪比提升 √N 倍。4 张照片,信噪比提升 2 倍;16 张照片,提升 4 倍。

我在项目中遇到过一个问题:有人觉得拍 30 张比 15 张好一倍,其实不是。信噪比的提升是平方根关系,拍到后面边际效益递减。我个人习惯是暗光下拍 8-16 张,再多就划不来了。

2.2 对齐:手持拍摄的噩梦

叠加的前提是「完全对齐」。但手持拍摄,怎么可能不动?

你想想看,哪怕你屏住呼吸,心跳都会让手机有微小的位移。更别说风吹、手抖、按快门的瞬间冲击。这些位移如果不处理,叠加出来的照片就是重影。

对齐算法要解决两个问题:

  • 全局位移:整个画面平移或旋转(比如你身体轻微晃动)
  • 局部位移:画面中某个物体在动(比如树叶被风吹、行人走过)

我常用的对齐策略分两步走:

  1. 粗对齐:用相位相关法或特征点匹配,估算全局的平移和旋转量。这一步速度快,能解决大部分手持抖动。
  2. 精对齐:用光流法或块匹配,逐像素计算局部运动。这一步计算量大,但能处理移动物体。

我的经验:粗对齐用下采样后的低分辨率图做,速度快很多。精对齐只在运动区域做,别全图跑一遍,否则手机发烫。

这里有个坑——我曾经在拍夜景人像时,发现人脸总是糊的。后来排查发现,是人物轻微的呼吸导致面部轮廓有像素级的位移。普通的块匹配算法把这种位移当成了噪声去平均,结果反而模糊了。后来我改用基于网格的局部对齐,把画面分成 16x16 的网格,每个网格独立计算运动矢量,再插值平滑,才解决了这个问题。

2.3 融合:不只是平均那么简单

对齐之后,怎么把多张图合成一张?

最简单的做法是像素级平均。但这样做有两个问题:

  • 如果某张图在某个区域对齐不准,平均后会出现鬼影
  • 所有像素一视同仁,暗部噪点虽然被压制了,但亮部细节也可能被平滑掉

所以,真正的融合算法要聪明得多。我把它分为三个层次:

融合策略 原理 适用场景 缺点
均值融合 所有像素等权平均 静态场景、三脚架拍摄 无法处理运动、鬼影
中值融合 取每个像素位置的中位数 有少量运动物体(如行人) 计算量大,细节有损失
加权融合 根据像素质量动态分配权重 手持暗光、复杂场景 算法复杂,需要质量评估

我个人最常用的是加权融合。具体来说,对每个像素位置,我计算它在各张图中的「质量分数」,包括:

  • 梯度强度:梯度大的区域说明细节丰富,权重应该高
  • 运动一致性:如果某张图在这个像素的运动矢量与周围不一致,说明对齐不准,权重降低
  • 曝光度:过曝或欠曝的像素权重降低

然后,每个像素的最终值就是各张图的加权和。这样做的好处是:暗部区域靠多张平均降噪,亮部区域靠梯度高的那张保留细节。

注意:加权融合的权重图一定要做高斯平滑,否则会出现拼接痕迹。我吃过这个亏——第一次实现时没平滑权重,结果合成出来的照片像打了马赛克。

2.4 核心流程:一张图看懂

下面这张图总结了多帧合成的完整信号处理流程。从多张输入到一张输出,每一步都在处理信号与噪声的博弈。

多帧合成信号处理流程 多帧输入 粗对齐 相位相关 / 特征匹配 精对齐 光流 / 块匹配 质量评估 梯度 / 运动 / 曝光 融合决策 动态权重分配 加权融合 逐像素加权求和 单帧输出 说明: • 粗对齐解决全局运动 • 精对齐处理局部运动 • 质量评估指导融合权重 避坑指南: 1. 对齐失败时不要强制融合,应丢弃该帧或降低其权重 2. 权重图必须做高斯平滑,否则出现拼接痕迹

2.5 信号处理视角的总结

从信号处理的角度看,多帧合成本质上是一个时域滤波过程:

  • 叠加是低通滤波,压制高频噪声
  • 对齐是信号配准,确保各帧的同一像素对应同一物理点
  • 融合是自适应加权,在降噪和保细节之间找平衡

这三个步骤缺一不可。对齐做不好,融合就是白搭;融合策略不对,叠加再多张也没用。

一句话总结:多帧合成不是简单的「拍多张求平均」,而是一个信号处理系统——对齐解决不确定性,融合解决非均匀性,叠加解决信噪比。