| | |
| | | public class FaceIdentifyUtil { |
| | | |
| | | //外网激活 |
| | | public static boolean activeOnline(){ |
| | | public static boolean active(int activeType){ |
| | | boolean res = false; |
| | | |
| | | String appId=""; |
| | | String sdkKey=""; |
| | | String activeKey = YamlProperties.activeKey; |
| | | Integer faceType = YamlProperties.faceType; |
| | | FaceEngine faceEngine =null; |
| | | |
| | | /*//从官网我的应用中获取 |
| | |
| | | String realPath = CommonUtil.classesPath(); |
| | | System.out.println("========realPath=========:"+realPath); |
| | | System.out.println("========faceEngine dll 路径=========:"+realPath+ File.separator+"lib"+File.separator+"WIN64"); |
| | | //判断是什么系统 |
| | | //FaceEngine获取,判断是什么系统和什么版本 |
| | | if(System.getProperty("os.name").toLowerCase().contains("window")){ |
| | | appId=appId4Win; |
| | | sdkKey=sdkKey4Win; |
| | | faceEngine = new FaceEngine(realPath+ File.separator+"lib"+File.separator+"WIN64"); |
| | | |
| | | appId = appId4Win; |
| | | sdkKey = sdkKey4Win; |
| | | if(faceType == 1 //免费版 |
| | | ) { |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "WIN64"); |
| | | }else{ //付费版永久 |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "WIN64PRO"); |
| | | } |
| | | |
| | | }else{ |
| | | appId=appId4Linux; |
| | | sdkKey=sdkKey4Linux; |
| | | faceEngine = new FaceEngine(realPath+ File.separator+"WEB-INF"+File.separator+"lib"+File.separator+"LINUX64"); |
| | | if(faceType == 1 //免费版 |
| | | ) { |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "LINUX64"); |
| | | }else{ //付费版永久 |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "LINUX64PRO"); |
| | | } |
| | | } |
| | | //激活引擎,只需一次就行,后续无需再激活 |
| | | int errorCode = faceEngine.activeOnline(appId, sdkKey); |
| | | int errorCode = 666; |
| | | /**========需要免费版的依赖包才能调用 Start========*/ |
| | | errorCode = faceEngine.activeOnline(appId, sdkKey); |
| | | /**========需要免费版的依赖包才能调用 End========*/ |
| | | |
| | | |
| | | /**========需要增值版的依赖包才能调用 Start========*/ |
| | | /*if(activeType == 1){ //在线激活 |
| | | errorCode = faceEngine.activeOnline(appId,sdkKey,activeKey); |
| | | }else if(activeType == 2){ //离线激活 |
| | | //先服务器生成离线授权文件,离线.dat文件放在 lib下即可 |
| | | errorCode = faceEngine.activeOffline(realPath + File.separator + "lib" + File.separator + activeKey+".dat"); |
| | | }*/ |
| | | /**========需要增值版的依赖包才能调用 End========*/ |
| | | |
| | | if (errorCode != ErrorInfo.MOK.getValue() && errorCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) { |
| | | //激活失败 |
| | | }else{ |
| | |
| | | FaceEngine faceEngine=null; |
| | | String realPath = CommonUtil.classesPath(); |
| | | if(System.getProperty("os.name").toLowerCase().contains("window")) { |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "WIN64"); |
| | | if(YamlProperties.faceType == 1 //免费版 |
| | | ) { |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "WIN64"); |
| | | }else{ //付费版永久 |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "WIN64PRO"); |
| | | } |
| | | }else{ |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "LINUX64"); |
| | | if(YamlProperties.faceType == 1 //免费版 |
| | | ) { |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "LINUX64"); |
| | | }else{ //付费版永久 |
| | | faceEngine = new FaceEngine(realPath + File.separator + "lib" + File.separator + "LINUX64PRO"); |
| | | } |
| | | } |
| | | //引擎配置 |
| | | EngineConfiguration engineConfiguration = new EngineConfiguration(); |
| | |
| | | int errorCode = faceEngine.init(engineConfiguration); |
| | | |
| | | if (errorCode != ErrorInfo.MOK.getValue()) { |
| | | System.out.println("初始化引擎失败"); |
| | | String errorCodeStr = ErrorInfo.getValidEnum(errorCode).name(); |
| | | System.out.println("初始化引擎失败,错误码:"+errorCode+",错误码解释:"+errorCodeStr); |
| | | return null; |
| | | } |
| | | System.out.println("初始化faceEngine引擎成功"); |
| | |
| | | // 用于证件照或生活照与证件照之间的特征比对,推荐阈值0.82 |
| | | float faceThreshold = YamlProperties.faceThreshold; |
| | | if(faceSimilar.getScore()<faceThreshold){ |
| | | res.setCode(0); |
| | | res.setCode(1); |
| | | res.setData(false); |
| | | res.setMsg("人脸不匹配"); |
| | | }else{ |
| | | res.setCode(1); |
| | | res.setData(true); |
| | | res.setMsg("匹配成功"); |
| | | } |
| | | return res; |