美文网首页
2、ArcSoft虹软人脸识别接入

2、ArcSoft虹软人脸识别接入

作者: ravenLu | 来源:发表于2024-03-05 22:39 被阅读0次

    前言:对于本次ArcSoft虹软人脸识别接入,仅作为学习交流,以下内容仅为记录验证过程。

    前期准备:申请账号、创建应用,之后在虹软开发者中心即可看到SDK KEY、 APP ID 以及可以下载官方demo。

    本次接入的是“人脸识别增强版”,   Windows  java版本      V4.1  。  

    SDK文档中心:https://ai.arcsoft.com.cn/manual/docs#/149#344_activeOffline_502

    官方Demo:https://arcfacepackages.blob.core.chinacloudapi.cn/arcface-packages/sdk/arcface_pro/windowsx64/ArcSoft_ArcFacePro_windows_x64_java_V4.1.zip

    一、搭建自己的微服务应用程序 ,该步骤不在此进行描述。

    二、打开官网Demo,将libs 的jar包文件 引入自己的工程,如下图所示:

    从File -> Project Structru 进入,并如下图操作引入

    三、创建Controller 用于本次的验证,写如下激活方法,并调用激活,本次使用的是在线激活方式。

    // 激活

        private void jihuoSDK(){

    String appId = "您的appid";

    String sdkKey = "您的SDK key";

    String activeKey = "您的激活码";

    System.err.println("注意,如果返回的errorCode不为0,可查看com.arcsoft.face.enums.ErrorInfo类获取相应的错误信息");

    //人脸识别引擎库存放路径

    FaceEngine faceEngine = new FaceEngine("填写您 人脸识别引擎库存放路径,即WIN64文件夹所在路径  ");

    //激活引擎

    int errorCode = faceEngine.activeOnline(appId, sdkKey, activeKey);

    System.out.println("引擎激活errorCode:" + errorCode);

    ActiveDeviceInfo activeDeviceInfo = new ActiveDeviceInfo();

    //采集设备信息(可离线) errorCode = faceEngine.getActiveDeviceInfo(activeDeviceInfo);

    System.out.println("采集设备信息errorCode:" + errorCode); System.out.println("设备信息:" + activeDeviceInfo.getDeviceInfo());

    // 离线激活

    // faceEngine.activeOffline("d:\\ArcFacePro64.dat.offline");

    ActiveFileInfo activeFileInfo = new ActiveFileInfo();

    errorCode = faceEngine.getActiveFileInfo(activeFileInfo);

    System.out.println("获取激活文件errorCode:" + errorCode);

    System.out.println("激活文件信息:" + activeFileInfo.toString());

    }

    四、创建实例,以及对应的初始化方法 ,仅为后面逐个验证使用,这部分与官网Demo内容有所出入

    private FaceEngine faceEngine;  // 引擎

    private FunctionConfiguration functionConfiguration;  // 功能配置类

    private EngineConfiguration engineConfiguration; //引擎配置类

    //引擎配置

    private void initEngineConfiguration(){

    if(this.engineConfiguration == null){

    System.out.println("需要初始化engineConfiguration");

    this.engineConfiguration = new EngineConfiguration(); engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE); engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT); engineConfiguration.setDetectFaceMaxNum(10);

    }else {

    System.out.println("不需要初始化engineConfiguration"); }}

    //功能配置(人物特征),由于使用到不同功能的功能配置不同,因此独立抽出一个方法

    private void initFunctionConfiguration(){

    if(this.functionConfiguration == null){

    System.out.println("不需要初始化functionConfiguration");

    this.functionConfiguration = new FunctionConfiguration();

    functionConfiguration.setSupportAge(true);

    functionConfiguration.setSupportFaceDetect(true);

    functionConfiguration.setSupportFaceRecognition(true);

    functionConfiguration.setSupportGender(true);

    functionConfiguration.setSupportLiveness(true);

    functionConfiguration.setSupportIRLiveness(true);

    functionConfiguration.setSupportImageQuality(true);

    functionConfiguration.setSupportMaskDetect(true);

    functionConfiguration.setSupportUpdateFaceData(true);

    engineConfiguration.setFunctionConfiguration(functionConfiguration);

    }else{

    System.out.println("不需要初始化functionConfiguration");

    }

    }

    //初始化引擎

    private void initFaceEngine(){

    if(this.faceEngine == null){

    System.out.println("需要初始化faceEngine");

    this.faceEngine = new FaceEngine("引擎所在路径");

    int errorCode = faceEngine.init(engineConfiguration);

    System.out.println("初始化引擎errorCode:" + errorCode);

    VersionInfo version = faceEngine.getVersion();

    System.out.println(version);

    }

    else { System.out.println("不需要初始化faceEngine");

    }

    }

    五、两张图片的人物相似度对比

    六、人脸属性检测(年龄、性别、活体、口罩)

    七、人脸注册

    八、人员人脸识别(从注册的人物中识别出相似度最高)

    九、查看注册人数

    相关文章

      网友评论

          本文标题:2、ArcSoft虹软人脸识别接入

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