视频增强中亮度闪烁问题的研究及解决

2018-03-30 07:10侯天峰叶长青曾舒婷
微型电脑应用 2018年2期
关键词:人眼亮度光照

侯天峰, 叶长青, 曾舒婷

(南京大学金陵学院, 信息科学与工程学院, 南京 210000)

0 引言

摄像机拍摄时,光照是影响视频质量的重要外在因素。夜间、暗光条件下、存在光源遮挡或强光源时,捕获的图像会相应出现亮度不足、光照不均及高光等情况,会使图像部分区域的细节信息丢失。对于监控视频,可能会导致人脸及车牌等关键信息提取及识别失败,对于消费设备的影音照片,则无法呈现良好的主观效果,同时对后续编辑及处理造成较大困难。

以上种种不良光照因素造成的细节丢失影响,可以通过图像增强算法改善质量。常常采用的算法主要有:同态滤波[1]、灰度变换法[2]、小波变换增强[3]、Retinex算法[4]等等。其中基于Retinex理论的增强方法发展和应用尤为广泛,其具有细节增强和动态范围压缩等优点。从一开始的单尺度Retinex,到后来出现了多尺度算法以及带颜色恢复的Retinex算法等等。文献[5]中引入双边滤波器来代替传统高斯环绕滤波,在消除“光晕”方面有了一定的效果且对边缘处的增强效果也较好,因为双边滤波具有边缘保持特性。文献[6]引入导向滤波器进行照度分量计算,相较于双边滤波器效果更优,不存在梯度反转,而且时间复杂度和滤波半径无关。Bo Sun提出一种亮度修正的Retinex算法,将Canny算子和Retinex算法结合起来,首先分析入射分量,接着采用Canny算子检测图像边缘信息[7],可以有效的消除“光晕”。邵振峰等人[8]提出将输入图像转换到HIS空间,再对饱和度及亮度进行处理,同时增强图像边缘处细节特征。

目前基于Retinex理论的研究主要集中于于消除算法“光晕”问题、更快速有效的照度计算滤波器、对比度的提升以及边缘细节的增强,但是忽略了实际应用中对多帧视频处理的需求以及过处理所造成的亮度闪烁、色彩失真等问题。本文对基于Retinex理论的算法进行研究,考虑日常影视及移动设备拍摄及播放视频的增强处理要求,在大量实验基础上,发现增强多帧时帧间存在亮度闪烁问题,从而引入的闪烁度量指标,提出一种消除闪烁的光照补偿算法,在增强视频的同时,有效消除亮度闪烁。第3、4部分的分析和实验表明本文算法是切实有效的。

1 Retinex理论

Retinex算法认为原图像可分解为反射部分和入射部分。入射分量表征环境光照影响,亦称照射分量,而反射分量决定图像的内在性质,因此可通过一定的方法估计出图像的低频的光照信息,进而提取出图像的反射分量,即图像的细节信息,就可还原物体原来景象,从而达到增强图像的目的。

算法数学模型通常表示为式(1)。

S(x,y)=R(x,y)*L(x,y)

(1)

式(1)中,S是观察到的原始图像,R为反射分量,反映物体真实信息,L表示照射分量。

实际计算时需要将(1)式变换到对数域处理,对(1)式两边取对数得式(2)。

log(S(x,y))=log(R(x,y))+log(L(x,y))

(2)

从原始图像直接获得物体的反射分量较困难,但可以先估计出照射分量,然后利用(2)式计算得到反射分量。不同的文献和算法对照度图像估计的处理方式不同,通常都是用低通滤波器对原始图像进行卷积来估计照度分量图像,高斯滤波是常用滤波器之一,可以得到较好的增强效果为式(3)。

(3)

式(3)中为c尺度参数,c的大小可以用来调节图像增强效果。

2 帧间闪烁现象分析

通过大量实验观察,Retinex对连续多帧图像进行处理时,增强后图像帧之间存在较明显亮度闪烁问题,明显影响播放的主观视觉效果。究其原因,一方面在于Retinex增强过程其实是一种非线性操作,原本帧间相差无几的亮度经非线性处理后差异存在被放大的可能;另一方面,从人眼视觉特性的角度来说,低亮度时的差异不易被观察,而中高亮度时的灰度值差异更易被察觉,以致人眼能够明显感觉到闪烁的存在。

2.1 亮度差异感知的视觉特性

两组手动生成的纯色测试图像,如图1所示:

都是256级灰色图,第一组的两张图像像素值分别为15和20,第二组为195和200,通过长时间多次主观观察的对比,可以发现第二组的差异较第一组更容易被察觉及感知。

造成上述主观感受差异的原因在于人眼的视觉特性。人眼视力随着被观测物体的亮度变化是非常显著的,一般情况下视力随亮度的增加而提高。亮度与视力关系曲线,如图2所示。

