2、多帧融合原理:多帧曝光序列的采集策略、帧对齐与配准、融合权重计算
多帧融合技术的核心在于通过采集多张不同曝光参数的帧,经过精确对齐与智能权重分配,合成一张高动态范围、低噪声的最终图像。本章深入剖析这一流程的三个关键环节:采集策略决定了输入数据的质量与冗余度;帧对齐与配准消除了手持拍摄或物体运动带来的像素偏移;融合权重计算则决定了各帧在最终图像中的贡献比例。
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 | 提亮暗部,降低阴影噪声 |
2.1.2 帧间隔与运动鲁棒性
帧间隔(Frame Interval)决定了多帧序列的总采集时长。间隔越短,帧间运动位移越小,对齐越容易;但过短的间隔可能导致传感器读出带宽不足。
- 零间隔(Burst Mode): 连续快速拍摄,帧间间隔仅受限于传感器读出时间(通常 10~30ms)。适用于运动场景,但对齐算法压力小。
- 带间隔采集: 在每帧之间插入固定延迟(如 50~100ms),用于等待AWB/AF稳定,或配合闪光灯充电。适用于静态场景。
- 自适应策略: 通过陀螺仪(Gyro)检测运动幅度,动态调整帧间隔。运动大时缩短间隔,运动小时延长间隔以降低噪声。
2.2 帧对齐与配准
由于手持微动、物体运动或卷帘快门效应,多帧序列中的同一像素点在不同帧中会偏移。帧对齐的目标是计算帧间的运动矢量场(Motion Field),并将所有帧变换到参考帧(通常为正常曝光帧)的坐标系下。
2.2.1 对齐层级与算法选择
| 对齐层级 | 适用场景 | 典型算法 | 计算量 |
|---|---|---|---|
| 全局平移 | 三脚架、纯手持平移 | 相位相关、互相关 | 低 |
| 仿射变换 | 旋转、缩放、小幅度倾斜 | RANSAC + 特征匹配 | 中 |
| 局部光流 | 物体运动、复杂场景 | Lucas-Kanade、Farneback | 高 |
| 深度/网格对齐 | 大视差、近景物体 | MeshFlow、PatchMatch | 极高 |
2.2.2 多分辨率金字塔对齐流程
为了兼顾精度与速度,工业界普遍采用多分辨率金字塔策略:从低分辨率层估计大尺度运动,再逐层向上细化。
- 构建高斯金字塔: 对参考帧和待对齐帧分别下采样,生成 3~5 层金字塔。
- 顶层粗估计: 在最低分辨率层(如 1/16 尺寸)使用相位相关或块匹配,计算初始位移。
- 逐层上采样与细化: 将上一层的运动矢量上采样后作为当前层的初始值,在当前层进行小范围搜索(如 ±2 像素)修正。
- 亚像素插值: 在最高分辨率层使用双线性或双三次插值,将运动矢量精度提升到 1/4 或 1/8 像素。
- 运动补偿: 根据最终运动矢量场,对待对齐帧进行 warp 变换,生成对齐后的图像。
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
2.3.3 权重图可视化与后处理
直接使用原始权重可能导致融合结果出现接缝或亮度跳变。因此需要对权重图进行引导滤波或双边滤波,使其在边缘处保持锐利,在平坦区域平滑过渡。
2.4 本章小结
多帧融合的三大支柱——采集策略、帧对齐、权重计算——相互耦合。采集策略决定了帧间位移的大小与信噪比基础;帧对齐的精度直接影响融合后鬼影的严重程度;权重计算则决定了最终图像的动态范围与细节保留能力。在 Android 相机系统中,这三部分通常由 HAL 层的算法库(如 Qualcomm MCTF、MediaTek AI-HDR)或 ISP 流水线中的专用硬件模块协同完成。