虹软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

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

被折叠的 条评论
为什么被折叠?



