BDFaceBaseKitParamsCustomConfigItem.h 7.54 KB
//
//  BDFaceBaseKitFaceParamsCustomConfigItem.h
//  BDFaceBaseKit
//
//  Created by 之哥 on 2021/8/10.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSInteger, BDFaceLiveSelectType) {
    BDFaceDetectType              = 0,                // 静默活体
    BDFaceLivenessType            = 1,                // 动作活体
    BDFaceColorType               = 2,                // 炫彩活体
};


typedef NS_ENUM(NSInteger, BDFaceColorSelectType) {
    BDFaceWhiteType               = 0,                // 白色配色
    BDFaceBlackType               = 1,                // 黑色配色
    BDFaceCustomType              = 2,                // 自定义配色
};

@interface BDFaceBaseKitParamsCustomConfigItem : NSObject

/*
 人脸检测底层相关配置
 */
@property (nonatomic, assign) int     BDFACELOGSTATUS;                 //设置Log关闭开启
@property (nonatomic, assign) int     BDFACELOGTYPE;                   // 设置Log类型
@property (nonatomic, assign) int     minFaceSize;                     //需要检测的最小人脸大小
@property (nonatomic, assign) float   notRGBFaceThreshold;             //人脸置信度阈值(检测分值大于该阈值认为是人脸

/*
 人脸属性
 */
/*
【光照最小阈值】=【暗度阈值】阈值范围为0-255,推荐阈值40
阈值越小:代表质量控制越宽松
阈值越大:代表质量控制越严格(大于阈值的图片都会通过)

【光照最大阈值】=【亮度阈值】阈值范围为0-255,推荐阈值220
阈值越小:代表质量控制越严格
阈值越大:代表质量控制越宽松(小于阈值的图片都会通过
*/
@property (nonatomic, assign) float   minIllumThr;                     //光照可信度
@property (nonatomic, assign) float   maxIllumThr;                     //光照可信度
/*
【模糊阈值】阈值范围为0-1,推荐阈值0.80
阈值越小:代表质量控制越严格
阈值越大:代表质量控制越宽松(小于阈值的图片都会通过)
*/
@property (nonatomic, assign) float   blurThr;                         //模糊度
/*
【角度阈值】设置范围0-90,推荐阈值20
推荐调节范围:10~40
阈值越小:较好防御率
阈值越大:较好通过率(小于阈值的通过)
*/
@property (nonatomic, assign) float   pitchThr;                        //俯仰角
@property (nonatomic, assign) float   yawThr;                          //左右角
@property (nonatomic, assign) float   rollThr;                         //旋转角
/*
【遮挡阈值】设置范围0-1,推荐阈值0.80
推荐调节范围:0.4~1
阈值越小:较好防御率
阈值越大:较好通过率(小于阈值的无遮挡)
*/
@property (nonatomic, assign) float   occlusThreshold;                 //遮挡阈值
@property (nonatomic, assign) float   leftEyeOcclus;                   //左眼遮挡置信度
@property (nonatomic, assign) float   rightEyeOcclus;                  //右眼遮挡置信度
@property (nonatomic, assign) float   noseOcclus;                      //鼻子遮挡置信度
@property (nonatomic, assign) float   mouthOcclus;                     //嘴巴遮挡置信度
@property (nonatomic, assign) float   leftCheekOcclus;                 //左脸遮挡置信度
@property (nonatomic, assign) float   rightCheekOcclus;                //右脸遮挡置信度
@property (nonatomic, assign) float   chinOcclus;                      //下巴遮挡置信度
/*
【活体阈值】设置范围0-1,推荐阈值0.80
阈值越小:较好通过率
阈值越大:较好防御率
*/
@property (nonatomic, assign) float   silentLiveThr;                    //  静默活体阈值
@property (nonatomic, assign) float   LivenessThr;                      //  动作活体阈值
@property (nonatomic, assign) float   colorLiveThr;                     //  炫瞳活体阈值
@property (nonatomic, assign) float   imageScale;                       //  原始图缩放比例
@property (nonatomic, assign) int     maxCropImageNum;                  //  设置照片采集张数
@property (nonatomic, assign) BOOL    isCheckMouthMask;                 //  口罩开关    (此版本没有该功能)
@property (nonatomic, assign) float   mouthMaskThr;                     //  口罩过滤阈值 (此版本没有该功能)
/*
 图片输出参数
 */
@property (nonatomic, assign) float   forehead_extend;                 //额头扩展,大于等于0,0:不进行扩展
@property (nonatomic, assign) float   chin_extend;                     //下巴扩展,大于等于0,0:不进行扩展
@property (nonatomic, assign) float   enlarge_ratio;                   //人脸框与背景比例,大于等于1,1:不进行扩展
@property (nonatomic, assign) int     width;                           //输出图像宽,设置为有效值(大于0)则对图像进行缩放,否则输出原图抠图结果
@property (nonatomic, assign) int     height;                          //输出图像高,设置为有效值(大于0)则对图像进行缩放,否则输出原图抠图结果
/*
 设置界面参数
 */
@property (nonatomic, assign) BOOL    isSoundMode;                      //  声音开关
@property (nonatomic, assign) BDFaceLiveSelectType liveSelectMode;      //  活体方案
@property (nonatomic, assign) BDFaceColorSelectType colorSelectMode;    //  界面外观
@property (nonatomic, assign) BOOL    checkAgreeBtn;                    //  隐私协议开关
@property (nonatomic, assign) int     numOfLiveness;                    //  活体动作池中有几个动作 (动作选取)
@property (nonatomic, assign) int     actionLiveSelectNum;              //  需要从动作活体动作池中抽取几个动作(动作数量)
@property (nonatomic, assign) int     colorLiveSelectNum;               //  需要从炫瞳活体动作池中抽取几个动作(动作数量)
@property (nonatomic, strong) NSMutableArray  *liveActionArray;         //  动作活体列表
@property (nonatomic, strong) NSMutableArray  *colorActionArray;        //  炫瞳动作列表
@property (nonatomic, strong) NSMutableArray  *randomActionLiveActionArray;   //  随机动作列表
@property (nonatomic, strong) NSMutableArray  *randomColorLiveActionArray;   //  随机动作列表
@property (nonatomic, assign) BOOL    colorLiveMode;                    //  炫彩动作活体开关
/*
 功能模块
 */
@property (nonatomic, assign) BOOL    isCheckColorfulLive;             //  炫彩活体
@property (nonatomic, assign) CGFloat conditionTimeout;                //  超时时间
@property (nonatomic, assign) CGFloat intervalOfVoiceRemind;           //  语音超时
@property (nonatomic, assign) int     imageNum;                        //  输出图像个数
@property (nonatomic, assign) float   minRectScale;                    //  人脸过远框比例 默认:0.4
@property (nonatomic, assign) BOOL    recordAbility;                   //  视频录制能力
@property (nonatomic, assign) BOOL    colorJudgeAbility;               //  炫彩颜色判断能力
@property (nonatomic, assign) BOOL    isIntoResultView;                //  进入结果页面开关
@property (nonatomic, assign) BOOL    isOpenRearCamera;                //  后置摄像头开关
@property (nonatomic, assign) BOOL    isCompressImage;                 //  是否压缩图片 默认:不压缩
@property (nonatomic, assign) int     compressValue;                   //  压缩图片大小 默认:0kb
@property (nonatomic, assign) BOOL    isPopWindow;                     //  是否超时弹窗 默认:弹窗



/*
 初始化方法
 */
-(instancetype)initWithParamsConfig;
@end

NS_ASSUME_NONNULL_END