APP下载

结合饱和度调节的单曝光HDR图像生成方法*

2021-03-23张媛媛张红英

吉林大学学报(理学版) 2021年2期
关键词:饱和度色调分量

张媛媛,张红英

(西南科技大学 信息工程学院,四川 绵阳 621010)

0 引 言

在数字图像领域,动态范围是指图像场景中最大亮度值与最小亮度值之比. 图像的动态范围越大,即拍摄图像时所探测的光照强度范围越广,图像呈现的细节信息越丰富. 但由于目前成像设备技术的限制,通常只能捕获有限的动态范围,导致所获得的图像存在细节缺失,与人眼感知的现实场景不符. 而高动态范围(high dynamic range,HDR)图像相比于普通图像可提供更大的动态范围和更丰富的细节信息,与人眼观察到的场景更相符[1].

随着科技的发展,人们对图像质量的要求越来越高,HDR显示技术得到快速发展. 能显示动态范围为105数量级的显示屏已被应用,但由于价格昂贵,还未得到广泛使用[2]. 目前大多数图像资源都是低动态范围(low dynamic range,LDR)的,无法适应HDR显示技术的发展. 因此,如何将LDR图像资源转换成HDR图像资源受到广泛关注. 目前,该领域多数研究都是利用计算机图像处理技术对LDR图像进行处理生成HDR图像,主要有多曝光图像融合和单曝光图像生成两种. 多曝光融合的方法需要同一场景中的多幅不同曝光程度的图像,对场景的静态性要求较高,也因为其需要多幅图像,而无法处理一些已有的资源. 单曝光图像的生成方式是构建扩展函数完成图像动态范围的扩展,其研究难点在于单幅图像存在细节的缺失以及图像动态范围扩展后存在颜色失真的问题. 本文主要考虑单曝光生成的方法.

从单幅图像生成HDR图像就是对其动态范围进行扩展. 一幅图像从低动态范围扩展到高动态范围过程中,反色调映射[3]是关键. 反色调映射算子是对色调映射过程的反变换,其决定了图像动态范围的扩展方式以及扩展后图像的动态范围大小. 目前已有的单幅图像生成HDR图像的方法主要有全局扩展、分类扩展以及基于这两种扩展模型的衍生模型[4]. 全局扩展是对图像中的每个像素都用相同的扩展函数,该类方法通常较简单,计算速度快,但由于用相同函数处理,可能对部分区域处理效果不佳,通常需对该部分区域进行一些其他处理. 分类扩展是指根据LDR图像中的内容对图像分区,然后再对不同区域采取不同的策略进行处理,该类方法易出现区域分割的现象. 目前使用较多的是基于全局扩展,然后再局部处理的扩展模型. Landis[5]提出了一种基于功率函数的全局算子,对大于阈值的像素点做线性扩展,而小于阈值的像素点保留原值,从而产生HDR图像,该方法计算简单,但由于未对图像进行修正,因此图像易出现不连续现象; Banterle等[6]通过对文献[7]提出的色调映射函数取反的方式得到一个反色调映射算子,先将图像映射到一个中等的动态范围,再通过中值切割法分离图像过曝光区域,然后进行过曝光区域的扩展,最后融合得到最终的HDR图像,但该方法复杂度高,对硬件的要求较高;Akyüz等[8]通过两个心理学实验提出LDR图像并非一定要经过复杂的处理才能产生HDR图像,并提出一种简单的线性映射算法,但在处理一些图片时,存在一定的颜色失真; Masia等[9]通过分析已有的反色调映射算子,提出了一种自适应Gamma变换的动态范围扩展方法,但这种扩展方法需要输入质量较高的LDR图像; Huo等[10]提出了一种基于视网膜反应的反色调映射算法,该算法将亮度通道和颜色通道进行分离,只对亮度分量做处理,较好地保留了原始图像的色彩信息;Kovaleski等[11]提出了一种交叉双边的反色调映射算法,运行速度较快,但该方法也存在一定的颜色偏差.

