APP下载

一种基于细节层分离的单曝光HDR 图像生成算法

2019-12-12张红英朱恩弘吴亚东

自动化学报 2019年11期
关键词:像素点色调亮度

张红英 朱恩弘 吴亚东

高动态范围成像(High dynamic range imaging,HDRI)是一项近年来十分流行的技术,简单地说就是让图像表现出更大的明暗差别,高光不过曝,暗调不欠曝,使所有的层次和细节都很清楚.动态范围是环境中光照亮度级的最大值与最小值之比.现实世界真正存在的亮度差,即最亮的物体亮度与最小的物体亮度之比为108,而人类的眼睛所能看到的范围是105左右,一般的显示器、照相机能表示的只有256 种不同的亮度.因此,为了在普通显示器上显示HDR 图像,必须将其动态范围进行压缩,目前普遍采用色调映射算子(Tone mapping operators,TMOs)进行图像亮度的压缩[1−3].

随着显示器技术的发展,比传统显示器具有更高动态范围的显示设备已稍具雏形,同时更多高动态范围的图像和视频也因为相关技术的成熟而逐渐容易获得.然而现有的图像和视频大多还是在低动态范围的数位格式中保存,因此如何利用反色调映射算子(Inverse tone mapping operator,ITMO)扩展亮度,使之能够得到接近真实世界的动态范围是近年来图像处理领域热门的研究课题.反色调映射算子是实现由单幅低动态范围(Low dynamic range,LDR)图像生成一幅HDR 图像的方法,该类方法对单幅的LDR 图像进行直接的转化,不仅能实现静态HDR 图像的拍摄,还能进行HDR 视频的录制.与此同时,采用这种方法还可以将现有的大量LDR 图像或视频资源生成HDR 资源,能够很好地解决HDR 图像或视频资源匮乏的问题,这些都是基于传统多曝光技术的HDR 图像生成方法无法实现的.目前国内外对于单曝光HDR 图像生成技术的研究已经取得了一定成果[4−8].但该技术在处理效果和处理效率上仍有相当的研究空间.

目前,单幅LDR 图像到HDR 图像扩展的算法分为5 类[9]:外形修整函数[10−11]、全局模型[12−14]、分类模型[15−16]、扩展映射模型[17−18]、基于用户的模型[19]以及其他一些比较特别的方法[20−23].文献[10−11]采用外形修整模型,将LDR 图像和视频中8 bit 数据扩展到10 bit,同时在扩展的变换域中将伪轮廓去除.采用这种方法扩展后的图像视频为中动态范围的图像视频.该方法并没有特别关注过曝光和欠曝光区域,目前该模型由于扩展范围的局限性,研究进展较缓慢;文献[12−14]中的全局模型就是对图像或视频中的每个像素都运用相同的全局扩展函数,该类算法复杂度通常较低,对高质量LDR图像处理效果较好,但往往不对压缩或量化产生的伪像作相应处理,不能保证对压缩过的LDR 图像处理的质量.而在实际应用中,平时拍摄的图像或视频通常都进行过压缩处理,这种情况下就需要更精确的扩展方法来避免压缩带来的伪像,该模型的优点在于处理效率较高,但缺点是处理图像要求高,否则成像效果不好;文献[15−16]提出的分类模型是尝试对LDR 图像中的内容进行分区,然后再对不同区域采取不同的策略进行处理.该模型通常是对图像中不同光源曝光程度进行分区;文献[15]提出一种增强LDR 视频亮度的交互系统,主要思想是将1 个场景分成散射区、反射区和光源区3 个部分,只增强反射区和光源区部分,认为增强散射部分会产生伪像,该系统是非线性的.目前采用分类模型的算法普遍存在着算法复杂度较高,需要进行额外训练的问题.为提高算法效率,往往需要从硬件上着手解决.扩展映射模型首先对输入的图像进行线性化,然后采用反色调映射算子对图像的范围进行扩展[17−18],再采用光源采样、滤波后亮度增强等方法对图像的过曝光区域进行重建.该模型是目前研究较为广泛的一种模型,在扩展映射后还需要采用多种方法来提升图像中的信息量,主要限制在于对过曝光区域太大的图像效果不理想;文献[19]是基于用户的模型的代表算法,该算法基于图像中存在过曝光和欠曝光区域类似结构的高质量块的假,首先将LDR 图像进行线性化,然后通过查找图像中相似的高质量块对过曝光和欠曝光区域进行增强.对过曝光和欠曝光的修复分为自动和基于用户两种方式,需要用户对图像进行修复.该模型与其他模型相比,由于需要用户参与,导致只能用于单帧图像而不能对视频进行HDR 转换,而且存在无法找到传递图像细节信息的块的情况.

