package com.basic.security.manager; import com.basic.security.utils.Constants; import com.basic.security.utils.FacePosition; import com.basic.security.utils.FaceTitleAndTips; public class FacePositionManager { static FaceTitleAndTips lastCompareFeatureResult; static long lastCompareFeatureResultTime; public static void processFaceFeature(FacePosition facePosition) { FaceTitleAndTips compareFeatureResult = new FaceTitleAndTips(); compareFeatureResult.facePosition = facePosition; facePosition.compareFeatureResult = compareFeatureResult; if (facePosition.featureData != null) { // 当前人脸和底库中已有的人脸对比 long beginTime = System.currentTimeMillis(); String compareResultStr = FeatureManager.compareFeature(facePosition.featureData, 65); long compareFeatureTime = System.currentTimeMillis(); compareFeatureResult.personId = compareResultStr.split(",", -1)[0]; compareFeatureResult.compareScore = Float.parseFloat(compareResultStr.split(",", -1)[1]); compareFeatureResult.detectTime = facePosition.createTime; compareFeatureResult.faceFeature = facePosition.featureData; compareFeatureResult.trackerId = facePosition.trackerId; compareFeatureResult.compareFeatureTime = compareFeatureTime; compareFeatureResult.consumTime = compareFeatureTime - beginTime; Constants.compareFeatureTime = beginTime; Constants.score = Float.parseFloat(compareResultStr.split(",", -1)[1]); if (lastCompareFeatureResult != null && compareFeatureResult.personId.equals(lastCompareFeatureResult.personId) && (System.currentTimeMillis() - lastCompareFeatureResultTime) < 3000) { compareFeatureResult.person = lastCompareFeatureResult.person; // System1.out.println("FacePositionManager.processFaceFeature 1 " ); compareFeatureResult.identityNameList = lastCompareFeatureResult.identityNameList; compareFeatureResult.signUpRuleName = lastCompareFeatureResult.signUpRuleName; compareFeatureResult.validSignUpRuleList = lastCompareFeatureResult.validSignUpRuleList; compareFeatureResult.validSignUpRuleListButTimeNotReach = lastCompareFeatureResult.validSignUpRuleListButTimeNotReach; compareFeatureResult.validBusinessRuleList = lastCompareFeatureResult.validBusinessRuleList; compareFeatureResult.validBusinessRuleListButTimeNotReach = lastCompareFeatureResult.validBusinessRuleListButTimeNotReach; } else { compareFeatureResult.person = PersonManager.findPersonById(compareFeatureResult.personId); // System1.out.println("FacePositionManager.processFaceFeature 2 "); if (compareFeatureResult.person != null) { compareFeatureResult.identityNameList = IdentityManager.findIdentityNameListByPersonId(compareFeatureResult.personId); compareFeatureResult.signUpRuleName = compareFeatureResult.person.getString("sign_up_rule"); compareFeatureResult.validSignUpRuleList = PersonManager.getValidSignUpRuleList(compareFeatureResult.person); compareFeatureResult.validSignUpRuleListButTimeNotReach = PersonManager.getValidSignUpRuleListButTimeNotReach(compareFeatureResult.person); compareFeatureResult.validBusinessRuleList = BusinessPersonManager.getPersonInValidBusinessList(compareFeatureResult.personId); compareFeatureResult.validBusinessRuleListButTimeNotReach = BusinessPersonManager.getValidBusinessRuleListButTimeNotReach(compareFeatureResult.personId); lastCompareFeatureResult = compareFeatureResult; lastCompareFeatureResultTime = System.currentTimeMillis(); } else { compareFeatureResult.personId = null; } } } else { facePosition.compareFeatureResult.personId = ""; } CompareFeatureResultManager.addCompareFeatureResult(facePosition); } }