ios中基于科大讯飞SDK进行人脸装扮

Demo下载地址

大致介绍

  • 导入科大讯飞库
  • 采用科大讯飞人脸识别技术SDK
  • 抓取照相机预览层的帧数据
  • 创建一个View,将抓取到的帧数据放到View的Layer层,降低CPU损耗,提高用户体验
  • 抓取Layer层上每一帧的时候,将CIImage图片进行处理,获取到图片内容,宽高,图片方向
  • 将图片传递到科大讯飞检验,科大讯飞返回人脸特征点
  • 格式化人脸特征点,拿到面部信息,拆解出每一个坐标点
  • 自定义一个View,将面部坐标点传递进View,绘制图形上下文,将图片放入坐标点中,绘制图形上下文降低性能损耗

导入科大讯飞SDK

科大讯飞 注册账号,下载SDK,导入项目中

  • 添加依赖库
    • libc++.dylib
    • libstdc++.dylib
    • SystemConfiguration.framework
    • MobileCoreServices.framework
    • CoreGraphics.framework
    • UIKit.framework

Build Settings->Framework Search Paths中设置引用存放SDK的文件相对路径路径

科大讯飞SDK其中使用HTTP,所以需要在Info.plist中添加

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/> 
</dict>

导入Tools文件进入项目中,将Tools的类的头文件全局

然后来到AppDelegate.m- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

实现注册SDK

 //设置log等级,此处log为默认在app沙盒目录下的msc.log文件
    [IFlySetting setLogFile:LVL_ALL];
    
    //输出在console的log开关
    [IFlySetting showLogcat:YES];
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cachePath = [paths objectAtIndex:0];
    [IFlySetting setLogFilePath:cachePath];
    
    //创建语音配置,appid必须要传入,仅执行一次则可
    NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@,",USER_APPID];
    //所有服务启动前,需要确保执行createUtility
    [IFlySpeechUtility createUtility:initString];

在使用的时候,使用IFlyFaceDetector开启检测权限,具体代码如下

 self.faceDetector=[IFlyFaceDetector sharedInstance];
 [self.faceDetector setParameter:@"1" forKey:@"detect"];
 [self.faceDetector setParameter:@"1" forKey:@"align"];

在自定义的View中,传递进面部坐标点,开启上下文,对图片位置进行处理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,802评论 25 709
  • 苍茫深处夜无眠 一世温柔 爱恨与情仇 执子之手 一汪冬水苦与谁诉 望穿谁的眸 回首往事欲语泪先流 人早已消瘦 情缺...
    A岭头羊正良店杨艳慧阅读 119评论 0 0
  • 自写歌词,借《青花瓷》曲。 烽火再起撼天下诸侯举狼烟 蛟龙腾云舞鳞爪觊觎惊天变 你穿银袍披金甲昂然自东现 抬眼间飞...
    逆行的水星阅读 470评论 1 7
  • 前言:昨晚在做课程设计的结构遇到了二级Fragment(在Fragment里面嵌入了ViewPager),在数据显...
    AlicFeng阅读 13,681评论 1 5