package com.basic.security.manager;
|
|
import com.basic.security.utils.DetectedResult;
|
|
import java.util.LinkedList;
|
|
public class DetectResultManager {
|
public static DetectedResult detectedResult;
|
public static long lastTimeSetDetectResult;
|
static LinkedList<DetectedResult> detectedResultLinkedList = new LinkedList<>();
|
|
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).detectScore <
|
newDetectedResult.facePositions.get(i).detectScore) {
|
return true;
|
}
|
}
|
} else {
|
return true;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
return true;
|
}
|
return false;
|
}
|
|
public static void setDetectResult(DetectedResult detectedResult) {
|
try {
|
DetectResultManager.detectedResult = detectedResult;
|
lastTimeSetDetectResult = System.currentTimeMillis();
|
synchronized (RecognizeManager.recongizeObjectLock) {
|
// System1.out.println("DetectResultManager.setDetectResult");
|
RecognizeManager.detectedResultQueue.add("1");
|
RecognizeManager.recongizeObjectLock.notify();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public static DetectedResult getDetectResultFromCache(byte[] nv21Array) {
|
DetectedResult detectedResult = new DetectedResult();
|
detectedResult.nv21Array = ByteArrayManager.newBytes(nv21Array.length); //memory
|
System.arraycopy(nv21Array, 0, detectedResult.nv21Array, 0, nv21Array.length);
|
// detectedResult.nv21Array = nv21Array;
|
return detectedResult;
|
}
|
}
|