2、多帧融合原理:多帧曝光序列的采集策略、帧对齐与配准、融合权重计算

多帧融合技术的核心在于通过采集多张不同曝光参数的帧,经过精确对齐与智能权重分配,合成一张高动态范围、低噪声的最终图像。本章深入剖析这一流程的三个关键环节:采集策略决定了输入数据的质量与冗余度;帧对齐与配准消除了手持拍摄或物体运动带来的像素偏移;融合权重计算则决定了各帧在最终图像中的贡献比例。

核心概念速览: 多帧融合 ≠ 简单平均。它是在时间域与曝光域上的联合优化,目标是最大化信噪比(SNR)与动态范围(DR)。

2.1 多帧曝光序列的采集策略

采集策略直接决定了融合的上限。不同的场景(静态、运动、夜景)需要不同的策略组合。Android Camera2 API 通过 CaptureRequest 控制每一帧的曝光时间、灵敏度(ISO)和帧间隔。

2.1.1 曝光时间与ISO的分配策略

典型的 HDR 多帧序列由三帧组成:欠曝(保留高光细节)、正常曝光(保留中间调)、过曝(保留暗部细节)。现代算法已扩展到 5~7 帧,以覆盖更宽的动态范围。

帧类型 曝光时间(相对值) ISO(相对值) 主要目标
欠曝帧(EV-2) 1/4× 100 保护高光纹理,避免过曝
正常帧(EV0) 1× 200 提供主体亮度与色彩基准
过曝帧(EV+2) 4× 400 提亮暗部,降低阴影噪声
策略要点: 优先调整曝光时间而非ISO。延长曝光时间可增加光子收集量,提升信噪比;而提高ISO会放大读出噪声。在手持夜景模式下,需在ISO与曝光时间之间做权衡,避免因手抖导致帧间位移过大。

2.1.2 帧间隔与运动鲁棒性

帧间隔(Frame Interval)决定了多帧序列的总采集时长。间隔越短,帧间运动位移越小,对齐越容易;但过短的间隔可能导致传感器读出带宽不足。

  • 零间隔(Burst Mode): 连续快速拍摄,帧间间隔仅受限于传感器读出时间(通常 10~30ms)。适用于运动场景,但对齐算法压力小。
  • 带间隔采集: 在每帧之间插入固定延迟(如 50~100ms),用于等待AWB/AF稳定,或配合闪光灯充电。适用于静态场景。
  • 自适应策略: 通过陀螺仪(Gyro)检测运动幅度,动态调整帧间隔。运动大时缩短间隔,运动小时延长间隔以降低噪声。
多帧曝光序列采集时序图(三帧策略) 欠曝帧 EV-2 Δt₁ 正常帧 EV0 Δt₂ 过曝帧 EV+2 融合输出 总采集时间 = 曝光时间₁ + Δt₁ + 曝光时间₂ + Δt₂ + 曝光时间₃

2.2 帧对齐与配准

由于手持微动、物体运动或卷帘快门效应,多帧序列中的同一像素点在不同帧中会偏移。帧对齐的目标是计算帧间的运动矢量场(Motion Field),并将所有帧变换到参考帧(通常为正常曝光帧)的坐标系下。

2.2.1 对齐层级与算法选择

对齐层级 适用场景 典型算法 计算量
全局平移 三脚架、纯手持平移 相位相关、互相关 低
仿射变换 旋转、缩放、小幅度倾斜 RANSAC + 特征匹配 中
局部光流 物体运动、复杂场景 Lucas-Kanade、Farneback 高
深度/网格对齐 大视差、近景物体 MeshFlow、PatchMatch 极高

2.2.2 多分辨率金字塔对齐流程

为了兼顾精度与速度,工业界普遍采用多分辨率金字塔策略:从低分辨率层估计大尺度运动,再逐层向上细化。

  1. 构建高斯金字塔: 对参考帧和待对齐帧分别下采样,生成 3~5 层金字塔。
  2. 顶层粗估计: 在最低分辨率层(如 1/16 尺寸)使用相位相关或块匹配,计算初始位移。
  3. 逐层上采样与细化: 将上一层的运动矢量上采样后作为当前层的初始值,在当前层进行小范围搜索(如 ±2 像素)修正。
  4. 亚像素插值: 在最高分辨率层使用双线性或双三次插值,将运动矢量精度提升到 1/4 或 1/8 像素。
  5. 运动补偿: 根据最终运动矢量场,对待对齐帧进行 warp 变换,生成对齐后的图像。
