美颜特效SDK的工作原理,原相机如何实现视频实时美颜?

时间:2024-03-17 21:08:31

我们常吐槽手机(尤其是苹果)原相机丑,其实并不是原相机丑,是“耿直”,不对拍摄出的图片做出任何修饰,镜头怎么歪就怎么扭曲图像、不能自主实现左右翻转、没有磨皮效果且镜头高清,不给美白并对细节真实还原,照出你的全部缺点。如何解决该问题?给耿直的手机原相机加个美颜特效SDK,一切问题都能迎刃而解。

那么,美颜特效SDK的工作原理是怎么样的?

美颜特效SDK的工作原理,原相机如何实现视频实时美颜?

接触过UI或者有PS兴趣的朋友可能会理解的更快一些,这里简单讲一下在大名鼎鼎的PS中,通过后期对图片视频进行美颜的技术是如何实现的(是的,ps+pr能实现视频美颜吗,想不到吧)

以下是工作的具体步骤:

1、 磨皮

使用双边滤波/导向滤波/表面模糊等滤波算法模糊图像,这里要注意保边处理,避免人脸和背景同时被模糊造成边界不清。

以双边滤波为例。取出绿色通道,对绿色通道进行模糊,得到模糊后的值sampleColor。再用原图绿色通道值减去sampleColor,加上0.5(即128),这两个步骤即PS中的高反差保留。

vec3 centralColor = texture2D(inputImageTexture, textureCoordinate).rgb; 
float highpass = centralColor.g - sampleColor + 0.5; 
再对上述结果值进行3-5次强光处理,此步骤可以使得噪声更加突出

if(color <= 0.5){ 
color = color color 2.0; 
}else{ 
color = 1.0 - ((1.0 - color)(1.0 - color) 2.0); 

美颜特效SDK的工作原理,原相机如何实现视频实时美颜?


美颜特效SDK自动计算原图的灰度值,公式为0.299R + 0.587G + 0.114*B得到灰度图片之后,将灰度值作为阈值,用来排除非皮肤部分,根据灰度值计算,将原图与结果图合成。

float alpha = pow(lumance, 0.333333); 
vec3 smoothColor = centralColor + (centralColor-vec3(highpass))alpha0.1;</span> 
接下来提高亮度,消除噪声

pow函数中第二个参数可调(1/3~1),值越小,alpha越大,磨皮效果越明显,修改该值可作为美颜程度。

并对混合后结果增加亮度,调整饱和度等参数得到最终图。

2、 美白

美颜特效SDK对人脸进行美白时,要用肤色检测算法保护头发、眉毛等区域,仅提亮人脸皮肤部分的亮度,保护其他地方,这里会涉及到人脸分割、关键点识别和人脸检测等知识点。

3、 将模糊后的图像和原图进行图像融合进行锐化处理。

美颜特效SDK的工作原理,原相机如何实现视频实时美颜?

手机原相机实现视频实时美颜的意义何在?

首先举几个反应快的案例:美图手机、VIVO和OPPO手机

然后举一个反应慢的案例:苹果手机

后者在手机系统上完爆前者五条街,但后者的相机在女性用户的喜爱程度上,被前者甩了五条街。前者如果没有美颜,根本不会成长为现在这个体量,后者如果有美颜,也许就不会失去一部分爱好原相机美颜的客户。

而原相机,说白了就是一个软件,给它接入个美颜特效SDK能有多难,连“直男手机”华为都加上了美颜。

扯远了,以上就是本篇文章全部内容,转载请注明原文出处及作者。