局部色调映射(Local Tone Mapping)

1. 引言

高动态范围(High Dynamic Range, HDR)成像技术的发展,使我们能够捕获远超传统显示设备亮度范围的场景信息。 然而,无论是显示器、手机屏幕还是纸质打印,其可显示的亮度范围都远小于真实世界与 HDR 图像的动态范围, 由此形成了所谓的“动态范围鸿沟”:我们记录到的信息远多于显示设备能够直接呈现的信息。

色调映射(Tone Mapping)正是为了解决这一问题而提出:在不改变显示设备物理能力的前提下,通过对图像亮度和对比度进行 非线性压缩,将 HDR 图像映射到低动态范围(Low Dynamic Range, LDR)空间, 同时尽可能保留重要的视觉细节和主观感受。与只根据全局统计量(如全局对数曲线、γ 曲线)的 “全局色调映射”不同,局部色调映射(Local Tone Mapping)会根据像素周围的局部上下文自适应地调整映射行为, 从而更好地保留局部对比度与纹理细节。

HDR 与显示设备动态范围图
图 1:HDR 场景亮度范围与显示设备动态范围。

1.1 HDR 成像与显示设备动态范围鸿沟

真实世界中的亮度范围可以跨越数个数量级:从夜空的暗弱星光到晴朗正午的阳光, 亮度比可能达到 105–106 以上。现代 HDR 相机和多曝光合成技术能够记录较宽的亮度范围, 以浮点或高位深格式进行存储。然而,主流显示设备的对比度和峰值亮度依然有限, 即使是 HDR 显示器,也难以完全还原真实场景的全部动态范围。

如果直接在 LDR 显示设备上线性显示 HDR 内容,要么高亮区域完全过曝、细节丢失, 要么暗部区域一片漆黑、人眼难以分辨。如何在有限动态范围内合理分配“亮度资源”, 使画面既有层次又可读,成为 HDR 显示的核心问题之一。

1.2 为什么需要色调映射与“局部”色调映射

传统的全局色调映射使用统一的非线性曲线(如对数、S 形曲线)对整幅图像进行压缩,它们可以相对简单地控制整体对比度和亮度, 但往往难以同时兼顾亮部和暗部的细节:

局部色调映射通过引入局部邻域信息,为不同空间位置设计不同的映射行为。 例如,在强背光场景中,局部色调映射可以在不过度压缩天空亮度的同时, 提高人物阴影区域的局部对比度,使面部细节更清晰。这种“空间自适应”的能力, 是局部方法相对于全局方法的主要优势。

全局 vs 局部色调映射效果示例照片
图 2:全局色调映射与局部色调映射的真实场景对比示例。

2. 色调映射基础

2.1 人眼视觉系统与对数响应特性

人眼视觉系统对亮度的主观感知并不是线性的。大量心理物理实验表明, 当物理亮度增加一个固定倍数时,人眼感受到的亮度变化大致相同, 这更接近对数响应特性。得益于此,人眼可以在非常宽的物理亮度范围内识别细节, 而感知上仍处于“可接受”的范围内。

在图像处理实践中,人眼感知特性通常通过以下方式加以近似:

色调映射的一个基本目标,是在有限动态范围内重建接近人眼感知的亮度分布 ——不仅仅是压缩物理亮度本身,而是要让压缩后的图像在视觉上仍然自然、易读。

2.2 全局色调映射 vs 局部色调映射

全局色调映射(Global Tone Mapping)可以理解为对所有像素使用同一条曲线: 输出亮度 L_out(x) 只依赖于输入亮度 L_in(x) 及 少量全局统计量(如全局平均亮度、最大亮度)。 这类方法实现简单、代价低,适合实时渲染和硬件实现。

局部色调映射(Local Tone Mapping)则引入空间依赖:某个像素的输出不仅取决于自身亮度, 还取决于其邻域的亮度分布、局部对比度、多尺度结构等。 简单来说,同样是亮度为 0.5 的像素,在暗背景区域和亮背景区域,可能会被映射成不同的输出亮度, 以更好地匹配人眼对局部场景的适应性。

