罗天,王毅,袁霞
(成都索贝数码科技股份有限公司,成都610065)
当相机自动白平衡失效或手动白平衡参数设置不当时,拍摄的画面有时候会有严重的偏色问题,严重影响了画面的视觉观看效果。然而图像的颜色信息往往是进行图像分析的重要依据,真实的色彩信息有助于得到正确可靠的分析结果。因此研究能真实反映观察对象本身颜色的颜色校正技术具有重要的研究意义。
为了解决图像偏色导致的白平衡失真和细节丢失等问题,需要采用合适的颜色校正算法来恢复图像的白平衡和图像细节信息。对于一般程度的偏色图像,可以使用自动白平衡,色温,色调工具进行调整,并且往往能得到不错的处理效果。基于灰度世界[1]和最大亮度[2]的白平衡算法是最常用的偏色图像校正方法。文献[3]提出了一种基于色温估计的自适应白平衡颜色校正算法,由于算法中保持G通道不变,该算法也能较好地还原一些轻度偏色的图像。近年来学术界又提出的一系列算法[4,5,6],也极大地改善了偏色校正问题,但是它们都存在一个问题,就是在某些场景下算法的效果较好,不具备传统算法地普遍适用性,并且这些算法都计算复杂,运算量较大。值得注意的是,当画面的偏色问题过于严重时,上述的大多校色算法的处理效果就显现其局限性了[7],要么是不能将画面白平衡恢复到正常范围内,要么是在色彩校正的过程出现曝光过渡和色彩溢出的问题。
本文提出了一种基于RGB色彩通道混合的颜色校正算法,算法通过对画面内RGB三种颜色比例的重组来完成,不但对偏色程度较小的图像有较好的校正效果,对严重偏色的图像也能有较好的结果。通过直接每个像素点RGB通道的数据进行调节,利用算法的并行性,能快速实现对偏色图像的校正。本文算法是对整幅图像的RGB通道进行混合处理,所以图像的边缘较传统的曲线调色有更细腻的处理结果。此外,本文根据Rec.709视频[8]标准在算法中加入了亮度混合的算法,能够有效保证算法在处理前后图像画面的亮度基本保持一致,能够避免一些传统校色算法出现的曝光过渡和色彩溢出等问题;图像色彩之间的过渡平滑,从而获得较好的增强效果。
基于RGB通道混合颜色校正算法可以在不影响画面中的颜色的亮度情况下,将严重偏色的图像画面恢复到白平衡基本正常的水平。通过分析偏色图像的直方图、波形图来确定图像偏色的程度,根据偏色程度选择红绿蓝颜色通道上的混合系数;依据所选取的混合系数分别计算出红绿蓝通道上像素值的偏移量;结合亮度混合原理、原始图像和计算出的偏移量,计算输出校正后的图像。
本算法是基于图像中R、G、B三原色原理来实现图像偏色校正算法,能够有效保证像素点的亮度在校色前后基本一致,避免校色过程中出现曝光过度的问题,且图像块边缘校色过渡平滑。充分利用图像像素点的并行性,极大提高了算法的效率。算法总体思路是通过整个颜色校正算法的流程图如图1所示。
图1 本文颜色校正算法流程图
本文提出的算法是对图像RGB通道的数值进行变换来实现颜色校正。与之前一些通道变换的算法不同的是,本文的算法可以通过直接增大或减小R通道的数值来改变R通道,也可以在R通道上混合一定比例同一像素点的G通道或B通道上的数值来改变R通道的数值;G通道上的调整方式也一样,可以直接对G通道的数值进行调节,在G通道上混合一定比例R通道或B通道上的数值;B通道上数值的调节方式类似。设红色通道上的混合系数为:R r,R g,R b;绿色通达上的混合系数为:G r,G g,Gb;蓝色通道上的混合系数为:B r,B g,Bb。所有混合系数的取值范围为[-2,2],其中R r,R g,R b的初始状态值为1.0,其余混合系数的初始默认值为0.0。
图像画面出现严重的偏色问题时,画面中的真实色彩信息都会被偏色严重影响。在示波器中观察,他们都有一个共同的特征:RGB三个通道的数值极度不平衡。本文算法第一步就是,计算图像RGB三通道的波形图、直方图,根据波形图/直方图中的各通道分量所占的比例来计算RGB通道上的混合系数。
根据上一步得到的混合系数,可以计算出RGB通道上的偏移量,具体的计算公式如式(1)所示:
式中,R、G、B分别为像素点红绿蓝通道上的数值;Rr,R g,Rb表示R通道上混合系数;Gr,G g,Gb表示G通道上混合系数;B r,B g,B b表示B通道上混合系数;r,g,b表示RGB通道上的偏移量。
为了模仿人眼对光波长的敏感度,Rec.709视频标准定义亮度公式如下:
式中,ɑ=0.2126,β=0.7152,γ=0.0722,R、G、B分别为像素点红绿蓝通道上的数值,Y为像素的亮度值。由上述公式可以得到,相同亮度的一束光,绿色给人的感觉最亮,而蓝色最暗。
引入亮度混合是为了使得像素点的亮度在校色前后基本保持一致,能有效避免在颜色校正的过程中出现曝光过度和色彩溢出等情况。从式(3)的计算公式可以看出,为了实现亮度混合,即保持计算过程中Y的数值不变,当将RGB中某一通道的数值增大或减小时,另外两个通道的数值会相应地减小或增大。RGB通道输出值的具体计算方式为:
式中,ɑ=0.2126,β=0.7152,γ=0.0722,R、G、B分别为像素点RGB通道上输入值,r、g、b分别为RGB通道上的偏移量,R out、G out、B out分别为RGB通道上经亮度混合计算后的输出值。
式中,Y in表示颜色校正前像素点的亮度,Y out表示颜色校正后像素点的亮度;将式(3)中的R out、G out、B out代入到式(4)中,能够得到Y in等于Y out。
本文使用的实验数据均来自公开图像数据集MIT-Adobe FiveK dataset(https://data.csail.mit.edu/graphics/fivek/)。
本文采用了两种常用的客观测量标准,分别是信息熵之差、均方误差(Mean Square Error,MSE),它们被广泛用于测量两种颜色之间视觉感知的变化[7,9]。其中,图像的熵是一种特征的统计形式,它反映了图像中平均信息量的多少,信息熵之差的大小,从信息量的角度反应了已知图像与参考图像的相似程度。均方根误差主要是评价已知图像和参考图像之间误差大小,差值越小,表明两者越相似,差值越大,表明两者之间的差异越大。我们将Photoshop上流行的色彩校正功能与本文算法进行了对比,其中Photoshop的版本为19.0 20171103.r.190 2017/11/03:1143799。
图2 各种图像偏色校正算法结果对比图
如图2所示,(A)偏色图像行表示的是算法的输入图像,分别为画面偏红,偏绿,偏蓝的图像;(B)Ps AT校正,表示经过PS中的自动色调(Auto Tone,AT)工具校正后的结果;(C)Ps AC校正,表示经过PS中的自动颜色(Auto Color,AC)工具校正后的结果;(D)Ps AWB校正,表示经过PS中的自动白平衡(Auto White Balance,AWB)工具校正后的结果;(E)本文算法,表示本文提出的色彩校正算法的校正结果;(F)参考图像,表示白平衡正常,没有偏色的参考图像。
表1 各个颜色校正算法的计算指标表
实验结果显示,客观上,本文计算了各个算法输出结果与参考图像之间的信息熵之差、均方误差。其中,信息熵一栏的计算结果表示的是各种颜色校正算法的结果与参考图像的信息熵之差,均方误差一栏的计算结果表示的是校正结果与参考图像之间的均方误差。信息熵之差和均方误差越小,表示校正后的图像与参考图像的相似度越高,两图越更加接近。实验结果如表一所示,本文提出的算法有最小的信息熵之差(0.0167)和最小的均方误差(48.6266)。实验数据表明,在校正严重偏色图像时,本文算法较传统自动色调、自动颜色和自动白平衡等颜色校正算法,有更好的颜色校正表现。
在主观评价方面,我们直接对比本文提出的算法与PS的自动色调、自动色彩、自动白平衡等算法的处理效果图。从图1可以明显看出,与传统的PS色彩校正方法相比,本文算法颜色校正后图像整体颜色与参考图像颜色更加接近。本文算法能将画面的白平衡几乎恢复达到正常值,而且画面中原来被偏色污染的色彩细节都被恢复。校正后图像中各个物体的真实色彩信息也得到较好的复原,使得整个画面能够传达更丰富的视觉信息。
图像色彩校正是影视后期、图像处理、计算机视觉中极为基础但又十分关键的步骤。本文提出的算法,通过混合图像RGB色彩通道的数值来对色彩通道进行色彩映射,并且算法中引入了亮度混合原理来实现调色前后曝光强度恒定,有效防止曝光过渡和色彩溢出等问题。RGB混合器通过通道混合来改变像素的色彩,避免了曲线、高中低光调节等带来的色阶断层或过渡不自然的问题,校正后的图像画面过渡非常自然。实验的主客观实验数据也表明了该算法在处理严重偏色图像时,有较好的视觉效果,并且较之前传统算法有较大的优势,在影视制作和广播电视领域具有广阔的应用前景。