除了以上5 类常见的模型外,还有一些比较特别的方法.文献[20]首先采用自适应直方图分离方法将原图构造出欠曝光和过曝光图像,然后分别对过曝光和欠曝光图像进行处理,最后采用多曝光图像融合的方法生成HDR 图像;文献[21]首先利用HVS 对光的感应及理解特性,构建HVS 的局部自适应模型并对其求逆,然后建立图像中每个像素点的局部亮度信息求取模型,最后将每个像素的局部亮度信息运用于局部自适应模型的反函数中实现图像比特深度扩展,在保证图像对比度的同时,实现图像细节信息增强;文献[22]提出一种基于光源采样的单曝光HDR 图像生成算法,通过对图像中存在的可能的光源信息进行采样,模拟光线衰减效应,有效地还原了高光部分的细节信息.值得注意的是,由于单曝光LDR 图像本身图像信息不足,图像中的一些细节在生成HDR 图像的过程中仍然缺失.因此,本文提出一种基于细节层分离的单曝光HDR 图像生成方法,根据人眼视觉系统模型,首先对图像的亮度分量进行分离,并进行伽马校正;然后对伽马校正后的亮度分量分离细节层,并在反色调映射后对细节层进行融合得到新的亮度分量;最后将图像亮度分量与色度、饱和度分量融合得到最终的HDR 图像.大量对比实验表明,本文提出的方法可以有效地提高图像的动态范围,并挖掘出LDR 图像中部分隐藏的细节信息,一定程度上弥补了单曝光LDR 图像细节信息不足的缺点,处理效果较好,运行效率高,具有较好的鲁棒性.

1 算法框架

单曝光LDR 图像本身的信息不足,主要体现在:1)正常曝光状态下画面细节不足;2)过曝光或欠曝光导致的连续像素点的饱和现象.针对正常曝光的画面细节不足,可以通过构建反色调映射方法及其他常见方法解决;而针对连续饱和区域的处理,则是单曝光HDR 生成算法的处理难点.目前,常用的光学数字成像过程是将真实场景的光辐射值通过图像传感器(CCD 或CMOS)转化为电信号,再通过A/D (模/数转换器)转换成数字信号,并以数字图像的方式保存下来.CCD 使用一种高感光度的半导体材料制成,能把光线转变成电荷,CCD 的每个感光单位感应到的光线,都是外界光线的集合,最后反映到计算机能够处理的数字图像上的每个像素上.由于图像中每个像素点上像素值是受到映射到该点所有光线的影响,故可以确定,在单曝光LDR图像中包含了场景的细节信息,只是因为压缩编码和CCD 表面感光单元数量限制等原因,部分被其他信息所掩盖,而只要能够分离出这部分的细节信息,则能够更真实地还原HDR 图像.

基于以上分析,本文提出一种基于细节层分离的单曝光HDR 图像生成算法,总体框图如图1 所示.主要思路是先分离细节层以尽可能多地挖掘出过曝光和欠曝光区域的细节信息,再对各层分别进行相应操作来扩展图像的动态范围.算法包括3 部分:1)由于人眼视觉系统中视网膜上锥状和杆状细胞对亮度和色度信息敏感度不同,HSV 颜色空间更符合人眼的视觉感受,因此,对图像进行预处理及细节层的分离,包括RGB 空间到HSV 空间的转变,分离出亮度分量和色度分量;然后基于某一像素点的值可能被环境光所影响的分析,对亮度分量进行伽马校正后作保边滤波操作,提取出亮度分量的基本层来模拟环境光,再对基本层和伽马校正后的亮度分量进行遍历运算,得到亮度分量的细节层.2)构造反色调映射算子,对伽马校正后的亮度分量和细节层分别进行亮度扩展,使亮度分量和分离的细节层的动态范围得以扩展.3)由于需要将从图像中挖掘出来的细节层与其他各层融合到一起才能获得更多细节信息,所以最后融合扩展后的亮度分量色度分量得到RGB 空间的HDR 图像,对之进行去噪处理得到最终的HDR 图像.

