开源美狐美颜SDK功能代码分析

当代,美颜技术愈加强大,比如美白、瘦脸、磨皮等功能应有尽有,还有各种特效,比如哈哈镜、抖动效果等,在直播类和短视频类的平台中,美颜功能已经成为了不可缺少的一部分,美颜sdk应运而生,那么美颜sdk的多种功能是如何实现的呢?

其实主要还是依托于人脸识别系统来实现的,如人脸关键点检测技术,人脸识别技术,人脸追踪技术等等。要想让皮肤变好,呈现更好的状态,就需要通过各种算法和技术来实现的,小编在这里简单向大家来介绍一下。

如果要对人脸进行美白,就要用到肤色检测算法等来保护眉毛,头发等区域,仅仅提亮人脸皮肤的部分亮度来保护其他的地方,这不但要用到肤色检测算法,还要用到一些其他的算法。

如果美颜的清晰度不佳,就是“美白”和“磨皮”这一步没有做好,这对人脸识别能力有着非常大的考验,如果技术能力不够的话,人脸或者是背景就非常容易被模糊掉,导致美颜sdk的效果不好,这是得不偿失的。
开源美狐美颜SDK功能代码分析_第1张图片
一、对人脸的识别

美颜sdk可以轻松地识别我们脸部的位置,通过技术方法把人脸特征进行检测,从而确定是否有人脸的存在,人脸检测技术是美颜的关键一步。

二、美颜特效技术代码分析

美颜sdk中的特效有非常多,如贴纸、哈哈镜等,这也是依靠人脸关键点技术来进行的,就是对人脸中的鼻子、眼睛、嘴巴等进行脸部轮廓的定位,然后就跟我们平时扫脸支付一样,把人脸的关键点组成一个网格,对网格按照固定的参数进行改变,从而完成瘦脸、大眼等美化效果。
if ([self.delegate respondsToSelector:@selector(beautyLevel:whitenessLevel:ruddinessLevel: brightnessLevel:)]) {
NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:@“hasSelectedQuickBeauty”];
if ([str isEqualToString:@“YES”]) {
//2020-07-04 现在相机有默认美颜效果,取消一键美颜时需要恢复默认的美颜效果
//[self.delegate beautyLevel:0 whitenessLevel:0 ruddinessLevel:0 brightnessLevel:50];//为了取消一键美颜的效果
[self.delegate beautyLevel:5 whitenessLevel:5 ruddinessLevel:7 brightnessLevel:57];
[[NSUserDefaults standardUserDefaults] setObject:@“NO” forKey:@“hasSelectedQuickBeauty”];//保证只执行一次
}

    [self.delegate beautyLevel:self.beautyLevel whitenessLevel:self.whiteLevel ruddinessLevel:self.ruddinessLevel brightnessLevel:self.brightnessLevel];
}
NSString *beautKey = [NSString stringWithFormat:@"beauty_%ld",(long)self.beautyType];
[[NSUserDefaults standardUserDefaults] setInteger:value forKey:beautKey];

}

  • (void)handleBeautyEffectsWithSliderValue:(NSInteger)value {
    if ([self.delegate respondsToSelector:@selector(handleBeautyWithType:level:)]) {
    NSString str = [[NSUserDefaults standardUserDefaults] objectForKey:@“hasSelectedQuickBeauty”];
    if ([str isEqualToString:@“YES”]) {
    [self.delegate handleBeautyWithType:0 level:0];//为了取消一键美颜的效果
    [[NSUserDefaults standardUserDefaults] setObject:@“NO” forKey:@“hasSelectedQuickBeauty”];//保证只执行一次
    }
    if (self.beautyType == MHBeautyType_Brightness) {
    [self.delegate handleBeautyWithType:self.beautyType level:value
    10];
    }else{
    [self.delegate handleBeautyWithType:self.beautyType level:value/9.0];
    }

    }
    NSString *beautKey = [NSString stringWithFormat:@“beauty_%ld”,(long)self.beautyType];
    [[NSUserDefaults standardUserDefaults] setInteger:value forKey:beautKey];
    }

#pragma mark - 美型

  • (void)handleFaceEffectsWithSliderValue:(NSInteger)value {
    if ([self.delegate respondsToSelector:@selector(handleFaceBeautyWithType:sliderValue:)]) {
    NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:@“hasSelectedQuickBeauty”];
    if ([str isEqualToString:@“YES”]) {
    [self.delegate handleFaceBeautyWithType:0 sliderValue:0];//为了取消一键美颜的效果
    [[NSUserDefaults standardUserDefaults] setObject:@“NO” forKey:@“hasSelectedQuickBeauty”];//保证只执行一次
    }
    [self.delegate handleFaceBeautyWithType:self.faceType sliderValue:value];
    }
    NSString *faceKey = [NSString stringWithFormat:@“face_%ld”,(long)self.faceType];
    [[NSUserDefaults standardUserDefaults] setInteger:value forKey:faceKey];
    }
    开源美狐美颜SDK功能代码分析_第2张图片

所以为了避免不必要的风险,也为了节约企业投入的成本,我们一定要选择信誉好的服务商来接入美颜sdk,在选择的时候也要多加比较,不要为了价格低而选择不好的美颜产品。

声明:本文由美狐原创,未经允许禁止转载,谢谢合作。

你可能感兴趣的:(开源,深度学习,计算机视觉,神经网络,音视频)