本文提出一种结合饱和度调节的单幅图像生成HDR图像的方法. 首先将图像转换至HSV颜色空间,分离亮度和饱和度信息; 再对亮度分量进行反色调映射,对饱和度分量进行线性拉伸;然后根据饱和度与亮度的相关性,结合新亮度,对新饱和度分量进行调整,得到最终的饱和度分量;最后结合新的各分量,得到HSV颜色空间的HDR图像,转换至RGB颜色空间得到最终的HDR图像. 实验结果表明,本文方法能在有效扩展图像动态范围的同时,避免图像因饱和度与亮度不匹配导致的泛白现象,能产生更符合人眼视觉特性的HDR图像.

1 算法框架

在数字图像处理中,通常用RGB彩色模型. 该模型图像由红、绿、蓝3个分量组成,可视为是3幅灰度图像的堆叠,通过不同的灰度值构成一幅彩色图像. 但该模型3个分量的相关度较高,在图像处理过程中,直接对其进行处理很容易导致图像色彩的失真,使人眼对色彩的感知不理想. 因此通常将图像转换到其他色彩空间进行处理. 当人眼感知颜色时,通常用色调、饱和度和亮度描述. 在用单幅图像生成HDR图像的过程中,动态范围扩展后的图像通常会因为亮度的改变而使人眼对色彩饱和度的感知出现偏差,以至于人眼观测到的图像出现泛白现象. 因此,HDR图像生成过程中不仅要考虑反色调映射算子的构建,还要考虑图像色彩信息的保留与恢复. HSV彩色模型通过色调、饱和度和亮度3个分量描述颜色,将亮度信息与色彩信息分离,可以很好地满足亮度与色彩分离处理的特点.

基于上述分析,本文提出一种结合饱和度调节的单幅图像生成HDR图像的方法,其算法框架如图1所示. 算法主要思想是对图像的亮度和饱和度都做处理,以确保动态范围扩展后的图像不会出现因为亮度与饱和度不匹配而产生的图像泛白现象. 算法主要步骤如下:

1) 将原始LDR图像由RGB颜色空间转换到HSV颜色空间;

2) 对亮度分量进行反色调映射,提取高光区域并进行校正,结合低光区域,得到新亮度分量;

3) 对饱和度分量进行线性拉伸得到一个拉伸后的饱和度分量;

4) 通过原始亮度和饱和度分量计算其相关系数,并结合新亮度分量对拉升后的饱和度分量进行调整,得到新饱和度分量;

5) 将新亮度分量与新饱和度分量以及色调分量相结合得到HSV色彩空间的HDR图像,再转换至RGB颜色空间,获得最终的HDR图像.

图1 算法框图Fig.1 Block diagram of algorithm

2 算法实现过程

2.1 HSV颜色空间转换

HSV颜色空间通过色调(H)、饱和度(S)、亮度(V)表示颜色,可很好地分离图像的色彩信息与亮度信息. 当图像的亮度信息发生改变时,不影响色调与饱和度之间的关系,能较好地保留图像的色彩信息. 将RGB图像转换到HSV颜色空间的计算公式如下:

V=max{R,G,B},

(1)

其中,max{R,G,B}表示求像素点的RGB分量的最大值,min{R,G,B}表示求像素点的RGB分量的最小值.

2.2 反色调映射

本文采用一种非线性变换的S型函数构建反色调映射函数,公式为

(2)

图2 不同E值扩展前后的变化曲线Fig.2 Variation curves of different E values before and after expansion

其中V为原始图像亮度,V′为扩展后图像亮度,m为原始图像亮度最大值和最小值的平均值,E为斜率控制因子.E决定了扩展后图像的动态范围,其取值不宜过大,否则图像易出现截断现象. 图2为不同E值对应的扩展曲线. 由图2可见,当E值增加时图像有更大的拉升,但当E值超过一定范围时,图像会出现截断现象,阴暗区域的细节消失. 图3为不同E值扩展前后图像对比. 由图3可见,当E=6时,图像阴暗区域的细节开始消失,当E=10时,图像截断现象十分明显. 因此本文考虑E增大暗部细节消失的情况,选取E=3.