图1 算法总体框图Fig.1 Block diagram of the algorithm

2 算法具体实现过程

2.1 细节层分离

基于人眼视觉系统模型,首先将获得的RGB 图像转换到HSV 颜色空间上,采用的转换式如下:

其中,R、G、B分别为RGB 空间中3 个分量的像素值,H、S、V 分别为HSV 空间中3 个分量的值,max 表示取括号中像素值的最大值,min 表示取括号中像素值的最小值.因为在HSV 空间中H 分量用角度表示,故当H <0 时,需要将H 分量加上360.

基于细节层分离的算法,首先需要对分离出来的亮度分量进行细节层的分离,然后对不同层进行反色调映射处理,最后再将各层及图像各个分量相融合,这使得该算法在算法逻辑上比之前的方法更为复杂.为了保证算法运行的效率,使算法能够达到实时运行,在反色调映射函数的构建上选用了更为简单快速的方法,但这也导致在反色调映射过程中,对LDR 图像的亮度处理更为粗糙,缺少对低亮度值像素点重新线性化的过程,影响反色调映射效果,因此需要在反色调映射之前额外增加伽马(Gamma)校正,对图像进行预处理.

2.1.1 伽马校正

伽马校正指利用指数运算对图像亮度曲线进行校正的过程,伽马校正公式为

图2 伽马变换函数Fig.2 Gamma transform function

人眼视觉系统对光的敏感度在不同亮度下是不同的,根据斯蒂文思幂定律人眼对低亮度部分更为敏感,对较亮的亮度值之间的感知力明显减弱,人眼对亮度的感知曲线类似于伽马值为1/2.2 时的曲线.故为了贴合人眼视觉的感知程度,本文选用1/2.2 作为伽马值.

2.1.2 细节层分离

在基于细节层分离的单曝光HDR 图像生成算法中,很重要的一步是通过选用滤波器来得到基本层,滤波器的选用直接关系到细节层所含细节的效果如何.不同的滤波操作得到的基本层数据也不尽相同.高斯滤波为

其中,i,j为对应像素点的行列坐标,k,l分别为空间域和值域的邻域范围内像素点的坐标,加权系数w(i,j,k,l)取决于空间域核和值域核的乘积,分母的计算结果为一个归一化常数.

空间域核表示为

值域核表示为

空间域滤波和值域滤波的对应图示如图3 所示.

图3 空间域滤波和值域滤波对应图示Fig.3 Corresponding figure of spatial filtering and range filtering

两者相乘后,就会产生依赖于数据的双边滤波权重函数,如下:

由于双边滤波的滤波器系数同时由几何空间距离和像素差值决定,所以是一种典型的保边滤波方法,主要对图像的内容进行滤波,而对图像的边缘滤波效果较弱.图像中的细节部分也往往出现在非边缘区域,所以采用双边滤波能够达到分离图像细节层的目的.

对伽马校正后的图像进行双边滤波操作可以得到图像的基本层.由于为获得图像的基本层,主要是对图像包含大量细节信息区域进行了滤波操作,正好保留了场景中主要光源的辐射范围,通过伽马校正图像与基本层进行对应像素相减,可以将原图中的细节层分离出来,即

其中,Ib(x,y)表示图像的细节层,Id(x,y)表示图像的基本层.由于直接采用伽马校正图像与基本层之差得到的细节层,高光区域在融合过程中容易出现块效应,为避免块效应的出现,本文采用细节层除以基本层的方法对细节层进行压缩,因为细节层非细节部分像素值为零,除以基本层不会对细节层非细节部分产生影响.而块效应通常发生在高光区域,基本层中不同区域像素值大小不同,高光区域像素值更大,暗区域像素值更小,这样可以对亮暗不同区域细节进行不同比例的压缩,同时,也符合人眼视觉系统对暗区域亮度更敏感的特性,即

其中,Ib(x,y)表示基本层图像的像素值,Id(x,y)表示得到的细节层的像素值.采用双边滤波处理得到的细节如图4 所示,可以看出,用本文方法可以很好地分离出图像的基本层和细节层.

