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

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

float alpha = pow(lumance, 0.333333);

vec3 smoothColor = centralColor + (centralColor-vec3(highpass))alpha0.1;

接下来提高亮度,消除噪声

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

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

2、 美白

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

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

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

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

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

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

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

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

相关文章
|
9月前
|
监控 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
117 0
|
9月前
|
数据采集 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Force IP强制修改网口IP功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Force IP强制修改网口IP功能(C++)
73 0
|
9月前
|
数据采集 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用ForceIP强制修改网口IP功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用ForceIP强制修改网口IP功能(C#)
72 0
|
9月前
|
安全 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用短曝光功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用短曝光功能(C++)
84 0
|
9月前
|
数据采集 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置软件触发模式(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置软件触发模式(C++)
93 0
|
9月前
|
编解码 监控 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Binning像素合并功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Binning像素合并功能(C++)
111 0
|
23天前
|
API 开发工具 Android开发
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
68 23
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
|
6月前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
417 1
|
9月前
|
监控 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C++)
96 0
|
8月前
|
文字识别 小程序 API
视觉智能开放平台产品使用合集之使用SDK进行视频活体检查时,如何将视频URL传递给后端服务
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。

热门文章

最新文章