许多局部方法都采用“基底 + 细节”的形式:首先用平滑滤波提取缓慢变化的亮度“基底”, 再从原图中减去基底得到细节分量;之后对基底进行强压缩, 对细节分量进行轻微压缩甚至适度增强;最后重组得到结果。 这种思路为后续大量算法提供了统一的框架。

2.3 典型数学形式与输入 / 输出空间

在工程实践中,一个完整的色调映射流程通常包括以下几个步骤:

线性化与亮度域处理流程示意图
图 3:从线性化到亮度域色调映射的典型处理流水线。

在后续各类局部色调映射算法中,虽然数学细节和实现方式各不相同, 但大多都可以嵌入到上述总体流水线中:先在线性亮度域完成核心运算, 再与色彩空间和显示设备特性结合,生成最终可视输出。

3. 局部色调映射的基本思想

3.1 保持局部对比度与细节的需求

人眼在观察一幅图像时,对局部对比度和边缘细节尤其敏感——哪怕整体对比度不高,只要局部结构清晰, 画面就会被认为“有细节、有质感”。从工程角度看,局部色调映射的目标可以概括为: 在压缩大尺度亮度变化的同时,尽量保留甚至略微增强局部对比度和高频细节。

这往往意味着在不同“空间频率”上采取不同策略:

3.2 基于 “基底 + 细节(Base/Detail)” 的分解框架

大多数局部色调映射算法都可以抽象为 “基底 + 细节” 分解框架:

Base/Detail 分解示意图
图 4:常见的 Base / Detail 分解流程。

工程实现中,选择何种滤波器来获得 Base(高斯滤波、双边滤波、导向滤波、Laplacian 金字塔等), 决定了算法的视觉风格、Halo 风险和计算开销。

3.3 Halo 伪影与结构失真问题

局部色调映射最常见的视觉问题是 Halo 伪影:在强对比边缘周围出现亮暗晕圈。 其根本原因大多可以追溯到 “基底滤波跨越了不该跨越的边缘”: 当基底在物体两侧过度平滑后,再与细节重组时就容易在边界附近产生反常的亮度过渡。

Halo 伪影示例照片,红箭头标注晕圈位置
图 5:Halo 伪影示例——亮暗交界处出现发光晕圈(红箭头所示)。

工程上常用的抑制策略包括:

3.4 计算复杂度与实时性权衡

局部运算意味着更高的计算成本:大量邻域操作、迭代求解、多尺度分解都会明显增加算力需求。 在 4K 视频甚至实时游戏渲染场景中,色调映射预算往往只有几毫秒, 因此必须在 “效果” 和 “速度” 之间做现实的权衡。

实践中常见的优化手段包括:

4. 经典局部色调映射算法

4.1 Laplacian / 高斯金字塔 Base/Detail 方法

Laplacian / 高斯金字塔类 Base/Detail 方法通过多尺度模糊与带通分解,将图像拆分为缓慢变化的基底和不同尺度的细节分量,再对各尺度分量进行差异化压缩与重组,从而在压缩整体对比度的同时尽量保留局部细节。

算法思路可以简化为:

在工程实践中,通常借助 Laplacian / 高斯金字塔结构实现上述多尺度处理:在多个尺度上分别调整带通分量的振幅,从而对不同大小的结构进行差异化压缩和增强。

在代码层面,实现关键点包括:高效构建多尺度模糊图、选择合适的对比度度量和阈值、 以及确保在边界条件处理和浮点精度上保持稳定。这类方法的优点是概念清晰、参数含义直观, 但实现上略显复杂,在极端场景中容易出现 Halo。

4.2 基于双边滤波(Bilateral Filter)的 Tone Mapping

双边滤波是一种经典的边缘保持滤波器,在空间距离和强度差异两个维度上同时加权,从而在模糊平坦区域的同时保留边缘。 将双边滤波用于 Base 提取,是很多局部色调映射算法的起点。

典型工程流程:

由于双边滤波计算量较大,实践中常使用各种加速技巧(如分层近似、bilateral grid、分块近似等), 或在较低分辨率上运行双边滤波,再插值回全分辨率。

4.3 基于导向滤波(Guided Filter)的 Tone Mapping

导向滤波通过在局部窗口内假设输出是导向图像的线性函数,从而得到一个具有边缘对齐特性、且可线性时间实现的滤波器。 相比双边滤波,它更适合在高分辨率图像和实时应用中使用。

