虹软人脸识别SDK的简单使用

本文详细介绍了如何通过虹软的免费人脸检测和识别SDK,在Java中实现基础功能,包括激活、配置和功能测试,如人脸相似度比对。

虹软SDK的简单使用

Java实现人脸识别,但是又不会自己实现算法,找SDK时发现了虹软。虹软SDK具有免费、识别率高等优点,然后到网上搜这个SDK的教程,没搜到,就自己探索,发现它自带的官方文档其实介绍的挺全面的,本文是由官方文档改编。

虹软SDK的激活

首先到官网注册账号,然后新建应用,然后获取到APP_ID和SDK_KEY

然后点击下载SDK,下好之后的项目结构:

|---doc
| |---ARCSOFT_ARC_FACE_JAVA_DEVELOPER'S_GUIDE.pdf 开发说明文档
|---lib
|---|---Win32/x64/linux64
| |---|---libarcsoft_face.dll 算法库
| |---|---libarcsoft_face_engine.dll 引擎库
| |---|---libarcsoft_face_engine_jni.dll 引擎库
| |---arcsoft-sdk-face-3.0.0.0.jar java依赖库
|---samplecode
| |---FaceEngineTest.java 示例代码
|---releasenotes.txt 说明文件

这里介绍的是windows版本,要将这三个.dll文件所在的文件夹添加到环境变量里面的Path里面去

再把下载的文件里面的jar包导入到项目里面去

然后就可以开始激活了

import com.arcsoft.face.FaceEngine;
import com.arcsoft.face.enums.ErrorInfo;

/**
 * @author xuziao
 * @date 2021/8/21 12:44
 */

public class FaceTestMd {
   
   
    public void engineTest() {
   
   
        String appId = "你的APP_ID";
        String sdkKey = "你的SDK_KEY";
		//实例化一个面部引擎
        FaceEngine faceEngine = new FaceEngine();
		//这个SDK几乎每一个调用引擎的操作都会返回一个int类型的结果,称为错误码,每一种错误码对应一种程序执行的结果,如果错误对应着错误类型,可以去官网查这个码对应的错误
        int errorCode = faceEngine.activeOnline(appId, sdkKey);
        if (errorCode != ErrorInfo.MOK.getValue() &&
                errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) {
   
   
            System.out.println("引擎激活失败:" + errorCode);
        } else {
   
   
            System.out.println("引擎激活成功");
        }
    }

    public static void main(String[] args) {
   
   
        new FaceTestMd().engineTest();
    }
}

对引擎进行引擎配置和功能配置

package top.gostack.demo1;

import com.arcsoft.face.EngineConfiguration;
import com.arcsoft.face.FaceEngine;
import com.arcsoft.face.FunctionConfiguration;
import com.arcsoft.face.enums.DetectMode;
import com.arcsoft.face.enums.DetectOrient;
import com.arcsoft.face.enums.ErrorInfo;

/**
 * @author xuziao
 * @date 2021/8/21 12:44
 */

public class FaceTestMd {
   
   
    public void engineTest() {
   
   
        String appId = "";
        String sdkKey = "";

        FaceEngine faceEngine = new FaceEngine();

        int errorCode = faceEngine.activeOnline(appId, sdkKey);
        if (errorCode != ErrorInfo.MOK.getValue() &&
                errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) {
   
   
            System.out.println("引擎激活失败:" + errorCode);
        } else {
   
   
            System.out.println("引擎激活成功");
        }
        //以下为引擎配置
        EngineConfiguration engineConfiguration = new EngineConfiguration();

        //设置为单张高精度识别
        engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE);
        //人脸不旋转,为零度
        engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_0_ONLY);
        //识别的最小人脸比例 = 图片长边 / 人脸框长边的比值
        engineConfiguration.setDetectFaceScaleVal(16);
        //设置最多能检测的人脸数量
        engineConfiguration.setDetectFaceMaxNum(10);

        //以下为功能设置
        final FunctionConfiguration functionConfiguration = new FunctionConfiguration();
        //年龄检测
        functionConfiguration.setSupportAge(true);
        //启用支持人脸检测
        functionConfiguration.setSupportFaceDetect(true);
        //启用人脸识别
        functionConfiguration.setSupportFaceRecognition(true);
        //启用性别识别
        functionConfiguration.setSupportGender(true);
        //启用3D检测
        functionConfiguration.setSupportFace3dAngle(true);
        //启用RGB活体检测
        functionConfiguration.setSupportLiveness(true);
        //不启用IR活体检测
        functionConfiguration.setSupportIRLiveness(false);

        //需要防止纸张、屏幕等攻击可以传入 supportLiveness 和 supportIRLiveness, RGB 和 IR 活体检测

        //将额外的设置注入到引擎中
        engineConfiguration.setFunctionConfiguration(functionConfiguration);
        int errorCode2 = faceEngine.init(engineConfiguration);
        if (errorCode2 != ErrorInfo.MOK.getValue()) {
   
   
            System.out.println("初始化引擎失败");
        } else {
   
   
            System.out.println("初始化引擎成功");
        }
    }

    public static void main(String
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值