3. 多帧采集策略:连拍模式、曝光包围(AEB)、帧率与对齐精度的权衡、运动场景检测

多帧降噪和 HDR 合成,第一步不是算法,而是「怎么拍」。

你想想看,如果采集的帧本身就糊了、抖了、或者曝光完全不对,后面算法再牛也救不回来。我个人习惯把采集策略称为「地基工程」——地基没打好,楼盖得再高也是危房。

3.1 连拍模式:简单粗暴,但坑不少

连拍模式是最直观的多帧采集方式。按下快门,相机以最高帧率连续拍摄 N 张,然后从中选出最好的几张进行合成。

核心思路: 用时间换信噪比。单帧噪点大,多帧平均后噪点按 √N 降低。

但连拍有个致命问题——手持抖动。我曾在项目中测试过,手持 1/30s 连拍 8 张,结果有 3 张的位移超过 2 个像素。对齐算法虽然能纠正,但代价是边缘画质下降。

连拍模式的适用场景:

  • 三脚架固定拍摄: 夜景建筑、星空、长曝光。这时候连拍几乎零风险。
  • 光线极暗但主体静止: 比如室内静物、书本翻拍。
  • 需要极低噪点的场景: 天文摄影爱好者常用连拍 16 张甚至 32 张叠加。
避坑指南: 我曾经在手持夜景模式下用连拍 6 张,结果合成后出现重影。后来发现是连拍间隔太长(约 0.2s),手已经自然移动了。建议连拍间隔控制在 1/60s 以内,或者直接用电子快门。

3.2 曝光包围(AEB):HDR 的灵魂

曝光包围,说白了就是拍三张或五张不同曝光的照片——一张欠曝(保留高光细节)、一张正常、一张过曝(保留暗部细节)。然后通过 HDR 合成算法把它们融合成一张动态范围超大的照片。

标准 AEB 参数配置:

档位 曝光补偿 (EV) 作用
欠曝 -2.0 EV 保留天空、灯光等高光细节
正常 0.0 EV 主体正常曝光
过曝 +2.0 EV 提亮阴影、暗部细节

嗯,这里要注意:AEB 的步长不是越大越好。±2EV 是主流,但如果你拍的是大光比场景(比如日落),我建议用 ±3EV 甚至 ±4EV。不过步长越大,对齐难度也越大——因为不同曝光帧之间的亮度差异会导致特征点匹配失败。

我的经验: 在手机 HDR 模式中,我通常用 3 帧 AEB(-2, 0, +2)。但如果场景中有运动物体(比如行人),我会降到 2 帧(-1.5, +1.5),减少鬼影风险。

3.3 帧率与对齐精度的权衡

这是个经典 trade-off。帧率越高,帧间运动越小,对齐越容易;但高帧率意味着单帧曝光时间短,信噪比低。反过来,低帧率单帧画质好,但帧间位移大,对齐算法压力大。

帧率 vs 对齐精度关系表:

帧率 (fps) 单帧曝光时间 帧间位移风险 对齐难度 推荐场景
30 ~33ms 低 低 手持夜景、运动场景
15 ~66ms 中 中 一般手持夜景
8 ~125ms 高 高 三脚架、静止场景
4 ~250ms 极高 极高 仅限三脚架

我建议的黄金法则:手持夜景用 15-30fps,三脚架用 8-15fps。如果帧率低于 10fps,必须配合陀螺仪或光流做运动补偿,否则对齐算法会崩。

3.4 运动场景检测:动态与静态的博弈

多帧合成最怕什么?运动物体。行人走过、树叶摇晃、车灯移动——这些都会在合成结果中留下鬼影。

运动场景检测的核心思路是:区分「静态区域」和「动态区域」。静态区域可以放心多帧平均,动态区域则需要特殊处理——要么只取一帧,要么用运动补偿。

运动检测的常用方法:

  1. 帧差法: 计算相邻帧的像素差,超过阈值就标记为运动区域。简单,但对光照变化敏感。
  2. 光流法: 计算每个像素的运动矢量。精度高,但计算量大,手机端跑不动。
  3. 特征点匹配 + 单应性矩阵: 先找特征点,再算全局运动。适合手持抖动,但对局部运动不敏感。
  4. 深度学习法: 用 CNN 直接输出运动掩码。效果好,但需要训练数据和 NPU 支持。
实战建议: 我在项目中用的是「混合策略」——先用帧差法快速筛出疑似运动区域,再用光流法在疑似区域做精细判断。这样既保证了实时性,又避免了误检。

举个例子,假设你拍夜景时有个行人走过。帧差法会标记出行人区域,然后算法只对该区域取单帧,其他区域正常多帧平均。最终结果里行人可能稍微模糊,但至少没有鬼影。

3.5 知识体系总览

下面这张图总结了多帧采集策略的核心逻辑和决策路径:

多帧采集策略决策流程 多帧采集策略 连拍模式 曝光包围 (AEB) 手持抖动风险 帧率 ≥ 15fps 步长 ±2~4EV 对齐难度随步长增大 帧率 vs 对齐精度 高帧率 → 易对齐 → 低信噪比 低帧率 → 难对齐 → 高信噪比 运动场景检测 → 鬼影抑制 帧差法 / 光流法 / 深度学习 混合策略:先粗筛后精判

3.6 实战中的决策树

最后,我分享一个在实际项目中总结的决策树。当你拿到一个夜景拍摄需求时,可以按这个思路快速选择采集策略:

  1. 场景中有运动物体吗?
    • 有 → 启用运动检测,动态区域只取单帧
    • 没有 → 正常多帧平均
  2. 手持还是三脚架?
    • 手持 → 帧率 ≥ 15fps,连拍 4-6 帧
    • 三脚架 → 帧率 8-10fps,连拍 8-16 帧
  3. 需要 HDR 吗?
    • 需要 → 启用 AEB,步长 ±2EV,3 帧
    • 不需要 → 固定曝光,只做多帧降噪
  4. 对齐算法能跟上吗?
    • 能 → 放心采集
    • 不能 → 降低帧数或提高帧率
一句话总结: 多帧采集没有银弹。连拍、AEB、帧率、运动检测——这四个维度需要根据场景动态调整。我个人的习惯是「先保守,再激进」:先保证对齐成功,再逐步增加帧数和曝光步长。