上篇文章中,小编为大家详解了美颜滤镜中的磨皮算法。本篇文章中,将继续讲解美颜滤镜中的人脸抠图算法、人脸检测、五官立体算法和智能美妆算法。
1、人脸抠图算法
人脸抠图算法主要是利用肤色和纹理来识别一个相对准确的人脸范畴,皮肤区域的色彩即便是光照变化较大时,也会集中在一个相对较窄的区域内,抽取难度相对不大。当然也有很多公司采用机器学习模型参考,提高效率。
当得到人脸蒙版之后,将其与滤波结果混合,就能获得想要的磨皮效果,背景等其余区域还是使用原图,细节得以保留。所以就目前来说,说人脸抠图算法是磨皮算法的根基也不错。
2、人脸检测和对齐算法
接下来聊聊美颜滤镜中关于瘦脸的高级算法,它的基础就是人脸检测和对齐。
人脸检测很好理解,那么对齐又是啥意思:简单来说就是匹配具体五官、轮廓的位置,比较著名的算法有ASM、AAM等,当确定了五官位置和轮廓之后才有瘦脸、眼睛放大、提高鼻梁等美颜功能。以瘦脸为例:在确定脸部轮廓后,计算美颜后图像中的每个像素在原图像中相应的位置,利用插值的方法计算实际像素的值,再回填到最终图像上来。眼睛增大是将人眼轮廓向外部扩张,并进行插值计算,缩小鼻子是将鼻子轮廓向中心移动,然后插值计算。
3、五官立体算法
五官立体美颜滤镜算法是将眼部或鼻梁附近区域的像素变暗或调亮,形式阴影或高光区域,看上去更立体,事实上亮眼、美白牙齿等功能也是通过先定位需要改变的目标位置,再改变亮度、对比度和色差,从而实现最终效果。
4、智能美妆算法
智能美妆算法在当下美颜滤镜里也相当流行,不涂口红、不抹眼影也能拍出漂亮的唇妆眼妆,确实方便。而美妆的基础也是人脸检测和对齐,只要找准了眉毛、眼线、脸颊、嘴唇等相应位置,将设计好的美妆效果对应像素映射就可搞定。
关于处理智能美妆,大概有两种处理方式:
第一种方案是根据五官的位置,计算这些像素的外接多边形,再利用扫描线方法,扫描每行位于多边形内部的像素,获得这些像素;另一种方案是预先设计像素区域的掩码,在具体的美妆计算中进行相应人脸轮廓关键点的匹配,消除由人脸大小、朝向不同造成的偏差。
以上,就是美颜滤镜中的所有算法了。如果您对美颜sdk接入有需求,欢迎咨询客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。