图4 细节层分离结果图Fig.4 Results of the detail layer separation

2.2 反色调映射算子的构造

选用基于Schlick 的色调映射方法[24]来构造反色调映射算子.色调映射方法如下:

其中,LC和Lw分别表示显示亮度和现实世界的亮度值,Lmax表示场景中亮度的最大值,参数p是一个常数值作为一个调整参数.由式(9)可知,该色调映射算法是通过某一像素点与最亮点的比值来进行压缩映射.参数p越大,Lmax在映射过程中影响越小,压缩比例越小.反之则越大.其值可由被映射的亮度范围确定,当被映射的亮度范围较小时,其亮度值的分辨率较小,需要更大地压缩亮度值,反之压缩程度较小.因此,参数p可以由下面公式得到:

其中,θ为调整参数,可以取值为1.L0表示背景为纯黑色时刚好可以被人眼察觉到变化的窗口的差值相加,N为窗口的个数,即求取其平均值.换句话说,p可以被看作在色调映射之前不是黑色的最小值.而如Schlick 所述[24],可以通过简单的实验来确定L0,利用显示在黑色背景上的随机位置处具有不同亮度的斑块.可以观察到不同于黑色的最小值为L0.通过试验,本文采用类似的方法来直接获取L0的值,这里采用图5 来进行试验.

图5 试验用图Fig.5 Test image

首先在图5 中找到能区分出来的最低亮度斑块,之后确认其像素值,得到需要的结果.经过多次试验,在未归一化的[0,255]的像素值域中,根据显示设备和观察状态的不同,L0的值约为5∼9,本文取值为5,归一化后约为0.02.这里的Lmax和Lmin分别表示人眼对现实世界场景中能感知到的瞬时最大和最小亮度.虽然这个值随场景而改变.但Lmax/Lmin可以看作一个场景的对比度.考虑到人眼在非极限条件下,瞬时动态范围为3 阶[10,24],因此本文选择Lmax/Lmin为103,进而可得出p的值.

利用式(9)和式(10)可以直接推出反色调映射函数如下:

通过前面的推导可知,目前唯一没有得到的参数为Lmax.在式(11)中,Lmax表示现实中某一场景的最大值,而在反色调映射函数中,可以将之设置为HDR 显示设备的最大像素值.经过反色调映射后的处理图如图6 所示,左侧为原图,右侧为反色调映射结果图,表1 展示了处理前后图像动态范围对比结果,动态范围的计算方法为

其中,Max-I表示图像中最亮点的亮度值,Min-I表示图像中最暗点的亮度值.从表1 可以看出,经过反色调映射后,图像的动态范围得到扩展,由低动态范围图像扩展成为高动态范围图像.

表1 处理前后动态范围对比Table 1 Comparisons of dynamic range

图6 反色调映射处理对比图Fig.6 Comparison image after the inverse tone mapping

2.3 图像融合

将得到的新的亮度分量图像与色度、饱和度分量图像融合,得到HSV 空间下的HDR 图像,再转化为RGB 空间下的HDR 图像,最后进行去噪操作,得到去噪后的HDR 图像.在整个处理过程中,引入的噪声通常为高斯噪声或椒盐噪声,这里的去噪操作可以采用高斯去噪等常用去噪方法,当椒盐噪声占绝大多数时,则采用中值滤波.

经过前面的处理后,将得到的两幅反色调映射图像进行融合.由于在LDR 图像中,暗区往往存在较多的噪声,而在分离细节层的过程中虽然进行了一定的压缩,但仍不能完全消除.因此在进行图像融合时,对图像暗区域进行简单处理.

基于算法计算效率的考虑,本文采用的融合方法与基于光源采样[22]的融合方法类似,但针对融合图像的不同而进行了参数的调整,以得到更好的效果.采用式(13)对获得的两幅反色调映射图像进行融合.

其中,L(x,y)为新的亮度分量图像素值,和Id(x,y)分别为伽马校正后的亮度图像和细节层的反色调映射图,σ、β、γ、δ为融合参数,当反色调映射图像中的像素点小于最小亮度值的β倍时,图像最终亮度为此时不融合细节层信息,以减少噪声的影响,否则为与Id(x,y)的加权相加.本文取值分别为σ0.5,β1.5,γ0.8,δ0.2.图像融合结果如图7 所示.

