159 lines
5.7 KiB
Java
159 lines
5.7 KiB
Java
|
package com.pingan.ai;
|
|||
|
|
|||
|
import android.os.Handler;
|
|||
|
import android.os.HandlerThread;
|
|||
|
import android.os.Looper;
|
|||
|
import android.os.Message;
|
|||
|
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
|||
|
import com.pingan.ai.face.common.FixedLinkedList;
|
|||
|
import com.pingan.ai.face.entity.PaFaceDetectFrame;
|
|||
|
import com.pingan.ai.face.utils.PaFaceLogger;
|
|||
|
import java.util.Iterator;
|
|||
|
import java.util.LinkedList;
|
|||
|
import pingan.ai.paverify.vertify.PFaceDetector;
|
|||
|
|
|||
|
/* loaded from: classes3.dex */
|
|||
|
public class i {
|
|||
|
public a a;
|
|||
|
public HandlerThread b;
|
|||
|
|
|||
|
/* loaded from: classes3.dex */
|
|||
|
public final class a extends Handler {
|
|||
|
public LinkedList<Float> a;
|
|||
|
public d b;
|
|||
|
public int c;
|
|||
|
|
|||
|
public a(i iVar, Looper looper, d dVar) {
|
|||
|
super(looper);
|
|||
|
this.c = 0;
|
|||
|
this.a = new FixedLinkedList(5);
|
|||
|
this.b = dVar;
|
|||
|
}
|
|||
|
|
|||
|
@Override // android.os.Handler
|
|||
|
public final void handleMessage(Message message) {
|
|||
|
PaFaceDetectFrame paFaceDetectFrame;
|
|||
|
int i;
|
|||
|
super.handleMessage(message);
|
|||
|
if (10 != message.what || (paFaceDetectFrame = (PaFaceDetectFrame) message.obj) == null) {
|
|||
|
return;
|
|||
|
}
|
|||
|
long currentTimeMillis = System.currentTimeMillis();
|
|||
|
float nativeImageOptLive = PFaceDetector.nativeImageOptLive(paFaceDetectFrame.frame, paFaceDetectFrame.frameOri, paFaceDetectFrame.frameWidth, paFaceDetectFrame.frameHeight, paFaceDetectFrame.landmarkPosition);
|
|||
|
StringBuilder sb = new StringBuilder("nativeImageOptLive live score : ");
|
|||
|
sb.append(nativeImageOptLive);
|
|||
|
sb.append(",noLivingNum:");
|
|||
|
sb.append(this.c);
|
|||
|
sb.append(",scoreListSize=");
|
|||
|
sb.append(this.a.size());
|
|||
|
sb.append(", atomic optLive use time:");
|
|||
|
sb.append(System.currentTimeMillis() - currentTimeMillis);
|
|||
|
PaFaceLogger.i(sb.toString());
|
|||
|
d dVar = this.b;
|
|||
|
StringBuilder sb2 = new StringBuilder();
|
|||
|
sb2.append(c.a());
|
|||
|
sb2.append(" nativeImageOptLive live score : ");
|
|||
|
sb2.append(nativeImageOptLive);
|
|||
|
sb2.append(",noLivingNum:");
|
|||
|
sb2.append(this.c);
|
|||
|
sb2.append(",scoreListSize=");
|
|||
|
sb2.append(this.a.size());
|
|||
|
sb2.append(", atomic optLive use time:");
|
|||
|
sb2.append(System.currentTimeMillis() - currentTimeMillis);
|
|||
|
dVar.c(sb2.toString());
|
|||
|
if (nativeImageOptLive > 0.0045f) {
|
|||
|
this.a.add(Float.valueOf(nativeImageOptLive));
|
|||
|
if (this.a.size() == 5) {
|
|||
|
Iterator<Float> it = this.a.iterator();
|
|||
|
float f = BitmapDescriptorFactory.HUE_RED;
|
|||
|
while (it.hasNext()) {
|
|||
|
f += it.next().floatValue();
|
|||
|
}
|
|||
|
float f2 = f / 5.0f;
|
|||
|
if (f2 > 0.5f) {
|
|||
|
this.a.clear();
|
|||
|
i = 0;
|
|||
|
} else {
|
|||
|
i = this.c + 1;
|
|||
|
}
|
|||
|
this.c = i;
|
|||
|
d dVar2 = this.b;
|
|||
|
StringBuilder sb3 = new StringBuilder();
|
|||
|
sb3.append(c.a());
|
|||
|
sb3.append(" detect live vote,average live score : ");
|
|||
|
sb3.append(f2);
|
|||
|
sb3.append(", noLivingNum:");
|
|||
|
sb3.append(this.c);
|
|||
|
dVar2.c(sb3.toString());
|
|||
|
PaFaceLogger.i("detect live vote,average live score : ".concat(String.valueOf(f2)));
|
|||
|
}
|
|||
|
} else {
|
|||
|
this.c++;
|
|||
|
d dVar3 = this.b;
|
|||
|
StringBuilder sb4 = new StringBuilder();
|
|||
|
sb4.append(c.a());
|
|||
|
sb4.append(" noLivingNum : ");
|
|||
|
sb4.append(this.c);
|
|||
|
dVar3.c(sb4.toString());
|
|||
|
}
|
|||
|
if (this.b.b()) {
|
|||
|
d dVar4 = this.b;
|
|||
|
StringBuilder sb5 = new StringBuilder();
|
|||
|
sb5.append(c.a());
|
|||
|
sb5.append(" is detecting all done,reset it.");
|
|||
|
dVar4.c(sb5.toString());
|
|||
|
PaFaceLogger.i("is detecting all done,reset it.");
|
|||
|
a();
|
|||
|
return;
|
|||
|
}
|
|||
|
if (this.c >= 3) {
|
|||
|
d dVar5 = this.b;
|
|||
|
StringBuilder sb6 = new StringBuilder();
|
|||
|
sb6.append(c.a());
|
|||
|
sb6.append(" SILENT_ERROR,live vote failed");
|
|||
|
dVar5.a(sb6.toString());
|
|||
|
PaFaceLogger.error("SILENT_ERROR,live vote failed");
|
|||
|
this.b.b(3001);
|
|||
|
this.b.a(true);
|
|||
|
a();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public final void a() {
|
|||
|
this.c = 0;
|
|||
|
this.a.clear();
|
|||
|
removeCallbacksAndMessages(null);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public native void a(PaFaceDetectFrame paFaceDetectFrame);
|
|||
|
|
|||
|
public void a(boolean z) {
|
|||
|
a aVar = this.a;
|
|||
|
if (aVar != null) {
|
|||
|
aVar.a();
|
|||
|
}
|
|||
|
if (z) {
|
|||
|
HandlerThread handlerThread = this.b;
|
|||
|
if (handlerThread != null) {
|
|||
|
handlerThread.quit();
|
|||
|
}
|
|||
|
this.b = null;
|
|||
|
this.a = null;
|
|||
|
PaFaceLogger.i("quit multi live thread");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public i(d dVar) {
|
|||
|
HandlerThread handlerThread = this.b;
|
|||
|
if (handlerThread == null || !handlerThread.isAlive()) {
|
|||
|
HandlerThread handlerThread2 = new HandlerThread("silentLiveThread");
|
|||
|
this.b = handlerThread2;
|
|||
|
handlerThread2.start();
|
|||
|
}
|
|||
|
if (this.a == null) {
|
|||
|
this.a = new a(this, this.b.getLooper(), dVar);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|