图2 视力与亮度关系曲线

横轴为亮度(单位尼特),纵轴为兰道尔环视力。可以看到,直到3000尼特左右,视力都在随亮度而上升,0.01尼特以下的亮度视力会变得很差,而且从0.1至300尼特的亮度范围内,视力与亮度的对数成正比,符合费希纳定律所述。

这种特性同时反映在不同亮度基准下对差异识别的影响。把两个不同亮度的图像放在一起,为了区分它们的不同,其亮度应该有一定的差异,小于这个差异,人眼就很难区分出来,此即韦柏提出的“最小可觉差”。根据韦柏定律,即感觉的差别随原来刺激量的变化而变化,而且表现为一定的规律性,用公式来表示为式(4)。

(4)

其中I为原刺激量,ΔI为此时的差别阈限,K为常数,又称为韦柏率。文献[10]认为:K<0.05,一般取K=0.02。对于图1的两组相邻帧图像,ΔI分别为:

ΔI1=K*I1=0.02*15=0.3

ΔI2=K*I2=0.02*195=3.9

因此图1中(b)组中两幅纯色灰度图人眼感知到的差异会比第一组明显,而图像增强算法会提高原图像中暗区域亮度。由此得出第一个结论:Retinex增强图像亮度后人眼更容易感受到帧间亮度的差异,即闪烁的存在。

2.2 Retinex增强的差异放大特性

Retinex处理过程中存在log、exp以及数据映射等非线性操作,由此存在放大原始帧之间亮度差异的可能,如图3所示。

图3(a)为原视频截取的相邻两帧图像,为同一场景,对应的增强后结果见图3(b)。图3(c)为处理前后第1、2帧间亮度差异对比,蓝色曲线表示原始帧间亮度差,红色曲线表示增强图像帧间亮度差。从图3(c)可以看出处理后明显放大了原始帧间同区域的亮度差异。由此文章得出第二个结

(c) 亮度差异曲线

论:Retinex算法处理过程会使原本微弱的差异变得更加明显,从而导致闪烁。

2.3 闪烁因子

为了更好地分析和说明亮度闪烁问题,本文引入闪烁因子概念,用gc来表示,用以定量描述同场景帧间同一区域人眼感知到的亮度差异。根据费希纳定律:感觉强度与刺激强度的对数成正比[10],因此本文定义为式(5)。

(5)

其中,Icur为当前帧处理结果,Iref为上一帧处理结果,Ω为亮度比较区域,本文Ω选为整幅图像区域,N为该区域内像素数量。闪烁因子可以描述对视频进行光照增强时人眼感受到的相邻帧闪烁的剧烈程度,以更好地反映观察者接受到的主观刺激差异,从而定量衡量增强算法优劣。

3 修正闪烁的Retinex算法

观察者观察到的视频闪烁效果是从一帧图像到下一帧图像的全局亮度变化,其前后帧亮度关系基本数学模型[9]为式(6)。

In+1(x,y)=fn,n+1(In(x,y),x,y)=

an,n+1(x,y)·In(x,y)+bn,n+1(x,y)

(6)

上式中,In(x,y)是第n帧图像的亮度信息;an,n+1(x,y)为第n帧与第n+1帧之间亮度变化的乘性因子;bn,n+1(x,y)为第n帧与第n+1帧图像之间亮度变化的加性因子。

为了简化起见,文章忽略加性因子只计算乘性因子,同时因为闪烁的大面积覆盖特性,因此可以假设在一个较小区域内乘性因子保持不变,即在局部区域内皆为常数。由此,式(6)变成为式(7)

In+1(x,y)=an,n+1,Ωk·In(x,y)

(7)

对Ωk内所有像素点都有上式成立,求和可得式(8)。

(8)

解得式(9)。

(9)

为防止分母为0的极端情况,分母加上一个很小的数以作修正为式(10)。

(10)

整幅图像所有区域的an,n+1,Ωk可构成一个矩阵An,n+1。视频闪烁虽然在时域上造成各帧亮度急剧变化的效果,但对单幅图像来说,即使被闪烁影响产生失真,其亮度在空间域上还是连续变化的,所以前后帧变化参数矩阵An,n+1也应该在空间域上呈现平缓变化,因此An,n+1应具有空间平滑特性,故需对根据式(10)求出的变化参数进行低通滤波,本文选择尺寸为3×3的高斯滤波器。

基于以上研究和描述,提出一种改进的Retinex增强算法,修正算法处理过程为式(11)。

(11)

a、根据式(2)逐帧计算反射分量;

b、根据(10)式计算前一帧与当前帧之间的亮度变化参数;