图7 融合结果对比Fig.7 Comparison result

本文算法的具体步骤如下:

步骤1.将输入的LDR 图像从RGB 颜色空间转换为HSV 颜色空间,分离出H (色度)、S (饱和度)和V (亮度)分量.

步骤2.对分离出的亮度分量图像进行伽马校正.

步骤3.对步骤2 中得到的伽马校正图像进行滤波操作得到图像基本层.

步骤4.通过对伽马校正图像与基本层进行遍历运算操作,得到细节层.

步骤5.构造反色调映射函数,分别对步骤4 获得的细节层和步骤2 获得的伽马校正图像进行反色调映射操作,得到各自的反色调映射后的图像.

步骤6.融合步骤5 中得到的两幅反色调映射图像,得到新的亮度分量图像.

步骤7.将步骤1 分离的饱和度S、色度分量H与步骤6 新得到的亮度分量进行融合的到HSV 颜色空间中的HDR 图像.

步骤8.将步骤7 得到的HSV 颜色空间下的HDR 图像转换到RGB 颜色空间.

步骤9.将步骤8 获得的图像进行去噪处理,消除噪声,得到最终的HDR 图像.

3 仿真与分析

在CPU 为Pentium(R)D,3.30 GHz,内存为8 GB 的计算机上,使用vs2013+OpenCV2.4.11对基于细节层分层的单曝光HDR 图像生成算法进行实验验证,并将本算法实验结果与经典的Akyuz算法[13]、Banterle 算法[12]、Huo 算法[4]和Zhu 算法[22]进行对比,对得出的实验结果分别给出了主观和客观评价分析.

3.1 主观评价

图8 是几种算法的运算结果,为便于展示,将HDR 图像色调映射到普通显示屏显示范围上比较.从左到右图像序列依次为原图像、Akyuz 算法、Banterle 算法、Huo 算法、Zhu 算法以及本文算法的处理结果.从几种算法的结果可以看出,Akyuz 算法和Banterle 算法存在着色彩信息偏移问题,图像整体偏白,而Huo 算法在扩展过程中,色彩信息保持较好,但在图像的细节信息上有一定损失,图像部分区域涂抹感较严重,例如图中支架结构及穹顶内图案部分(图8(a)).Zhu 算法色彩保持较好,但某些地方细节对比度有减弱的情况.而本文提出的算法,由于采用了细节层分离,使图像中的细节信息在图像生成过程中得到了较好的还原,特别是过曝光和欠曝光区域与其他几种算法相比有了较大的进步.

目前生成HDR 图像常见的方法是采用多曝光图像序列(如图9 所示)进行合成.本文采用hdrsoft 图像处理工具对多曝光图像序列进行合成得到HDR 图像,并将获得的图像作为真实世界动态范围相近的影像实测数据(Ground truth),同时采用图像序列中的一幅图片作为原始LDR 图像来生成HDR 图像.

图10 是本文算法与多曝光融合HDR 图像的对比图,为便于显示,同样采用了色调映射处理.最左侧图像为本文算法处理的单曝光LDR 图像,中间图像为多曝光图像序列融合而成的HDR 图像,最右侧为本文算法的处理结果图.

从图10 可以看出,采用多曝光图像融合而成的HDR 图像相较于本文提出的基于细节层分离的单曝光图像生成算法而言,对比度更大,色彩表现力更强.但与此同时,由于采用多曝光融合的方法,在一些原本色调统一的区域,经过处理后可能出现色彩分布不均匀的现象,例如白色建筑的天空区域.而两种算法除去对比度的不同以外,在图像细节信息上表现基本一致.

3.2 客观评价

图8 几种算法结果对比Fig.8 Comparison results of several algorithms

图9 白顶建筑LDR 图像序列Fig.9 LDR image sequences of white top architecture

图10 本文算法处理与实测数据对比Fig.10 Comparisons of our algorithm and ground truth

