deason 2 年之前
父節點
當前提交
d6dcc37eea

+ 22 - 2
examcloud-core-oe-student-starter/src/test/java/cn/com/qmth/examcloud/core/oe/student/test/FaceVerifyTest.java

@@ -13,6 +13,8 @@ import java.io.File;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -22,8 +24,12 @@ public class FaceVerifyTest {
 
     private ExecutorService service = Executors.newCachedThreadPool();
 
+    private AtomicInteger totalNum = new AtomicInteger();
+
     private AtomicInteger passNum = new AtomicInteger();
 
+    private static Map<String, Double> scores = new ConcurrentHashMap<>();
+
     private static final FaceVerifyServiceImpl faceVerifyService;
 
     private static final String dir = "D:\\home\\captures-0";
@@ -55,6 +61,7 @@ public class FaceVerifyTest {
                 // break;
             }
 
+            totalNum.incrementAndGet();
             String[] line = lines.get(n);
             batchList.add(line);
 
@@ -72,8 +79,20 @@ public class FaceVerifyTest {
         }
 
         long cost = (System.currentTimeMillis() - startTime) / 1000L;
-        float passRate = passNum.get() * 100f / totalLines;
-        System.out.printf("totalLines:%s  passNum:%s  通过率:%s%%  耗时:%s秒", totalLines, passNum.get(), passRate, cost);
+        float passRate = passNum.get() * 100f / totalNum.get();
+        System.out.printf("totalLines:%s  passNum:%s  通过率:%s%%  耗时:%s秒 %n", totalNum.get(), passNum.get(), passRate, cost);
+
+        // 修改阈值,重新计算通过率
+        // int passNum = 0;
+        // double passScore = 70d;
+        // for (Map.Entry<String, Double> entry : scores.entrySet()) {
+        //     // System.out.println(entry.getKey() + " " + entry.getValue());
+        //     if (entry.getValue() >= passScore) {
+        //         passNum++;
+        //     }
+        // }
+        // float passRate2 = passNum * 100f / totalNum.get();
+        // System.out.printf("totalLines:%s  passNum:%s  通过率:%s%% %n", totalNum.get(), passNum, passRate2);
 
         service.shutdown();
     }
@@ -113,6 +132,7 @@ public class FaceVerifyTest {
                         if (x.contains("true")) {
                             passNum.incrementAndGet();
                         }
+                        // scores.put(photoUrl + "|" + capturePhotoUrl, Double.valueOf(x.split("\\|")[1]));
                     } else {
                         FaceResult result = faceVerifyService.faceCompareByBaidu(photoFile, capturePhotoFile);
                         // System.out.println(new JsonHelper().toJson(result));