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


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

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

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

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

    美颜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];
    
    • 1
    • 2
    • 3
    • 4

    }

    • (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

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

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

  • 相关阅读:
    无线互动会议室方案的视频显示系统
    8种超简单的Golang生成随机字符串方式
    Mysql 中如何导出数据?
    TEMU自养号测评系统如何搭建,有哪些要求
    ConcurrentHashMap 面试题 30 问
    Django路由Path方法
    FlutterWeb性能优化探索与实践
    java计算机毕业设计水库洪水预报调度系统源码+系统+数据库+lw文档+mybatis+运行部署
    Python实现自动检测设备连通性并发送告警到企业微信
    原型和原型链
  • 原文地址:https://blog.csdn.net/q2404274722/article/details/127692752