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);
|
}
|
}
|