package com.basic.security.manager;
|
|
import com.basic.security.utils.DetectedResult;
|
|
public class DetectResultManager {
|
|
public static DetectedResult detectedResult;
|
public static long lastTimeSetDetectResult;
|
|
public static boolean needSetDetectResultByTimeout() {
|
if (System.currentTimeMillis() - lastTimeSetDetectResult > 500) {
|
return true;
|
}
|
return false;
|
}
|
|
public static boolean needSetDetectResultByScoreHigher(DetectedResult oldDetectedResult, DetectedResult newDetectedResult) {
|
try {
|
if ( oldDetectedResult != null && oldDetectedResult.facePositions.size() == newDetectedResult.facePositions.size()
|
&& oldDetectedResult.facePositions.size() == 1) {
|
for (int i = 0; i < oldDetectedResult.facePositions.size(); i++) {
|
if (oldDetectedResult.facePositions.get(i).score <
|
newDetectedResult.facePositions.get(i).score) {
|
return true;
|
}
|
}
|
} else {
|
return true;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
return true;
|
}
|
return false;
|
}
|
|
public static void setDetectResult(DetectedResult detectedResult) {
|
try {
|
if (needSetDetectResultByTimeout() ||
|
needSetDetectResultByScoreHigher(DetectResultManager.detectedResult, detectedResult)){
|
DetectResultManager.detectedResult = detectedResult;
|
lastTimeSetDetectResult = System.currentTimeMillis();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|