1. HDR成像概述:什么是高动态范围成像、多曝光融合的基本原理、鬼影问题的由来

各位同学好,我是这门课的主讲。今天咱们聊聊HDR成像的底层逻辑。说实话,我最早接触HDR是在2015年做手机相机算法的时候,那时候大家还在拼像素数量,很少有人关注动态范围。直到有一次我在逆光场景下拍了一张照片——天空一片死白,人脸一片死黑——我才意识到,传统成像的短板到底在哪。

1.1 什么是高动态范围成像

先问一个问题:你见过最亮的物体和最暗的物体同时出现在一个画面里吗?比如透过窗户看室外的阳光,室内还有一盏台灯。人眼能同时看清窗外的云和室内的书本,但相机不行。为什么?

因为人眼的动态范围大约在20档左右,而普通相机的传感器只有10-12档。动态范围,说白了就是传感器能同时记录的最亮和最暗区域的比值。比值越大,细节越丰富。

动态范围定义:传感器能同时记录的最大信号与最小信号的比值,通常用档位(EV)或分贝(dB)表示。

1 EV = 2倍亮度变化 ≈ 6 dB

高动态范围成像(HDR Imaging)就是通过技术手段,把有限动态范围的传感器拍出来的多张图片,合成一张动态范围更广的图像。我习惯把它比作「拼图」——每张图只负责一个亮度区间,合在一起就是完整的亮度信息。

成像方式 动态范围 典型场景
单帧LDR 10-12 EV 均匀光照、阴天
多帧HDR 16-20 EV 逆光、夜景、室内外混合
人眼 ~20 EV 几乎所有自然场景

1.2 多曝光融合的基本原理

多曝光融合,就是HDR最核心的实现手段。你想想看,既然单张照片拍不全,那就拍多张——一张欠曝保留高光细节,一张正常曝光保留中间调,一张过曝保留暗部细节。然后把这3张(或更多)融合成一张。

具体流程是这样的:

  1. 采集多帧:固定相机位置,改变曝光时间或ISO,连续拍摄2-5帧。
  2. 对齐:因为手持拍摄会有微小抖动,需要先做图像配准。
  3. 权重计算:对每个像素,根据其亮度值分配权重。比如欠曝帧的亮部权重高,过曝帧的暗部权重高。
  4. 融合:加权平均,生成HDR结果。

我在项目中遇到过一个问题:如果直接用线性加权,融合后的图像会发灰。后来发现是因为权重函数没调好。常用的权重函数有三种:

权重类型 公式 特点
高斯权重 w(x) = exp(-(x-μ)²/2σ²) 中间调权重高,两端低
三角权重 w(x) = 1 - |x-μ|/L 线性衰减,计算快
饱和权重 w(x) = 1 - (x/255)² 抑制过曝区域

我的经验:实际工程中,我建议用高斯权重配合饱和权重做组合。高斯保证中间调平滑,饱和权重压制高光溢出。别只用一种,效果会偏硬。

下面这张图展示了多曝光融合的核心流程:

多曝光融合流程图 欠曝帧 正常帧 过曝帧 图像对齐(配准) 权重计算 加权融合 → HDR 关键点:对齐精度直接影响融合质量,权重函数决定细节保留效果

1.3 鬼影问题的由来

好,前面说的都是理想情况。但现实很骨感——你拍多张照片的时候,场景里的物体可能在动。比如风吹树叶、行人走过、汽车驶过。这些运动物体在每帧中的位置不一样,融合之后就会出现半透明的重影,这就是鬼影(Ghosting)。

为什么会这样?我举个例子:

  • 第1帧(欠曝):行人站在左边
  • 第2帧(正常):行人走到中间
  • 第3帧(过曝):行人走到右边

融合之后,行人同时出现在左、中、右三个位置,像鬼一样飘着。这就是鬼影。

注意:鬼影不是噪声,也不是模糊。它是运动物体在多帧融合时产生的伪影。我曾经在一个安防项目中吃过亏——监控场景里有人走动,HDR融合后人脸全是重影,根本没法做识别。后来才意识到,必须先做运动检测和去鬼影处理。

鬼影的严重程度取决于三个因素:

因素 影响 典型场景
运动速度 越快越严重 行人、车辆、飞鸟
帧间间隔 间隔越大越严重 长曝光HDR(夜景)
运动区域大小 越大越明显 大面积树叶晃动

所以,去鬼影就成了HDR融合中绕不开的一环。这门课后面会详细讲各种去鬼影方法——从简单的运动检测到深度学习方案。但今天先记住一点:没有去鬼影的HDR,在动态场景下就是废片。

一个小技巧:如果你只是做实验,可以用三脚架固定相机,拍静态场景,这样就不会有鬼影。但真实产品里,用户都是手持拍摄,运动物体无处不在。所以去鬼影不是可选项,是必选项。