采用上述函数对动态范围进行扩展后,图像的高亮度区域变得更明亮,而人眼对高亮度区域的感知很敏感,高亮区域会影响人眼对周围区域的细节感知. 为使高亮度区域更符合人眼的视觉特性,需对其进行校正. 本文通过阈值法分离出高亮区域,公式如下:

(3)

Vh=V′·Vbw,

(4)

其中τ为亮度阈值. 在一幅取值为[0,255]的图像中,将值大于190的点视为亮点,归一化值约为0.75,将其代入式(2),可求出对应的τ值. 经计算当E=3时,τ=0.77.

图3 不同E值扩展前后图像对比Fig.3 Comparison of images of different E values before and after expansion

提取出高亮区域后,先对其进行归一化处理再进行Gamma校正,公式如下:

(5)

本文取γ=2.2. 图像的高亮区域如图4所示,其中:(A)为阈值法提取的图像高亮区域; (B)为通过Gamma校正的高亮区域.

图4 图像的高亮区域Fig.4 Highlight area of images

将校正后的高亮区域先通过线性函数去归一化得到校正后的高亮区域图像,再结合扩展的其他区域亮度值得到最终亮度,公式如下:

(6)

图像经过反色调映射的结果如图5所示,其中: (A)为原始图像;(B)为反色调映射结果. 由图5可见,经过反色调映射的HDR图像能展现原始图像较黑暗的一些区域,但出现了图像泛白现象,人眼感知的颜色不鲜亮. 导致这种情况的原因是:在动态范围扩展后,图像亮度更高,但图像颜色的饱和度未发生变化,亮度和饱和度不匹配,使人眼对色彩的感知下降.

图5 原始图像与反色调映射结果对比Fig.5 Comparison of original image and inverse tone mapping result

2.3 饱和度调节

饱和度表示颜色的鲜亮程度,即颜色的纯度. 饱和度数值越高,颜色的纯度越高; 反之,颜色的纯度越低. 为使动态范围扩展后的图像更符合人眼对色彩感知的视觉特性,需对饱和度进行调节.

图6 饱和度分区示意图Fig.6 Schematic diagram of saturation zoning

本文采用饱和度分区统计调节算法[12]对饱和度进行线性拉伸. 首先,将图像饱和度平均分为4个区域,分别表示饱和度很低、饱和度低、饱和度高和饱和度很高,分区方式如图6所示; 然后,分别计算4个区域像素所占的比例,得到分别对应4个区域的比值μ1,μ2,μ3,μ4;最后,通过对比值进行加权计算得到饱和度调整系数ΔS,ΔS的经验计算公式[13]为

β=-0.40μ1-0.12μ2+0.19μ3+0.83μ4,

ΔS=-4.427β+3.354.

(7)

为使调整后的饱和度不超过上限值,规定饱和度超过某个值Sc时改变调整系数,Sc的值为饱和度拉伸后达到上限3/4时的原始饱和度值,即原始饱和度值乘以调整系数后值为0.75的原始饱和度值. 因此,饱和度拉伸公式为

(8)

由于人眼在图像很亮或很暗的情况下,对色彩饱和度的感知会下降,对饱和度的变化不敏感,同时,在HSV颜色空间中,饱和度和亮度存在一定的联系[14],因此可通过亮度与饱和度的相关性,对饱和度做出自适应调整,使其更符合人眼对色彩的感知,用公式表示为

S′(x,y)=Se(x,y)+(|V′(x,y)-V(x,y)|)·σ,

(9)

