4、多帧采集策略:连拍模式、曝光时间选择、帧率与运动模糊的权衡

多帧融合夜景,说白了就是「用时间换画质」。你让传感器连续拍好几张,然后算法把它们叠在一起。但这里有个核心矛盾——拍得越多,手抖、物体移动带来的模糊风险就越大。怎么平衡?这就是本章要聊的事。

我个人习惯把采集策略拆成三个维度:连拍模式(怎么拍)、曝光时间(每张拍多久)、帧率与运动模糊(拍多快、糊不糊)。这三个点互相牵制,你调一个,另外两个就得跟着变。

4.1 连拍模式:不是按快门越快越好

连拍模式听起来简单——按住快门,手机咔咔咔拍一堆。但实际工程里,连拍模式的选择直接影响融合效果。

常见的连拍模式有三种:

模式 触发方式 帧间隔 典型帧数 适用场景
Burst(高速连拍) 按住快门 30-60ms 10-20帧 手持夜景、光线较暗
ZSL(零快门延迟) 预缓冲 + 按下瞬间 16-33ms 3-5帧 抓拍、运动物体
Manual(手动间隔) 程序控制 100-500ms 3-8帧 三脚架、长曝光

我在项目中遇到过一个问题:用 Burst 模式拍夜景,帧间隔太短,相邻帧之间的噪声模式高度相关,融合后降噪效果反而变差。你想想看,噪声要是长得一模一样,叠加起来不就变成固定图案噪声了吗?

我的经验:手持夜景优先用 Burst 模式,但帧间隔不要低于 40ms。太快的连拍会让噪声相关性升高,融合增益下降。我一般控制在 50-60ms 一帧,既能保证手持稳定,又能让噪声随机性足够。

4.2 曝光时间选择:亮度和噪声的博弈

曝光时间越长,进光量越大,单帧信噪比越高。但代价是什么?运动模糊、手抖模糊、高光过曝。反过来,曝光时间太短,单帧太暗,融合后虽然不糊,但噪声压不下去。

这里有个关键指标叫 单帧信噪比(SNR)。我一般用这个公式估算:

SNR_single = 20 * log10(signal / sqrt(signal + dark_noise^2))

多帧融合后,理论 SNR 提升是:

SNR_fusion = SNR_single + 10 * log10(N)   // N 为帧数

举个例子:单帧 SNR 是 20dB,融合 4 帧,理论提升 6dB,达到 26dB。但如果你把单帧曝光时间减半,单帧 SNR 掉到 17dB,融合 8 帧才能回到 26dB。问题是——8 帧的采集时间更长,运动模糊风险更大。

核心权衡:曝光时间 vs 帧数。长曝光 + 少帧 vs 短曝光 + 多帧,哪个更好?我的结论是:手持场景下,短曝光 + 多帧更安全。因为单帧模糊是不可逆的,而多帧融合至少能通过对齐算法补救一部分。

4.3 帧率与运动模糊:那个躲不开的敌人

帧率决定了相邻帧之间的时间间隔。帧率越高,帧间隔越短,运动物体在相邻帧之间的位移越小,对齐算法越容易处理。但高帧率意味着每帧的曝光时间被压缩,单帧质量下降。

运动模糊主要来自两个源头:

  • 全局运动模糊:手抖、相机移动。所有像素一起糊。
  • 局部运动模糊:行人、汽车、树叶。只有运动区域糊。

我曾经踩过一个坑:用 30fps 连拍夜景,曝光时间设到 1/15 秒。结果拍出来的帧,每张都有明显的全局运动模糊。对齐算法虽然能配准,但融合后边缘还是发虚。后来我把曝光时间降到 1/30 秒,帧率提到 60fps,虽然单帧暗了一点,但融合后清晰度反而更好。

注意:运动模糊不是「后期能完全修复」的。对齐算法可以补偿平移和旋转,但无法恢复被模糊抹掉的高频细节。所以采集阶段一定要控制好单帧的模糊程度。我给自己定了个规矩:手持夜景,单帧曝光时间不超过 1/(焦距 * 2)秒。

4.4 采集策略的工程决策树

实际项目中,我不会死记硬背参数。我习惯画一个决策树,根据场景动态调整:

多帧采集策略决策树 场景判断 手持 三脚架 有运动物体 静止场景 ZSL模式 曝光≤1/30s Burst模式 曝光≤1/15s Manual模式 曝光0.5-2s 帧间隔100-300ms 关键参数速查 • 手持+运动:ZSL模式,曝光≤1/30s,帧间隔16-33ms,3-5帧 • 手持+静止:Burst模式,曝光≤1/15s,帧间隔50-60ms,8-12帧 • 三脚架:Manual模式,曝光0.5-2s,帧间隔100-300ms,3-6帧 • 所有场景:单帧模糊半径不超过2像素,否则对齐算法救不回来

4.5 实战中的避坑指南

说了这么多理论,最后分享几个我踩过的坑:

  • 别迷信高帧率。 我曾经为了减少运动模糊,把帧率提到 120fps,结果每帧曝光时间只有 1/120 秒,单帧 SNR 掉到 12dB,融合 10 帧都救不回来。后来我改成 60fps + 1/30 秒曝光,效果反而更好。
  • 注意帧间曝光一致性。 自动曝光算法在连拍时可能会逐帧调整曝光参数,导致帧间亮度跳变。融合后会出现「闪烁」伪影。我习惯在连拍时锁定 AE(自动曝光),用固定曝光参数拍完一组。
  • 运动物体的处理策略。 如果场景里有行人、汽车,不要指望对齐算法能完美配准。我的做法是:检测运动区域,对这些区域只取中间帧,不参与融合。虽然会损失一点降噪效果,但至少不会出现鬼影。
一句话总结:多帧采集没有万能参数。手持夜景,我推荐 Burst 模式 + 1/15 秒曝光 + 50ms 帧间隔 + 8 帧。遇到运动物体,切 ZSL 模式 + 1/30 秒曝光 + 5 帧。三脚架?随便拍,但注意别让帧间隔太长导致场景变化。