利物乙自动发盘机厂家(成都捷德科技)技术部发布人脸离线识别SDK,包含人脸采集、活体检测、人脸对比/识别、人脸库管理等能力,并全部离线化、本地化。此SDK一经授权激活,可完全在无网环境下工作,所有数据皆在设备本地运行处理,可根据业务需要进行灵活的上层业务开发,具体对应代码如下:
(1)初始化SDK 参数分别表示:当前上下文、鉴权key、鉴权名称、回调参数 调用FaceSDKManager.getIntance().initialize(Context context, String licenseID, String licenseFileName, IInitCallback callback); Demo中此段代码在HomeActivity中。
(2) 初始化参数设置
FaceConfig config = FaceSDKManager.getInstance().getFaceConfig();
// SDK初始化已经设置完默认参数(推荐参数),也可以根据实际需求进行数值调整
// 质量等级(0:正常、1:宽松、2:严格、3:自定义)
// 获取保存的质量等级
SharedPreferencesUtil util = new SharedPreferencesUtil(mContext);
int qualityLevel = (int) util.getSharedPreference(Const.KEY_QUALITY_LEVEL_SAVE, -1);
if (qualityLevel == -1) {
qualityLevel = ExampleApplication.qualityLevel;
}
// 根据质量等级获取相应的质量值(注:第二个参数要与质量等级的set方法参数一致)
QualityConfigManager manager = QualityConfigManager.getInstance();
manager.readQualityFile(mContext.getApplicationContext(), qualityLevel);
QualityConfig qualityConfig = manager.getConfig();
if (qualityConfig == null) {
return false;
}
// 设置模糊度阈值
config.setBlurnessValue(qualityConfig.getBlur());
// 设置最小光照阈值(范围0-255)
config.setBrightnessValue(qualityConfig.getMinIllum());
// 设置最大光照阈值(范围0-255)
config.setBrightnessMaxValue(qualityConfig.getMaxIllum());
// 设置左眼遮挡阈值
config.setOcclusionLeftEyeValue(qualityConfig.getLeftEyeOcclusion());
// 设置右眼遮挡阈值
config.setOcclusionRightEyeValue(qualityConfig.getRightEyeOcclusion());
// 设置鼻子遮挡阈值
config.setOcclusionNoseValue(qualityConfig.getNoseOcclusion());
// 设置嘴巴遮挡阈值
config.setOcclusionMouthValue(qualityConfig.getMouseOcclusion());
// 设置左脸颊遮挡阈值
config.setOcclusionLeftContourValue(qualityConfig.getLeftContourOcclusion());
// 设置右脸颊遮挡阈值
config.setOcclusionRightContourValue(qualityConfig.getRightContourOcclusion());
// 设置下巴遮挡阈值
config.setOcclusionChinValue(qualityConfig.getChinOcclusion());
// 设置人脸姿态角阈值
config.setHeadPitchValue(qualityConfig.getPitch());
config.setHeadYawValue(qualityConfig.getYaw());
config.setHeadRollValue(qualityConfig.getRoll());
// 设置可检测的最小人脸阈值
config.setMinFaceSize(FaceEnvironment.VALUE_MIN_FACE_SIZE);
// 设置可检测到人脸的阈值
config.setNotFaceValue(FaceEnvironment.VALUE_NOT_FACE_THRESHOLD);
// 设置闭眼阈值
config.setEyeClosedValue(FaceEnvironment.VALUE_CLOSE_EYES);
// 设置图片缓存数量
config.setCacheImageNum(FaceEnvironment.VALUE_CACHE_IMAGE_NUM);
// 设置活体动作,通过设置list,LivenessTypeEunm.Eye, LivenessTypeEunm.Mouth,
// LivenessTypeEunm.HeadUp, LivenessTypeEunm.HeadDown, LivenessTypeEunm.HeadLeft,
// LivenessTypeEunm.HeadRight
config.setLivenessTypeList(ExampleApplication.livenessList);
// 设置动作活体是否随机
config.setLivenessRandom(ExampleApplication.isLivenessRandom);
// 设置开启提示音
config.setSound(ExampleApplication.isOpenSound);
// 原图缩放系数
config.setScale(FaceEnvironment.VALUE_SCALE);
// 抠图宽高的设定,为了保证好的抠图效果,建议高宽比是4:3
config.setCropHeight(FaceEnvironment.VALUE_CROP_HEIGHT);
config.setCropWidth(FaceEnvironment.VALUE_CROP_WIDTH);
// 抠图人脸框与背景比例
config.setEnlargeRatio(FaceEnvironment.VALUE_CROP_ENLARGERATIO);
// 加密类型,0:Base64加密,上传时image_sec传false;1:百度加密文件加密,上传时image_sec传true
config.setSecType(FaceEnvironment.VALUE_SEC_TYPE);
// 检测超时设置
config.setTimeDetectModule(FaceEnvironment.TIME_DETECT_MODULE);
// 检测框远近比率
config.setFaceFarRatio(FaceEnvironment.VALUE_FAR_RATIO);
config.setFaceClosedRatio(FaceEnvironment.VALUE_CLOSED_RATIO);
FaceSDKManager.getInstance().setFaceConfig(config);