package com.basic.security.manager.helper.rm.base;
|
|
import com.basic.security.base.BaseFragment;
|
import com.basic.security.manager.DetectResultManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.utils.DetectedResult;
|
import com.basic.security.utils.FaceId;
|
import com.basic.security.utils.FacePosition;
|
import com.basic.security.utils.ThreadUtil;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.concurrent.LinkedBlockingQueue;
|
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.TimeUnit;
|
|
public class CurrentBaseDetectResult extends CurrentVisitRecord {
|
public static DetectedResult detectedResult;
|
public static long detectedResultTime;
|
public static boolean showFragmentSuccess = false;
|
public static boolean shouldSleepRecognizeThread;
|
public static List<FacePosition> needSignUpPersonList = new ArrayList<>();
|
public static List<Integer> needSignUpPersonIndexList = new ArrayList<>();
|
public static List<FacePosition> doorAccessDeniedList = new ArrayList<>();
|
public static List<FacePosition> doorAccessAllowedList = new ArrayList<>();
|
public static List<FacePosition> doorAccessConfirmList = new ArrayList<>();
|
public static List<FacePosition> timeNotReachPersonList = new ArrayList<>();
|
public static List<FacePosition> needSignUpPersonListS = new ArrayList<>();
|
public static List<Integer> needSignUpPersonIndexListS = new ArrayList<>();
|
public static List<FacePosition> doorAccessDeniedListS = new ArrayList<>();
|
public static List<FacePosition> doorAccessAllowedListS = new ArrayList<>();
|
public static List<FacePosition> doorAccessConfirmListS = new ArrayList<>();
|
public static List<FacePosition> timeNotReachPersonListS = new ArrayList<>();
|
public static List<FacePosition> adminList = new ArrayList<>();
|
public static List<FacePosition> adjustTipsList = new ArrayList<>();
|
public ModelAdapter validPersonIdentity = null;
|
public ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 2, 1, TimeUnit.SECONDS, new LinkedBlockingQueue<>(100));
|
|
public static void startNewDetectResult() {
|
CurrentBase.detectedResult = DetectResultManager.detectedResult;
|
CurrentBase.detectedResultTime = DetectResultManager.lastTimeSetDetectResult;
|
ThreadUtil.printThreadInfo("processRecognizeResult");
|
CurrentBase.shouldSleepRecognizeThread = true;
|
needSignUpPersonList.clear();
|
needSignUpPersonIndexList.clear();
|
doorAccessDeniedList.clear();
|
doorAccessAllowedList.clear();
|
timeNotReachPersonList.clear();
|
doorAccessConfirmList.clear();
|
needSignUpPersonListS.clear();
|
needSignUpPersonIndexListS.clear();
|
doorAccessDeniedListS.clear();
|
doorAccessAllowedListS.clear();
|
timeNotReachPersonListS.clear();
|
doorAccessConfirmListS.clear();
|
adminList.clear();
|
adjustTipsList.clear();
|
}
|
|
public void faceDetected() {
|
}
|
|
public boolean processRulesButTimeNotReach() {
|
return false;
|
}
|
|
public boolean processRules() {
|
return false;
|
}
|
|
public boolean processOnePerson() {
|
return showFragmentSuccess;
|
}
|
|
protected boolean processMultiplePerson() {
|
return showFragmentSuccess;
|
}
|
|
;
|
|
public void clearAdjustTips() {
|
}
|
|
public void printFacePositionList() {
|
String result = "doShowFragment(),";
|
if (needSignUpPersonList.size() > 0) {
|
result += "needSignUpPersonList().size()=" + needSignUpPersonList.size();
|
}
|
if (needSignUpPersonIndexList.size() > 0) {
|
result += ",needSignUpPersonIndexList.size()=" + needSignUpPersonIndexList.size();
|
}
|
if (doorAccessDeniedList.size() > 0) {
|
result += ",doorAccessDeniedList.size()=" + doorAccessDeniedList.size();
|
}
|
if (doorAccessAllowedList.size() > 0) {
|
result += ",doorAccessAllowedList.size()=" + doorAccessAllowedList.size();
|
}
|
if (doorAccessConfirmList.size() > 0) {
|
result += ",doorAccessConfirmList.size()=" + doorAccessConfirmList.size();
|
}
|
if (timeNotReachPersonList.size() > 0) {
|
result += ",timeNotReachPersonList.size()=" + timeNotReachPersonList.size();
|
}
|
if (adminList.size() > 0) {
|
result += ",adminList.size()=" + adminList.size();
|
}
|
if (adjustTipsList.size() > 0) {
|
result += ",adjustTipsList.size()=" + adjustTipsList.size();
|
}
|
// System1.out.println(result);
|
}
|
|
public boolean signingUpPersonInTheCamera() {
|
boolean samePerson = false;
|
try {
|
byte[] featureData1 = BaseFragment.getFaceFeature();
|
for (FacePosition facePosition : CurrentBase.detectedResult.facePositions) {
|
byte[] featureData2 = facePosition.featureData;
|
double score = FaceId.instance.compareFeature(featureData1, featureData2);
|
// System1.out.println("是否为同一人 sort =" + score);
|
// 修改分值 原分值 30
|
if (score >= 30) {
|
samePerson = true;
|
break;
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return samePerson;
|
}
|
}
|