采用DRIM (Dynamic range independent image quality metric)[25]对算法进行客观评价.DRIM 将原LDR 图像与处理后的HDR 图像进行对比,来得到3 种不同类型的失真,分别用红、绿、蓝3 种颜色表示.红色表示对比度翻转(HDR 图像的对比关系在该部分与相应LDR 图像相反).绿色表示对比度丢失(LDR 图像可见的信息在HDR 图像中丢失).蓝色表示对比度增强(LDR 图像中不可见或不容易看见的信息在HDR 图像中被增强为可见信息).DRIM 对比图如图11 所示,从左到右图像列分别为原图像、Akyuz、Banterl、Huo、Zhu 以及本文算法的DRIM 结果图.通过图11 可以直观地看出不同算法的各种效果.表2 是3 种色彩所占图像像素点的比例.DRIM 的结果表明,本文基于细节层分离的单曝光HDR 图像生成算法提升了图像的动态范围,在增强图像细节信息的同时,尽可能少地减少了图像细节信息的丢失,在保留图像细节信息上,总体表现为几种算法中最好的一种.

图12 是DRIM 对随机选取的20 幅不同单曝光HDR 生成图像的评价结果折线图.从左到右分别为红、绿、蓝3 种颜色像素点所占百分比,每幅图的纵坐标为像素所占百分比,横坐标表示每一幅生成的HDR 图像.从图12 可以看出,除了在红色像素点,Huo 算法比本文提出的两种算法在个别图像中表现更好以外,在绿色像素点本文提出的两种算法所占百分比总体都低于其他3 种对比算法.蓝色像素点部分本文提出的两种算法同样优于对比算法.

表3 是5 种算法对图8 中的7 幅图像处理后的图像动态范围.由于处理结果中会出现动态范围数量级相同,但具体数值不同的情况,因此为了更清晰地反映算法性能差别,在表达动态范围时不作对数处理,此处采用的动态范围的计算方法为

表2 DRIM 对比图中红、绿、蓝各像素点所占百分比(%)Table 2 Percentage of red pixel,green pixel and blue pixel in DRIM (%)

图11 几种算法DRIM 对比图Fig.11 DRIM comparisons of several algorithms

其中,Max-I表示图像中最亮点的亮度值,Min-I表示图像中最暗点的亮度值.从表3 可以看出,Zhu算法的基于光源采样的单曝光HDR 图像生成算法,由于对光源的采样和模拟,动态范围表现最好,其次为基于细节层分离的单曝光HDR 图像生成算法与Huo 算法.

3.3 运算时间

对于分辨率为600 像素×400 像素的图片,Akyuz 算法所用平均时间为0.03 s,Banterl 算法为4.13 s,Huo 算法为0.15 s,Zhu 算法为0.106 s,而本文算法耗时为0.058 s,满足了对标清图像进行实时处理的要求.

表3 图像处理后动态范围对比Table 3 Comparisons of dynamic range

图12 DRIM 红、绿、蓝百分比折线图Fig.12 Line charts of red,green and blue percentage in DRIM

4 结论

针对单曝光LDR 图像细节信息不足的问题,本文提出了一种基于细节层分离的单曝光HDR 图像生成算法.该算法结合HVS 模型,将LDR 图像分离出亮度分量和色度分量.对分离出来的亮度分量进行Gamma 校正,之后再对Gamma 校正后的图像采用双边滤波操作,进行基本层与细节层分离;然后将分离出来的细节层与Gamma 校正后的亮度分量分别进行反色调映射后进行融合得到新的亮度分量;最后将各图像分量进行融合去噪得到最终的HDR 图像.通过与其他3 种经典的单曝光HDR 图像生成算法比较,本文算法可以有效地提高图像的动态范围,并挖掘出LDR 图像中部分隐藏的细节信息,在一定程度上弥补了单曝光LDR 图像细节信息不足的缺点,但对于存在极大面积饱和区域像素点的图像处理效果不佳,与此同时,为了算法效率考虑,在反色调映射过程中,牺牲了一定的扩展效果,下一步需要对算法效率进一步提高,并改善反色调映射算子.

猜你喜欢

像素点色调亮度
图像二值化处理硬件加速引擎的设计
远不止DCI色域,轻量级机身中更蕴含强悍的亮度表现 光峰(Appptronics)C800
基于局部相似性的特征匹配筛选算法
湖光水色调
色调会说话
亮度调色多面手
分离色调与色调曲线
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
亮度一样吗?