美文网首页
百度FaceSDK离线活体检测/人脸采集模拟编译问题

百度FaceSDK离线活体检测/人脸采集模拟编译问题

作者: 我们只是GitHub的搬运工 | 来源:发表于2020-07-13 15:04 被阅读0次

    百度官方并没有提供FaceSDK离线活体检测的模拟器版本,也就是说集成了百度FaceSDK的项目将无法使用模拟器运行,在适配界面/系统版本带来了不便。

    我们可以通过 TARGET_IPHONE_SIMULATOR 宏能区分当前运行设备是模拟器还是真机。

    在使用 FaceSDKManager,IDLFaceLivenessManager,IDLFaceDetectionManager 的地方加上宏判断既可确保在模拟器编译项目时不编译以上内容。

    
    - (IBAction)detectAction:(UIButton *)sender {
        
    #ifdef  TARGET_IPHONE_SIMULATOR
        NSLog(@"模拟器不支持FaceSDK");
    #else
        if ([[FaceSDKManager sharedInstance] canWork]) {
            NSString* licensePath = [[NSBundle mainBundle] pathForResource:FACE_LICENSE_NAME ofType:FACE_LICENSE_SUFFIX];
            [[FaceSDKManager sharedInstance] setLicenseID:FACE_LICENSE_ID andLocalLicenceFile:licensePath];
        }
        
        DetectionViewController* dvc = [[DetectionViewController alloc] init];
        UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:dvc];
        navi.navigationBarHidden = true;
        [self presentViewController:navi animated:YES completion:nil];
    #endif
    }
    

    FaceBaseViewController.m

    - (void)viewDidLoad {
        ...
    #if !TARGET_IPHONE_SIMULATOR
        // 监听重新返回APP
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillResignAction) name:UIApplicationWillResignActiveNotification object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];
        
        // 设置最小检测人脸阈值
        [[FaceSDKManager sharedInstance] setMinFaceSize:200];
        
        // 设置截取人脸图片大小
        [[FaceSDKManager sharedInstance] setCropFaceSizeWidth:400];
        
        // 设置人脸遮挡阀值
        [[FaceSDKManager sharedInstance] setOccluThreshold:0.5];
        
        // 设置亮度阀值
        [[FaceSDKManager sharedInstance] setIllumThreshold:40];
        
        // 设置图像模糊阀值
        [[FaceSDKManager sharedInstance] setBlurThreshold:0.7];
        
        // 设置头部姿态角度
        [[FaceSDKManager sharedInstance] setEulurAngleThrPitch:10 yaw:10 roll:10];
        
        // 设置是否进行人脸图片质量检测
        [[FaceSDKManager sharedInstance] setIsCheckQuality:YES];
        
        // 设置超时时间
        [[FaceSDKManager sharedInstance] setConditionTimeout:10];
        
        // 设置人脸检测精度阀值
        [[FaceSDKManager sharedInstance] setNotFaceThreshold:0.6];
        
        // 设置照片采集张数
        [[FaceSDKManager sharedInstance] setMaxCropImageNum:1];
        #endif
        ...
    }
    

    DetectionViewController.m、LivenessViewController.m

    所有用到 IDLFaceDetectionManager、IDLFaceLivenessManager 的地方都需要添加
    #if TARGET_IPHONE_SIMULATOR
    // 模拟器
    #else
    // 真机
    #endif
    

    相关文章

      网友评论

          本文标题:百度FaceSDK离线活体检测/人脸采集模拟编译问题

          本文链接:https://www.haomeiwen.com/subject/gqvacktx.html