本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
就现在互联网各行业中的发展现状来看,大部分带有娱乐社交属性的平台都少不了美颜磨皮SDK,为什么这么说呢,因为无论是拍照还是拍视频,开启美颜磨皮是非常必要的,毕竟今日不同以往大家对美颜需求也越来越高。 在美颜磨皮SDK中,磨皮算法的实现可以说是比较重要的,其中包含两个主要的部分:滤波和肤色区域检测。 其中,滤波部分常用到3种算法。 1.高反差减弱 高反差保留算法,指通过高反差来得到皮肤细节的模板,根据模板中的细节区域(如皮肤中的部分斑点区域),从而将原图对应区域进行颜色减淡的处理,从而达到斑点部位的弱化,从而实现美颜磨皮的效果。这一算法在保留了人脸面部纹理的同时,可以减弱皮肤瑕疵颜色,使皮肤呈现自然光滑的效果。 2.保边滤波算法 指通过一些具有保留边远能力的滤波器,从而将图像磨平以达到皮肤光滑的目的。主要有导向滤波器、双边滤波器、局部均值滤波器、表面模糊滤波器等。这一算法可以使人脸皮肤区域平滑,但是后期需要添加一些算法来保留人脸面部的自然纹理。 3.其他算法 主要是一些未知的算法,在此就不多作赘述。 皮肤检测主要是基于颜色空间的皮肤颜色统计方法 开发美颜磨皮SDK时,使用该方法具备较高的误检率,这样一来就不会容易出现将其余区域肤色判定为人类肤色,从而导致非皮肤区域图像被滤波器平滑掉。 关于磨皮算法的部分参考代码如下所示 defget_unet_256(input_shape=(256, 256, 3), num_classes=1): inputs = Input(shape=input_shape) # 256 down0 = Conv2D(32, (3, 3),padding='same')(inputs) down0 = BatchNormalization()(down0) down0 = Activation('relu')(down0) down0 = Conv2D(32, (3, 3),padding='same')(down0) down0 = BatchNormalization()(down0) down0 = Activation('relu')(down0) down0_pool = MaxPooling2D((2, 2),strides=(2, 2))(down0) # 128 …… center = Conv2D(1024, (3, 3),padding='same')(down4_pool) center = BatchNormalization()(center) center = Activation('relu')(center) center = Conv2D(1024, (3, 3),padding='same')(center) center = BatchNormalization()(center) center = Activation('relu')(center) # center 以上就是美颜磨皮SDK在开发过程中的简单实现流程,可见要想实现高级自然的磨皮效果,还是需要借助一定的算法实现的,所以还是要找专业的美颜磨皮SDK服务商,从而确保接入不同类型的APP后可以顺利在前端实现应有的功能。 声明:以上内容均为作者本人原创,转载需注明作者及原文链接,欢迎转载分享。
|