多分辨率金字塔对齐流程 参考帧金字塔 Level 0 (原图) Level 1 L2 待对齐帧金字塔 Level 0 (原图) Level 1 L2 粗估计 → 上采样 → 细化 对齐后帧序列 关键:低分辨率层提供鲁棒性,高分辨率层提供精度
对齐失败场景: 当场景中存在大范围遮挡、运动模糊严重或帧间位移超过图像尺寸的 20% 时,基于光流的对齐算法可能发散。此时应回退到全局仿射变换,或丢弃该帧以避免融合伪影。

2.3 融合权重计算

对齐完成后,需要为每一帧的每个像素计算融合权重。权重的设计目标:让每帧中曝光最合适的像素贡献最大,同时抑制噪声和运动不一致区域。

2.3.1 权重因子分解

最终权重通常由三个子权重的乘积构成:

  • 曝光质量权重(Well-exposedness Weight): 基于像素亮度与理想曝光区间的距离。通常使用高斯型函数:W_exp = exp(-(I - 0.5)² / (2σ²)),其中 I 为归一化亮度(0~1),σ 控制宽容度。
  • 对比度权重(Contrast Weight): 基于局部梯度或拉普拉斯响应。梯度大的区域(纹理丰富)赋予更高权重,避免融合后细节模糊。
  • 饱和度权重(Saturation Weight): 防止过曝区域(R/G/B 任一通道接近 1.0)或欠曝区域(接近 0.0)的色偏。通常使用通道间方差或最小-最大距离。

2.3.2 权重归一化与软混合

各帧权重计算后,需进行逐像素归一化,使所有帧在同一像素位置的权重之和为 1。然后执行加权求和:

// 伪代码:多帧融合加权求和
for each pixel (x, y):
    sum_weight = 0.0
    sum_color = (0.0, 0.0, 0.0)
    for each frame f:
        w = W_exp[f][x][y] * W_contrast[f][x][y] * W_sat[f][x][y]
        sum_weight += w
        sum_color += w * frame_f[x][y]
    fused[x][y] = sum_color / sum_weight
工程优化: 为避免除零,在 sum_weight 上添加一个极小值 ε(如 1e-6)。同时,为防止运动区域产生鬼影,可在权重中引入运动一致性惩罚项:若某帧在局部区域与参考帧差异过大,则降低该区域权重。

2.3.3 权重图可视化与后处理

直接使用原始权重可能导致融合结果出现接缝或亮度跳变。因此需要对权重图进行引导滤波或双边滤波,使其在边缘处保持锐利,在平坦区域平滑过渡。

融合权重计算与归一化流程 欠曝帧 正常帧 过曝帧 权重计算 W_exp W_contrast W_saturation × 乘积 引导滤波 逐像素 归一化 ΣW = 1 加权求和 HDR 融合帧 权重图经过引导滤波后,边缘保持锐利,平坦区域平滑,避免融合伪影

2.4 本章小结

多帧融合的三大支柱——采集策略、帧对齐、权重计算——相互耦合。采集策略决定了帧间位移的大小与信噪比基础;帧对齐的精度直接影响融合后鬼影的严重程度;权重计算则决定了最终图像的动态范围与细节保留能力。在 Android 相机系统中,这三部分通常由 HAL 层的算法库(如 Qualcomm MCTF、MediaTek AI-HDR)或 ISP 流水线中的专用硬件模块协同完成。

实践建议: 在集成多帧融合算法时,建议先使用离线数据集(如 HDR+ Burst Dataset)验证对齐与权重模块的鲁棒性,再移植到 Android 相机 HAL 层进行实时调优。重点关注运动场景下的鬼影抑制与低光场景下的噪声平衡。