其中:S′(x,y)表示调整后的饱和度值;Se(x,y)表示分段线性拉伸后的饱和度值;V′(x,y)表示反色调映射后的归一化亮度值;V(x,y)表示原始亮度值;σ为亮度与饱和度的相关系数,计算公式为

(10)

为体现调节饱和度对图像色彩的影响,选用一张色彩鲜艳的图片进行展示,如图7所示,其中:(A)为原始图像;(B)为反色调映射后的图像; (C)为饱和度线性拉伸结果; (D)为通过饱和度与亮度相关系数调整后结果. 由图7可见,饱和度线性拉升后,图像颜色有了明显增强. 在结合相关系数调节后,人眼观测到的图像颜色更鲜亮,更符合人眼的视觉特性.

图7 饱和度调节前后结果对比Fig.7 Comparison of results before and after saturation adjustment

综上,可得本文算法步骤如下.

输入: LDR图像;

输出: HDR图像;

1) 将输入的LDR图像从RGB颜色空间转化至HSV颜色空间,分离出色调(H)、饱和度(S)和亮度(V)分量;

2) 对亮度分量进行反色调映射,得到反色调映射后亮度分量V′;

3) 对步骤2)的亮度分量V′进行高光区域提取,分离出高光区域和低光区域;

4) 将步骤3)分离出的高光区域先进行归一化后,再进行Gamma校正;

5) 将步骤4)得到的高光区域通过线性函数去归一化得到校正后的高光区域;

6) 将步骤5)得到的高光区域和步骤3)分离出的低光区域进行融合得到最终的亮度分量V″;

7) 将饱和度分量进行线性拉伸,得到拉伸后的饱和度分量S′;

8) 计算原始亮度分量V和原始饱和度分量S之间的相关性,得到相关系数σ;

9) 通过步骤6)得到的亮度分量V″和步骤8)的相关系数对步骤7)得到的饱和度分量S′进行自适应调整,得到最终的饱和度分量S″;

10) 将步骤1)的色调分量H、步骤6)的亮度分量V″和步骤9)的饱和度分量S″相结合,得到HSV颜色空间的HDR图像;

11) 将HSV颜色空间的HDR图像转化至RGB颜色空间,得到最终的HDR图像.

3 实验结果与分析

本文利用多幅不同场景的图像进行实验. 在CPU为CoreTMi5-2450M,2.5 GHz,内存为4 GB的计算机上使用MATLAB R2016a对本文算法进行实验验证,并将本文算法实验结果与Masia算法[9]和Kovaleski算法[10]进行对比. 为方便图像比较,将生成的HDR图像均经过文献[7]的色调映射算法使其能在普通显示器上显示.

3.1 主观评价

图8 不同算法处理图像的结果对比Fig.8 Comparison of image processing results for different algorithms

图8为实验中部分图像经不同算法的处理结果,其中: (A)为原始图像;(B)为Masia算法处理后的图像; (C)为经Kovaleski算法处理后的图像; (D)为经本文算法处理后的图像; (E)为用于参考的标准HDR图像. Masia算法通过计算亮度分量的几何平均值确定Gamma值,能对不同的图像进行自适应的动态范围扩展,对高质量的图像表现较好,但处理后的图像存在泛白现象,色彩不够鲜亮. 同时Masia算法在原始图像为全黑色的部分易出现伪像,如图8(B)中第四幅图像中黑色部分. Kovaleski算法通过对图像进行交叉双边滤波扩展动态范围,提高了计算速度,但也存在图像泛白现象,如图8(C)中颜色丰富的第五幅图像. 本文算法不仅对亮度分量进行了动态范围扩展,也对饱和度分量进行了处理,使图像在亮度变化的同时饱和度也随之调整,避免了图像在动态范围扩展后出现颜色失真泛白的现象,更接近标准的HDR图像.

3.2 客观评价

首先,根据图像动态范围计算公式[15]:

D=max_I/min_I,

(11)

