优化
This commit is contained in:
@@ -5,6 +5,7 @@ import android.hardware.Camera;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.IntDef;
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -18,6 +19,7 @@ import com.arcsoft.face.ImageQualitySimilar;
|
||||
import com.arcsoft.face.LivenessInfo;
|
||||
import com.arcsoft.face.MaskInfo;
|
||||
import com.arcsoft.face.enums.ExtractType;
|
||||
import com.sw.plate.App;
|
||||
import com.sw.plate.utils.L;
|
||||
import com.sw.plate.utils.arcface.FaceRectTransformer;
|
||||
import com.sw.plate.utils.arcface.face.constants.LivenessType;
|
||||
@@ -653,11 +655,33 @@ public class FaceHelper implements FaceListener {
|
||||
}
|
||||
|
||||
private int failCount = 0;
|
||||
private long startTime = 0;
|
||||
private void searchFace(final FaceFeature faceFeature, final Integer trackId) {
|
||||
CompareResult compareResult = FaceServer.getInstance().searchFaceFeature(faceFeature, frEngine);
|
||||
if (compareResult == null || compareResult.getFaceEntity() == null) {
|
||||
if (startTime == 0) {
|
||||
failCount = 0;
|
||||
startTime = System.currentTimeMillis();
|
||||
}
|
||||
if (System.currentTimeMillis() - startTime > 10*1000) {
|
||||
failCount = 0;
|
||||
startTime = System.currentTimeMillis();
|
||||
}
|
||||
failCount++;
|
||||
Log.d(TAG, "collectFace,searchFace查询失败"+failCount+"次");
|
||||
float similar;
|
||||
if (compareResult != null) {
|
||||
similar = compareResult.getSimilar();
|
||||
} else {
|
||||
similar = 0f;
|
||||
}
|
||||
new Handler(Looper.getMainLooper()).post(()-> {
|
||||
try {
|
||||
Toast.makeText(App.getContext(),"识别失败"+failCount+"次,similar="+similar, Toast.LENGTH_SHORT).show();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
Log.d(TAG, "collectFace,searchFace查询失败"+failCount+"次,similar="+similar);
|
||||
if (failCount >= 2) {
|
||||
recognizeCallback.onRecognized(null, LivenessInfo.UNKNOWN, false);
|
||||
return;
|
||||
@@ -667,6 +691,7 @@ public class FaceHelper implements FaceListener {
|
||||
}
|
||||
compareResult.setTrackId(trackId);
|
||||
boolean pass = compareResult.getSimilar() > recognizeConfiguration.getSimilarThreshold();
|
||||
compareResult.setSimilarPass(pass);
|
||||
Log.d(TAG, "collectFace,searchFace: pass="+pass+",similar="+compareResult.getSimilar()+",threshold="+recognizeConfiguration.getSimilarThreshold());
|
||||
recognizeCallback.onRecognized(compareResult, getRecognizeInfo(recognizeInfoMap, trackId).getLiveness(), pass);
|
||||
if (pass) {
|
||||
|
||||
@@ -10,6 +10,16 @@ public class CompareResult {
|
||||
private int compareCode;
|
||||
private long cost;
|
||||
|
||||
private boolean similarPass;
|
||||
|
||||
public void setSimilarPass(boolean similarPass) {
|
||||
this.similarPass = similarPass;
|
||||
}
|
||||
|
||||
public boolean isSimilarPass() {
|
||||
return similarPass;
|
||||
}
|
||||
|
||||
public CompareResult(FaceEntity faceEntity, float similar) {
|
||||
this.faceEntity = faceEntity;
|
||||
this.similar = similar;
|
||||
|
||||
@@ -505,7 +505,7 @@ public class RecognizeViewModel extends ViewModel implements RecognizeCallback {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
recognizeUserId.postValue(new CompareResult(null, -1f));
|
||||
recognizeUserId.postValue(compareResult);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user