package com.basic.security.utils;
|
|
import com.basic.security.manager.impl.cblite.BaseSettingManager;
|
import com.basic.security.manager.impl.cblite.HintRecognizeManager;
|
|
import java.io.Serializable;
|
|
public class FacePosition implements Serializable {
|
public int x1;
|
public int y1;
|
public int x2;
|
public int y2;
|
public int yaw; // 左右角度
|
public int pitch; //
|
public int roll; //
|
public float score;
|
public byte[] faceJpgData;
|
public long trackerId;
|
public boolean liveness;
|
public String featureName;
|
public byte[] featureData;
|
public long createTime;
|
public boolean allowPass;
|
public String allowPassIdentityName;
|
public double faceRatio;
|
public FaceTitleAndTips compareFeatureResult;
|
|
public boolean detectScoreCanRecognize() { // 已注册人员是否识别出来
|
return featureData != null && score >= 0.80;
|
}
|
|
public boolean detectScoreCanSignUp() { // 得分是否可以注册
|
if (Constants.isNewIDCardReader){
|
return haveFaceAngleHintForSignUp() == null && score >= 0.80;
|
}
|
return haveFaceAngleHintForSignUp() == null && score >= 0.95;
|
}
|
|
public void readFaceFeature() {
|
try {
|
if (featureName != null && !"".equals(featureName)) {
|
featureData = FileUtil.readFile1(featureName);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public String haveFaceAngleHintForSignUp() {
|
String haveFaceAngleHint = null;
|
try {
|
// BaseSettingManager.getFaceRatio() 根据设置的屏幕比,让人脸在设置的屏幕比+_0.2浮动
|
if (faceRatio > Double.parseDouble(BaseSettingManager.getFaceRatio()) + 0.2) {
|
// haveFaceAngleHint = HintRecognizeManager.getFaceMaxAngleMessage();
|
haveFaceAngleHint = "向后站";
|
} else if (faceRatio < Double.parseDouble(BaseSettingManager.getFaceRatio()) - 0.2) {
|
// haveFaceAngleHint = HintRecognizeManager.getFaceMinAngleMessage();
|
haveFaceAngleHint = "向前站";
|
} else if (yaw > HintRecognizeManager.getRightRotationAngle()) { //
|
haveFaceAngleHint = HintRecognizeManager.getRightRotationMessage();
|
} else if (yaw < HintRecognizeManager.getLeftRotationAngle()) {
|
haveFaceAngleHint = HintRecognizeManager.getLeftRotationMessage();
|
} else if (pitch > HintRecognizeManager.getHeadDownAngle()) { //
|
haveFaceAngleHint = HintRecognizeManager.getHeadUpAngleMessage();
|
} else if (pitch < HintRecognizeManager.getHeadUpAngle()) {
|
haveFaceAngleHint = HintRecognizeManager.getHeadDownAngleMessage();
|
} else if (roll > 10) {
|
haveFaceAngleHint = "请正脸对准摄像头";
|
} else if (roll < -10) {
|
haveFaceAngleHint = "请正脸对准摄像头";
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return haveFaceAngleHint;
|
}
|
}
|