对比图像动态范围. 其中max_I和min_I分别表示图像亮度最亮点和最暗点的亮度值. 不同算法的对比结果列于表1. 由表1可见,3种算法都可将图像由低动态范围扩展到高动态范围,但本文的动态范围扩展更大.

表1 不同算法的动态范围

除图8展示的6幅图像外,还随机选取20幅图像进行算法验证,其动态范围对比结果如图9所示. 为方便统计,将计算的动态范围进行了对数运算,只观察数量级的变化,图9纵轴表示动态范围的数量级. 由图9可见,本文算法能有效扩展图像动态范围.

图9 不同算法动态范围的对比Fig.9 Comparison of dynamic ranges for different algorithms

其次,通过结构相似度函数(structural similarity,SSIM)[16]以及用于HDR图像质量评价的HDR-VDP(high dynamic range visual difference predict)方法[17]对本文算法生成的HDR图像进行客观评价.

结构相似度函数衡量图像亮度、对比度和结构变化3个量的符合效果. 两幅图像越相似,结果越接近1,计算公式如下:

(12)

表2 不同算法的SSIM结果

图10为不同算法对20幅图像的SSIM计算结果对比. 由图10可见,本文算法与Maisa算法结果类似,能较好地保留图像的结构. HDR-VDP是基于人类视觉差异评估两幅图像之间相似性的方法. 由于两幅图像的差异是由不同噪声输入引起的,因此该方法首先模拟人眼的光学特性和视网膜通路,再通过噪声模拟及多尺度分解算法模拟光在人眼内部的散射过程,以此模拟人眼对HDR图像的处理过程,并对结果打分,最高值为100,表示两幅图像完全相同. 经不同算法处理后与参考HDR图像进行比对的结果列于表3. 图11为不同算法对20幅图像的HDR-VDP计算结果对比. 由图11可见,除个别图像外,本文算法结果均较好.

图10 不同算法SSIM结果的对比Fig.10 Comparison of SSIM results for different algorithms

表3 不同算法的HDR-VDP结果

图11 不同算法HDR-VDP结果的对比Fig.11 Comparison of HDR-VLP results for different algorithms

对比表2和表3及图10和图11的结果可见,本文算法的SSIM和HDR-VDP结果较好,说明本文算法能在扩展图像动态范围的同时,较好地保留图像的色彩信息,产生颜色鲜亮的HDR图像.

综上可见,针对当前单曝光HDR图像生成方法几乎都仅对亮度分量进行动态范围扩展,而未考虑扩展后的亮度分量与原饱和度不匹配,导致所生成的HDR图像出现泛白现象的问题,本文提出了一种结合饱和度调节的单曝光HDR图像生成方法. 该方法首先将RGB颜色空间图像转换至HSV颜色空间,对亮度分量进行反色调映射和高光区域校正,同时对饱和度分量线性拉伸,再根据亮度和饱和度的相关性,利用扩展后亮度对拉伸后的饱和度分量进行微调; 其次,将得到的新亮度分量与新饱和度分量结合色调分量进行融合,得到HSV颜色空间的HDR图像; 最后将其转换至RGB颜色空间得到最终的HDR图像. 实验结果表明,该方法能避免在图像动态范围扩展后,HDR图像色彩出现失真泛白的现象,可获得更好的视觉效果. 但由于该算法主要考虑图像色彩的恢复,采用简单的反色调映射算法,导致某些图像在一定程度上存在细节的损失,因此还需要对反色调映射算法进行改进,以保留更多的细节信息,同时提高算法效率.

猜你喜欢

饱和度色调分量
糖臬之吻
画里有话
加入激光与HDR自动色调映射武装的4K猛将 JVC LX-N68BC
一斤生漆的“分量”——“漆农”刘照元的平常生活
一物千斤
湖光水色调
Aliens encounter stories:illusion or imagination
论《哈姆雷特》中良心的分量
In Spring!春之色调
制作一个泥土饱和度测试仪