c、对亮度变化参数矩阵进行平滑滤波;

d、依据下式修正当前帧反射分量

需要提醒的是,以上算法适合固定场景的增强处理,如果帧间存在场景变化,需要先对原图像进行帧间运动估计,矫正像素坐标后再计算亮度变化参数,可选取视频编码中广泛应用的块匹配方法。

4 实验

文中所有实验图像均来自影视片段,转换到YUV格式进行处理,尺寸为640×336。利用Matlab进行算法编程和运算。所有算法均调整至最佳效果。计算亮度差异参数an,n+1,Ωk时,选择的区域尺寸为4×4。

为了充分验证所提算法有效性,文章进行了大量实验。下面选取2组进行对比评价。第一组图像为静态电影片段,场景保持不变,共计31帧,如图4所示。

图4(a)为视频序列中的第一帧,图4(b)为相应的增强图像,图4(c)为31帧图像处理前后的30组闪烁因子的对比,蓝色为原始图像帧间的闪烁因子曲线,绿色为传统Retinex算法处理的闪烁因子曲线,红色为本文改进算法的闪烁因子曲线。可以看出原始帧由于亮度很低,根据人眼视觉特性,感受到的亮度差异很小,播放时几乎观察不到闪烁的存在,但经过传统Retinex算法处理后,基于亮度差异感知的视觉特性和非线性处理的差异放大特性,导致闪烁变得非常明显,而由本文提出的改进措施有效抑制了闪烁,gc曲线幅度明显降低。

第二组图像为动态电影片段,共计8帧,场景存在小范围偏移,此时需要在计算亮度差异参数之前对原始图像做运动补偿,本文选取块匹配方法,如图5所示。

(a)原始图像(b)增强图像

(c) 闪烁因子曲线

(c) 闪烁因子曲线

图5 第二组实验

图5(a)为序列中的第一帧,图5(b)为相应的增强图像,图4(c)为闪烁因子gc对比图,蓝色为原始帧间的闪烁因子曲线,绿色为Retinex增强结果的闪烁因子曲线,红色为修正算法的闪烁因子曲线,同样抑制效果明显。

5 总结

文章着眼于视频光照增强处理的实际观看需求,在大量实验中发现了Retinex算法存在的闪烁问题,基于人眼视觉特性及Retinex非线性特性进行分析和解释,提出闪烁因子,将人眼观察到的亮度闪烁程度数值化以便捷度量算法优劣;同时改进传统算法,修正了处理过程。理论分析及实验表明本文所提量化指标及改进算法是客观有效的。下一步工作将致力于研究在极低光照条件下,如果提高图像细节的增强及恢复能力。

[1] 焦竹青. 基于同态滤波的彩色图像光照补偿方法[J]. 光电子激光. 2010,21(4): 602-605.

[2] 梁琳,何卫千,雷蕾等. 光照不均图像增强方法综述[J]. 计算机应用研究. 2010,27(5): 1625-1628.

[3] Zafar I M, Abdul G, Masood S A. Satellite Image Resolution Enhancement Using Dual-Tree Complex Wavelet Transform and Nonlocal Means[J]. IEEE Geoscience and Remote Sensing Letters, 2013,10(3):451-455.

[4] 蒋永馨,王孝通,徐晓刚,等. 一种基于光照补偿的图像增强算法[J]. 电子学报. 2009,37(4A):151-155.

[5] Michael Elad. Retinex by Two Bilateral Filters[J]. The Computer Science Department,Scale-Space. 2005:217-229.

[6] Kaiming He, Jian Sun, Xiaoou Tang. Guided Image Filtering[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2013.

[7] Bo Sun,Weifang Chen,Hongyu Li,et al. Modified Luminance Based Adaptive MSR[C]∥Fourth International Conference on Image and Graphics. 2007:116-120.

[8] 邵振峰, 白云, 周熙然. 改进多尺度Retinex理论的低照度遥感影像增强方法[J]. 武汉大学学报. 2015,40(1):32-39.

[9] YM Kim, KT Park, DS Lee. Video dehazing without flicker artifacts using adaptive temporal average[C]∥The 18th IEEE International Symposium on Consumer Electronics,2014:1-2.

[10] 尹芹.提高工业数字射线图像对比度及信噪比的工艺措施[J]. 无损检测, 2011, 33(1): 58-61.

猜你喜欢
人眼亮度光照
节能环保 光照万家(公益宣传)
远不止DCI色域,轻量级机身中更蕴含强悍的亮度表现 光峰(Appptronics)C800
当幻想的光照进童心世界
隐蔽的力量
人眼X光
亮度调色多面手
人眼为什么能看到虚像
亮度一样吗?
闪瞎人眼的,还有唇
看人,星光璀璨缭人眼