饱和度增强指的是通过调整图片和视频画面的饱和度特性,使得画面色彩得以还原真实色彩更加逼真或相比原画面更加丰富,从而提升人的视觉主观感受。对视频图像等后处理具有重要的意义。
1. 饱和度
饱和度是指色彩的鲜艳程度,也称色彩的纯度。
饱和度取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。
其中,HSV模式中饱和度(Saturation)的计算公式(基于RGB色彩通道):
饱和度也可定义为彩度除以明度,与彩度同样表征彩色偏离同亮度灰色的程度。计算公式如下:
2. 自然饱和度增强模型
有了前面对饱和度的定义和计算公式,我们知道当拿到当前任意一个像素点,我们知道如何获取这个像素点的饱和度。
接下来,我们的目标是,对饱和度进行增强调节,首先,给出定义饱和度增强的数学模型,如下:
以上公式关键有2点:
(1) 利用了第1节中关于彩度定义中,彩色偏离灰色的程度,我们对饱和度增强就是在加大这个偏离程度。
(2) 通过什么样的数学模型表征这个偏离程度,线性模型还是非线性模型。如果使用线性,可能会存在对一些色彩过度增强导致色偏。
基于以上第2点,自然饱和度(Vibrance)的概念早已被提出。在调整自然饱和度时,会自适应提升画面中即饱和度低的颜色,而使原本饱和度够的颜色保持原状。自然饱和度的概念最先由 photoshop 提出,重点在于适应性,自然饱和度调整后一般比直接饱和度调整要更自然。
如何实现自然饱和度,这个时候主要看上面公式中如何定义。本文提出一种简化的基于Gamma曲线的自然饱和度数学模型:
其中,sat的计算由第一节两个饱和度计算公式的出。
该数学模型的曲线如下图:
从以上曲线看出,该模型根据当前像素点的饱和度,很好地自适应调整了对应的饱和度系数。饱和度越高的点,增强效果越弱,饱和度越低的点,增强效果越强。
3. 肤色保护模型
在短视频或直播视频中,人像作为画面的主要内容的场景频率较高,以上的自然饱和度模型并没有考虑肤色情况,如果不加区别进行调节,可能会导致人像肤色偏红失真。因此,我们需要针对肤色区域进行识别,并对肤色区域做特殊处理,进而减轻饱和度的调整强度。
此时,新的饱和度增强模型更新为,其中,代表肤色模型:
常用的肤色模型,包括基于RGB,YCrCb,YCgCr,HSV等色彩模型。针对肤色识别,已经有很多文章,本文限于章节内容,不做具体介绍。可以参考文献[1];
以上每一种模型都有自己的局限性,无法保证各种场景有100%的正确肤色识别正确率,和错判为肤色误判率。比如,RGB彩色模型受亮度影响较大;以上模型基本模型都有一个一个共同特征,按照区别判断,比如,以常用的YCrCb为例,可能的肤色区别为(最好根据自己的数据源调整范围):
直接应用以上数学模型判断,会导致二值效应,即强烈的边际效应。所以改进的模型,可以基于YCrCb椭圆模型,使得的输出改为连续的函数,调整后的模型如下,表示的含义是,离肤色中心点越接近,值越接近1,即代表为肤色的概率越高,否则,越远离肤色点,表示为肤色的概率越低。从而保证,的输出是连续的。
其中,C_rmax,C_bmax代表阀值上界,C_rmin,C_bmin代表阀值下界:
经以上优化后,新的模型为:
其中,根据RGB计算得到。
参考文献:
[1]Human Skin Detection Using RGB, HSV and YCbCr Color Models
喜欢的话,记得帮忙点赞