在局部色调映射中,常用的做法是:

调参时需要重点关注窗口半径和正则化参数,它们直接影响基底的平滑程度和 Halo 风险。

4.4 基于 Retinex 理论的方法

Retinex 理论将图像分解为缓慢变化的亮度分量和快速变化的反射率分量,从而自然地适用于局部对比度增强和色调映射。 多尺度 Retinex 通过在多个尺度上进行平滑和归一化,模拟人眼在不同视野范围内的亮度适应行为。

工程实现时通常要考虑:

4.5 局部直方图方法(CLAHE 等)

局部直方图方法通过在小块区域内统计亮度分布,并对每个区域分别进行直方图均衡或受限均衡,从而增强局部对比度。 典型代表是对比度受限自适应直方图均衡(CLAHE)。

算法上,一般将图像划分为规则网格,在每个网格内计算裁剪后的直方图和累积分布函数,再将映射结果在网格之间插值,以避免块状边界。

工程实践中的关键点包括:

4.6 其他代表性方法概览

除上述方法外,工程项目中还常见以下技术路线:

5. 自研局部色调映射算法

5.1 算法概述

我们的自研算法融合 HDR 动态范围压缩与局部色调映射:既可在 HDR 模式下压缩极宽亮度范围,也可在线性/低动态输入下稳定提升局部对比度。 核心是场景感知的亮度重分配与细节保持:先基于亮度分布自适应压缩高低区间的动态范围,再用受控增益提升局部对比度, 配合曝光与饱和度控制,确保逆光、夜景、室内高光等复杂光照下的色彩稳定与观感一致。

5.2 关键优势

Halo 抑制示例,比较不同算法在强光边缘的晕圈控制效果
图 5-1:Halo 抑制示例,对比强光下不同处理的晕圈控制表现。
细节增强对比示例:主流 ISP 效果 1、主流 ISP 效果 2、自研算法
图 5-2:细节增强示例(左:主流 ISP 效果 1,中:主流 ISP 效果 2,右:自研算法),对比纹理清晰度与伪影控制。
大逆光场景动态范围与噪声控制对比:主流 ISP 效果 1、主流 ISP 效果 2、自研算法
图 5-3:大逆光场景动态范围与噪声控制对比(左:主流 ISP 效果 1,中:主流 ISP 效果 2,右:自研算法)。
高动态范围夜景高光区域细节与光晕控制对比,主流 ISP 与自研算法三图并列
图 5-4:高动态范围夜景示例高光区域细节及光晕控制对比(左:主流 ISP 效果 1,中:主流 ISP 效果 2,右:自研算法)。

6. 深度学习驱动的局部色调映射

6.1 数据驱动的 HDR 到 LDR 映射思路

深度学习方法不再显式设计具体的滤波器和压缩函数,而是通过大量 HDR–LDR 样本对直接学习从输入到输出的映射。 训练数据可以来自高质量人工调色结果、专业相机和手机相机的内部标注数据,或公开 HDR 数据集。

从工程角度看,关键问题是:

6.2 网络结构设计(U-Net、多尺度 CNN、Transformer 等)

局部色调映射属于 “低级视觉 + 风格增强” 类任务,网络结构一般具备以下特点:

深度学习局部色调映射网络结构示意图
图 6:典型的深度学习局部色调映射网络结构。

6.3 感知损失和对比度约束

仅使用 L1 / L2 像素损失往往难以保证满意的视觉质量,因此工程上通常采用复合损失:

6.4 与传统局部算子的对比与融合

深度学习方案的优势在于表达力强、可端到端学习复杂映射,但也带来数据依赖强、可解释性差、 部署成本高等问题。工程实践中,常见的折中策略包括:

7. 典型应用场景

7.1 安防监控与低照度场景

在安防监控系统中,摄像头往往需要覆盖极宽的亮度范围:既包含直射光和高亮区域,也包含阴影、角落等低照度区域。 局部色调映射可以在不过度压缩整体对比度的前提下,显著提升暗部细节和人脸、车牌等关键区域的可见度。

工程上,这一场景常见的挑战包括:弱光下噪声被局部增强放大、红外补光导致的色偏、强点光源产生的 Halo 等。 因此实际系统通常会将局部色调映射与降噪、去雾、运动检测等模块联合设计,并根据环境亮度自适应调整强度。

