2、多帧融合技术概述

好,咱们进入正题。多帧融合,说白了就是——拍多张,合成一张。

你可能会问:拍一张不就行了,干嘛费劲拍好几张?嗯,这里有个关键问题:夜景太暗了。单张照片要么噪点满天飞,要么糊成一片。多帧融合就是来解决这个矛盾的。

2.1 什么是多帧融合

多帧融合,也叫多帧合成或多帧叠加。它是指:在短时间内连续拍摄多张同一场景的照片,然后通过算法将它们合并成一张画质更好的照片。

我习惯把它比作「信息拼图」。每一帧都携带了场景的部分信息——有的帧细节清晰但噪点多,有的帧亮度均匀但边缘模糊。融合算法要做的,就是把每帧的「优点」挑出来,拼成一张完整的、高质量的图像。

核心思想:用时间换质量。多花几十毫秒的拍摄时间,换来信噪比提升 6-12dB、动态范围扩展 2-3EV。

举个例子。我在项目中调试过一款旗舰机的夜景模式,默认拍 6 帧。用户按下快门后,手机其实在 0.3 秒内连拍了 6 张。你看到的成片,是这 6 张融合后的结果。单看其中任何一帧,噪点都挺明显的,但融合后画面干净多了。

2.2 为什么需要多帧融合

原因其实就三个字:不够用。

单帧夜景的痛点,我列个表你就明白了:

问题 单帧表现 多帧融合如何解决
噪点多 ISO 3200 以上,暗部全是彩色噪点 多帧平均,随机噪声被抑制,信噪比提升 √N 倍
动态范围窄 高光过曝、暗部死黑,细节全丢 不同曝光帧互补,亮暗细节都能保留
手持模糊 快门一慢,手一抖,画面就糊 短曝光多帧 + 对齐,等效长曝光但不糊
细节不足 暗部纹理被噪声淹没,完全看不清 多帧信息叠加,纹理信噪比提升,细节更清晰

我曾经踩过一个坑:某款机型在极暗光下(0.1 lux),单帧 ISO 飙到 6400,画面基本没法看。后来改用 8 帧融合,每帧 ISO 降到 800,融合后信噪比提升了将近 9dB。效果立竿见影。

小提示:多帧融合不是万能的。如果场景中有快速运动物体(比如行人、车灯),融合后可能出现鬼影。这时候就需要运动检测和去鬼影算法来兜底。后面章节我会详细讲。

2.3 多帧融合的基本流程

多帧融合的流程,我习惯分成 5 步。你想想看,就像做一道菜:先备料、再预处理、然后下锅、调味、最后装盘。每一步都有讲究。

  1. 多帧采集:连续拍摄 N 帧(通常 4-8 帧),每帧曝光参数可能不同(短曝光、中曝光、长曝光)。
  2. 帧对齐:由于手持抖动或场景运动,帧与帧之间存在偏移。需要做全局对齐(仿射变换)和局部对齐(光流)。
  3. 运动检测:找出帧间不一致的区域(运动物体、闪烁光源),生成运动掩膜,防止融合时出现鬼影。
  4. 融合合成:将对齐后的帧按权重叠加。权重取决于像素的亮度、梯度、噪声水平等。常见方法有:均值融合、金字塔融合、基于噪声模型的加权融合。
  5. 后处理:融合后的图像可能还有残留噪声或伪影,需要做去噪、锐化、色调映射等。

下面这张图,是我自己画的多帧融合流程框架,你看一眼就能记住整体脉络:

多帧融合基本流程 多帧采集 帧对齐 运动检测 融合合成 后处理 关键说明: • 多帧采集:通常 4-8 帧,曝光参数可不同(短/中/长曝光组合) • 帧对齐:全局对齐(仿射变换)+ 局部对齐(光流),精度要求亚像素级 • 运动检测:生成运动掩膜,防止鬼影;融合合成:按权重叠加,权重取决于亮度/梯度/噪声 • 后处理:残留噪声去除、锐化、色调映射,输出最终成片

2.4 各步骤的要点与坑

流程看着简单,但每个步骤都有不少细节。我挑几个重点说说:

多帧采集

采集策略直接影响融合效果。我常用的策略有两种:

  • 固定曝光:所有帧曝光参数相同,适合静态场景,融合后信噪比提升明显。
  • 多曝光:短帧保高光、长帧提暗部,适合大光比场景(比如夜景灯光)。

注意:帧数不是越多越好。帧数多了,总拍摄时间变长,手持抖动和运动模糊的风险也增加。我一般控制在 4-8 帧,超过 10 帧收益递减明显。

帧对齐

对齐精度直接影响融合质量。我见过不少项目,融合效果差,查到最后发现是对齐没做好。

  • 全局对齐:用仿射变换或单应性矩阵,补偿旋转和缩放。适合整体偏移。
  • 局部对齐:用光流法,逐像素对齐。适合有局部运动的场景(比如树叶晃动)。

我个人习惯先做全局对齐,再做局部对齐。这样效率高,精度也够。

运动检测

运动检测的目的是生成「运动掩膜」——标记出哪些区域有运动。融合时,运动区域的权重降低,或者直接用某一帧替换,避免鬼影。

我曾经遇到一个场景:夜景中有人挥手,融合后手臂变成了半透明的「鬼影」。后来加了运动检测,把运动区域的融合权重降到 0,只用单帧,问题就解决了。

融合合成

融合不是简单的平均。我常用的方法是:

  • 基于噪声模型的加权融合:根据每帧的噪声水平分配权重。噪声低的帧权重大,噪声高的帧权重小。
  • 金字塔融合:在多个尺度上融合,低频用平均,高频用选择(选梯度最大的)。能保留更多细节。

经验之谈:融合权重不要用硬阈值,用软权重(0-1 连续值)。硬阈值容易在边界处产生接缝,软权重过渡自然。

后处理

融合后的图像,通常还有少量残留噪声。我习惯用非局部均值去噪(NLM)或 BM3D 做最后一步清理。然后做一次自适应锐化,让纹理更清晰。

2.5 小结

多帧融合的核心逻辑,其实就是「取长补短」。每一帧都有它的长处和短处,融合算法就是要把长处留下来、把短处去掉。

你记住这 5 步流程:采集 → 对齐 → 检测 → 融合 → 后处理。后面几章,我会把每一步拆开细讲,包括具体的算法原理和代码实现。