虹软 ArcFace IOS端Demo 2.0 接入--趟过的坑

IOS Demo2.0 接入、运行

1. demo 下载

下载地址:

官网:https://ai.arcsoft.com.cn/bbs/forum.php?mod=viewthread&tid=1566&extra=page%3D1

gitHub:

所有demo下载目录:https://github.com/ArcsoftEscErd

IOS下载目录:https://github.com/ArcsoftEscErd/ArcfaceDemo_IOS

2. demo 接入指南

快速上手

     1、从官网申请sdk:http://www.arcsoft.com.cn/ai/arcface.html,下载iOS2.0版本SDK;

     2、打开xcode,将解压好的SDK中的ArcSoftFaceEngine.framework文件导入进示例Demo中,如下图所示:

       

sdk

     3、由于SDK采用了Objective-C++实现,需要保证工程中至少有一个.mm 后缀的源文件(可以将任意一个.m后缀的文件改名为.mm);

     4、需要在Demo中引入系统库:libstdc++.6.0.9.tbd,xcode10.0及以上版本没有该文件,需要从xcode9.0版本的libstdc++.6.0.9.tbd复制过来,引入到Demo中,如下图所示:

      2

    5、修改Demo中的Info.plist文件,新增一个属性App Transport Security Settings,在该属性下添加Allow Arbitrary Loads类型Boolean,值设为YES;

    6、上述配置修改好之后,将Demo中ViewController.mm文件中的appid、sdkkey替换为从官网申请的APP_ID、SDK_KEY;

    7、运行程序。

问题指南

    1、详细接入指南可见官网:http://ai.arcsoft.com.cn/manual/arcface_android_guideV2.html

    2、常见问题可见SDK中的doc文档ARCSOFT_ARC_FACE_DEVELOPER'S_GUIDE.pdf,或官网帮助与支持

3. 关于demo 2.0 运行的各种坑以及解决办法

(1)导入SDK 、libstdc++.6.0.9.tbd编译出现:

clang: error: linker command failed with exit code 1 (use -v to see invocation)

3

解决方法: 1.这个错误一般是由于 libstdc++.6.0.9.tbd 库不起作用引起的,需要引入正确的库; 亲测可用 libstdc++.6.0.9.tbd 库下载地址:https://www.jianshu.com/p/3b9731b84e87 2.ios 10以上的需要引入 libc++.tbd库

(2)viewcontroller 编译通不过,出现如下错误

4

解决方法: 1. 由object-c、c++混编引起的, 在General -> Build Settings -> 在Other Linker Flags 添加 -ObjC标记;

5

2. 因为demo使用了其他的库,并没有加载到项目里面,尝试把库加进来。 用到的第三方库如下:

6

(4)相册访问报权限错误,原demo的相册权限是错的

1.原demo里面info.list 标注的是 Privacy -Photo Library Additions Usage Description, 正确的是: Privacy - Photo Library Usage Description 2.info.list 需要加入 App Transport Security Settings Allow Arbitrary Loads YES

7

(5) 配置官网注册后生成的 APP_ID、SDK_Key,不然会报 90115

8

(6)静态图片人脸对比算法调用坑:

使用的场景:选择2张照片对比,获取相似度; SDK算法调用思路:

1.照片人脸检测;

9

2.提前人脸特征;

10

3.人脸特征对比,获取相似度;

11

 在从2-3步骤中,方法3中的 copyFeature1、feature2参数是:LPASF_FaceFeature类型的, 如果这两个参数均使用ASF_FaceFeature类型传入,则相似度对比始终为1.00;

因此需要在在调用方法3前, 要把ASF_FaceFeature类型转换为LPASF_FaceFeature类型;

转换方法如下:

LPASF_FaceFeature copyFeature1 = 
(LPASF_FaceFeature)malloc(sizeof(ASF_FaceFeature));
copyFeature1->featureSize = feature1.featureSize;
copyFeature1->feature = (MByte*)malloc(feature1.featureSize);
memcpy(copyFeature1->feature, 
        feature1.feature, 
        copyFeature1->featureSize);

12

最后,真机Demo运行效果图:

效果-1效果-2

猜你喜欢

转载自blog.csdn.net/u011622479/article/details/89704921
今日推荐