7.2 汽车自动驾驶与车载摄像头

自动驾驶和高级驾驶辅助系统(ADAS)依赖车载摄像头在复杂光照条件下稳定感知环境: 例如隧道出入口、逆光行驶、夜间路灯与对向车灯等高对比度场景。 适当的局部色调映射有助于改善路面、行人、交通标志和车道线的可见性。

在这一场景中,算法设计必须在 “人眼观感” 与 “机器视觉鲁棒性” 之间取得平衡, 避免因过度增强导致的伪影、拖影或局部曝光不稳定,从而影响检测与分割模型的可靠性。 实际系统中,局部色调映射常与自动曝光、HDR 合成和深度学习感知模块紧密耦合。

7.3 手机摄像头 HDR 算法中的本地处理

手机摄像头的多帧 HDR 算法通常包括:多帧对齐、合成、降噪、局部色调映射等步骤。 局部色调映射直接决定了用户对 “宽容度” 和 “细节” 的主观感受, 也是各大厂商差异化的关键环节之一。

由于移动端算力和功耗受限,这里的局部处理通常采用轻量化算子或网络, 并与曝光、AWB、降噪等模块高度耦合设计。

7.4 医学影像场景

在医学影像(如 X 光、CT、MRI)中,局部色调映射被用于突出病灶或组织结构细节。 与消费级应用不同,这里必须非常谨慎地控制伪影和局部对比度增强的程度, 以免对诊断结果产生误导。

医学场景中,通常更关注灰度分布与组织结构之间的对应关系,很多局部处理只允许在经过验证的动态范围压缩框架内进行, 且需要与医用显示标准(如 DICOM GSDF 曲线)和诊断工作流程匹配。 一些系统会提供 “诊断模式” 与 “展示模式” 两套参数,以区分严肃诊断与教学、示意用途。

7.5 工业检测场景

在工业检测(如焊缝检测、缺陷检测)中,局部色调映射被用于突出划伤、气孔、裂缝等缺陷区域细节, 需要在增强可见性的同时避免引入易于误判的伪影。

工业检测中,局部色调映射往往与阈值分割、边缘检测和缺陷分类算法搭配使用,用于提升细微结构的可见性。 这类应用更强调重复性和稳定性,必须保证在不同批次、不同设备间处理效果的一致性,便于制定量化判定标准。

8. 发展趋势与开放问题

8.1 从手工设计到端到端学习

从早期手工设计的局部算子,到如今端到端学习的 HDR–LDR 网络, 局部色调映射的发展路线与许多图像处理任务类似。 未来的一个趋势是将更多工程经验和物理先验融入深度网络结构中, 形成 “可解释且可学习” 的混合框架。

8.2 感知模型与显示设备特性联合建模

更好地建模人眼视觉系统与显示设备特性,是提升色调映射质量的另一关键方向。 这包括:

8.3 与其他图像增强任务的统一框架

局部色调映射与去雾、低照度增强、局部对比度增强等任务在本质上高度相关: 它们都涉及对局部亮度和对比度的重分配。 构建一个统一的增强框架(例如基于 Retinex 或深度网络), 让同一套模型适配多种任务,是一个很有吸引力的方向。

8.4 可解释性与参数可控性

随着深度学习方法在成像系统中占比越来越高, 如何保持算法的可解释性和参数可控性,成为工程团队和艺术家共同关心的问题。 这包括:

9. 总结

局部色调映射作为连接 HDR 成像与有限显示设备之间的关键环节, 在过去几十年中经历了从经典滤波与多尺度分解,到 Retinex、梯度域方法,再到深度学习与混合框架的演进。 虽然技术形态不断变化,但核心目标始终相同:在压缩动态范围的同时, 尽可能保留局部对比度和结构细节,提供自然、信息丰富且视觉舒适的图像。

从工程实践角度看,成功的局部色调映射方案往往具备以下特征:

随着显示技术、感知模型和深度学习的持续发展,局部色调映射仍将是计算摄影、渲染和视觉增强系统中的重要组成部分, 并有望与更多图像增强任务融合,形成更加统一、智能的视觉处理框架。