饱和度增强指的是经过调整图片和视频画面的饱和度特性,使得画面色彩得以还原真实色彩愈加逼真或比较原画面愈加丰富,从而提高人的视觉片面感触。对视频图画等后处理具有重要的意义。

1. 饱和度

饱和度是指色彩的鲜艳程度,也称色彩的纯度。

饱和度取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。

其间,HSV模式中饱和度(Saturation)的核算公式(依据RGB色彩通道):

hsv.sat=max(r,g,b)−min(r,g,b)min(r,g,b)hsv.sat=frac{max(r,g,b)-min(r,g,b)}{min(r,g,b)}

饱和度也可界说为彩度除以明度,与彩度同样表征五颜六色违背同亮度灰色的程度。核算公式如下:

sat(r,g,b)=max((r,g,b)−gray1−gray,gray−(r,g,b)gray)sat(r,g,b)=max(frac{(r,g,b)-gray}{1-gray},frac{gray-(r,g,b)}{gray})
sat=max(sat(r,g,b))sat=max(sat(r,g,b))

2. 天然饱和度增强模型

有了前面对饱和度的界说和核算公式,咱们知道当拿到当时恣意一个像素点,咱们知道怎么获取这个像素点的饱和度。

接下来,咱们的目标是,对饱和度进行增强调理,首先,给出界说饱和度增强的数学模型,如下:

color=rgb+f(sat)⋅(rgb−gray)color=rgb+f(sat)cdot(rgb-gray)

以上公式关键有2点:

(1) 利用了第1节中关于彩度界说中,五颜六色违背灰色的程度,咱们对饱和度增强就是在加大这个违背程度。

(2) 经过什么样的数学模型表征这个违背程度,线性模型还是非线性模型。如果运用线性,或许会存在对一些色彩过度增强导致色偏。

依据以上第2点,天然饱和度(Vibrance)的概念早已被提出。在调整天然饱和度时,会自适应提高画面中即饱和度低的色彩,而使本来饱和度够的色彩保持原状。天然饱和度的概念最先由 photoshop 提出,重点在于适应性,天然饱和度调整后一般比直接饱和度调整要更天然。

怎么实现天然饱和度,这个时候主要看上面公式中f(k)f(k)怎么界说。本文提出一种简化的依据Gamma曲线的天然饱和度数学模型:

f(sat)=k(1−sat)1.7f(sat)=k(1-sat)^{1.7}

其间,sat的核算由第一节两个饱和度核算公式的出。 该数学模型的曲线如下图:

依据肤色维护的天然饱和度增强算法

从以上曲线看出,该模型依据当时像素点的饱和度,很好地自适应调整了对应的饱和度系数。饱和度越高的点,增强作用越弱,饱和度越低的点,增强作用越强。

3. 肤色维护模型

在短视频或直播视频中,人像作为画面的主要内容的场景频率较高,以上的天然饱和度模型并没有考虑肤色状况,如果不加差异进行调理,或许会导致人像肤色偏红失真。因此,咱们需要针对肤色区域进行辨认,并对肤色区域做特别处理,从而减轻饱和度的调整强度。

此刻,新的饱和度增强模型更新为,其间,skin(rgb)skin(rgb)代表肤色模型:

color=rgb+skin(rgb)⋅f(sat)⋅(rgb−gray)color=rgb+skin(rgb)cdot{f(sat)cdot(rgb-gray)}

常用的肤色模型,包含依据RGB,YCrCb,YCgCr,HSV等色彩模型。针对肤色辨认,已经有很多文章,本文限于章节内容,不做具体介绍。能够参考文献[1];

以上每一种模型都有自己的局限性,无法确保各种场景有100%的正确肤色辨认正确率,和错判为肤色误判率。比方,RGB五颜六色模型受亮度影响较大;以上模型基本模型都有一个一个共同特征,按照差异判断,比方,以常用的YCrCb为例,或许的肤色差异为(最好依据自己的数据源调整范围):

{133≤Cr<17377≤Cb<127left{ begin{aligned} 133 leq C_r <173\ 77 leq C_b < 127 end{aligned} right.

直接应用以上数学模型判断,会导致二值效应,即强烈的边际效应。所以改善的模型,能够依据YCrCb椭圆模型,使得skin(Cr,Cb)skin(C_r,C_b)的输出改为接连的函数,调整后的模型如下,表明的意义是,离肤色中心点越挨近,值越挨近1,即代表为肤色的概率越高,否则,越远离肤色点值越小,表明为肤色的概率越低。从而确保,skin(Cr,Cb)skin(C_r,C_b)的输出是接连的改变的函数。

skin(Cr,Cb)=1−k⋅((Cr−Cr0)2a2+(Cb−Cb0)2b2)skin(C_r,C_b)=1 – kcdot{({frac{(C_r-C_{r0})^2}{a^2}+frac{(C_b-C_{b0})^2}{b^2}})}\

其间,C_rmax,C_bmax代表阀值上界,C_rmin,C_bmin代表阀值下界:

a=Crmax−Crmin2a=frac{{C_{rmax}-C_{rmin}}}{2}\
b=Cbmax−Cbmin2b=frac{{C_{bmax}-C_{bmin}}}{2}\
Cr0=Crmax+Crmax2C_{r0}=frac{{C_{rmax}+C_{rmax}}}{2}\
Cb0=Cbmax+Cbmax2C_{b0}=frac{{C_{bmax}+C_{bmax}}}{2}\

经以上优化后,新的模型为:

color=rgb+(1−skin(Cr,Cb))⋅f(sat)⋅(rgb−gray)color=rgb+(1-skin(C_r,C_b))cdot{f(sat)cdot(rgb-gray)}

其间,(Cr,Cb)(C_r,C_b)依据RGB核算得到。

参考文献:

[1]Human Skin Detection Using RGB, HSV and YCbCr Color Models`