在前一篇文章 Android OpenGLES 实时美颜(磨皮)的优化 ,我们已经介绍了关于实时美颜(磨皮)的一些优化点。但在实际的优化测试中发现,当处理器发热之后,就无法保证预览帧率了,主要还是高斯模糊处理的数据量比较大导致。因此,我们需要寻找新的磨皮方法。
专注于为中小企业提供成都网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业振安免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
目前市面上关于磨皮方法有好多种,使用PS磨皮经常用到的方法包括高反差保留、高低频、中性灰以及双线性等。其中中性灰和双线性的效率一般,因此,我们从高反差保留、高低频这两种方法中选择。这里选择使用高反差保留法做磨皮处理,PS中的高反差保留法进行磨皮,随手一搜便能找到很多文章,比如:
接下来,我们尝试着实现文章中讲到的过程。
关于高斯模糊的优化,可以参考本人的文章:
OpenGLES滤镜开发汇总 —— 高斯模糊实现以及优化
对于人像进行高斯模糊,我们设计一个11x11的高斯算子对图像进行高斯模糊,shader如下:
vertex shader :
fragment shader:
经过以上的shader进行高斯模糊处理之后,我们得到这样一张高斯模糊图像:
在PS的高反差保留磨皮方法中,高反差保留磨皮混合采用的是强光模式,计算公式为:color = 2 * color1 * color2。因此,我们设计出这样一个高通滤波器,其shader如下:
fragment shader:
经过高通滤波器之后,我们得到这样一个纹理图像:
可以看到,经过三通道强光混合处理后,痘印、边沿等地方都清晰起来了。强光的程度,一般是3的倍数,这里取24倍。
到这一步,其实我们已经得到了需要过滤颜色值,但在这一张图中,也把边沿的颜色差值包含进来了。我们接下来需要过滤掉边沿的颜色差值。这样在后续的处理中,我们可以保留边沿的细节不被模糊掉。因此接下来,我们需要将经过高通滤波得到的纹理,再做一次高斯模糊。不过这一次不能11 x11 这么大的高斯算子,我们选择一个 5 x 5 大小的高斯算子。高斯模糊的shader 如下:
vertex shader:
fragment shader:
将高通滤波器得到的纹理,经过高斯模糊处理后,得到这样一张纹理:
对比高通滤波器处理后的纹理,边沿细节变得模糊了,而且,需要过滤的颜色差值仍旧保留着。到这一步,我们就得到了做磨皮处理的前置纹理。接下来就是高反差保留磨皮的最后也是最重要的一步。
经过前面的处理,我们得到一张输入图片的高斯模糊纹理,以及一张高反差保留的高斯模糊纹理。我们使用这两张纹理,通过比较蓝色通道,计算出需要磨皮的实际强度值,与原图进行混合处理,然后输出最终的纹理。shader如下所示:
经过上面的处理之后,我们就得到磨皮处理的结果如下:
可以看到,经过高反差保留磨皮后的结果,磨皮效果还不错,而且720P磨皮处理时,在高通骁龙625处理器上,经过高反差保留磨皮之后,预览帧率能够保持在30FPS左右。我们可以看到,边沿细节还是不够明显,所以,我们可以使用USM锐化增强边沿细节部分。这篇文章就不讲解USM锐化的实现了。
详细实现过程,可以参考本人的开源相机项目:
CainCamera
CainCamera的FilterLibrary中有经过优化后的实时美颜(磨皮)实现。
现在手机不仅可以打电话、发短信,还可以语音通话、视频通话,你有没有发现跟别人视频通话的时候,视频中的别人都美美哒,那是因为人家开启了视频通话的美颜功能,接下来以努比亚手机为例,给大家分享一下如何开启手机的视频通话美颜功能。
工具/原料
手机
方法/步骤
1/7 分步阅读
打开手机,解锁手机,进入手机桌面后,在手机桌面应用中点击设置,进入手机的设置页面。
2/7
进入手机设置页面后,在系统和应用板块中点击应用设置,进入手机的应用设置页面。
3/7
进入手机的应用设置页面后,点击相机一栏,进入手机相机应用的相机设置页面。
4/7
进入相机设置页面后,找到视频通话美颜,点击视频通话美颜一栏后方的灰色开关按钮。
5/7
待视频通话美颜后方的灰色开关按钮变为绿色,视频通话美颜就开启了,这样跟别人视频通话时,视频中的我们也会变得美美哒。
6/7
我们还可以在手机桌面的相机中设置该功能,打开手机相机,点击相机页面右上角的设置。
7/7
在相机设置页面点击更多设置,进入相机更多功能设置页面,点击视频通话美颜后方的开关按钮即可。
不久前一个朋友给我推荐过一款 Android 的短视频美颜SDK,体验下来效果很不错,是云豹网络科技开发的。
[img]1、华为nova4手机
HUAWEI nova4系列在麒麟970芯片的独立NPU的支持下,升级到第四代“AI微塑美颜”的全新算法。还将美颜算法延展到视频领域,它将支持微信视频美颜,可依据用户喜好程度调节美颜级别。
2、Flyme 7
Flyme 7能够智能识别性别、年龄、肤质、肤色和面部特征,3D精准定位五官特征,还针对视频通话场景,如微信视频通话,进行了美颜优化,让用户在视频通话过程中也可以实时美颜。
3、iQOO
iqoo不仅在拍照的时候支持HDR、萌拍和AI智能场景拍照功能,还可以在微信视频通话的时候使用美颜功能。
4、荣耀20S
荣耀20S在智能手机前、后置镜头均支持视频美颜功能,另外还支持超广角功能,满足不同手机用户的视频拍摄需求。
5、SUGAR F11
糖果F11把美颜拍照作为主打功能,1300w+800w的后置双摄,可输出5000万像素的高清图片,除了美颜拍照,SUGAR F11支持视频通话美颜以及人像唯美虚化等功能。
final void setErrorCallback(Camera.ErrorCallback cb):Camera发送错误的时候回调,可以在其中进行错误的后续处理。
final void setPreviedCallback(Camera.PreviewCallback cb):Camera预览界面发生变化的时候回调,可以在其中获取到Camera捕获到的帧图像。
FEATURE_CAMERA:设备是否有摄像头。
FEATURE_CAMERA_ANY:设备至少有一个摄像头。
FEATURE_CAMERA_AUTOFOCUS:设备支持的摄像头是否支持自动对焦
FEATURE_CAMERA_FLASH:设备是否配备闪光灯。
FEATURE_CAMERA_FRONT:设备是否有一个前置摄像头。