浏览代码

ignore update..

deason 11 月之前
父节点
当前提交
99552c3ef3

+ 8 - 8
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/model/param/FaceApiParam.java → examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/model/param/FaceParam.java

@@ -3,9 +3,9 @@ package cn.com.qmth.examcloud.starters.face.verify.model.param;
 import java.io.Serializable;
 
 /**
- * 人脸相关接口的常用参数
+ * 人脸相关常用参数
  */
-public class FaceApiParam implements Serializable {
+public class FaceParam implements Serializable {
 
     private static final long serialVersionUID = 3440291316492301402L;
 
@@ -24,15 +24,15 @@ public class FaceApiParam implements Serializable {
      */
     private Double expectFaceCompareScore;
 
-    private FaceApiParam() {
+    private FaceParam() {
 
     }
 
-    public static FaceApiParam builder() {
-        return new FaceApiParam();
+    public static FaceParam builder() {
+        return new FaceParam();
     }
 
-    public FaceApiParam apiType(FaceApiType apiType) {
+    public FaceParam apiType(FaceApiType apiType) {
         if (apiType == null) {
             throw new IllegalArgumentException("人脸API类型不能为空!");
         }
@@ -40,12 +40,12 @@ public class FaceApiParam implements Serializable {
         return this;
     }
 
-    public FaceApiParam images(ImageParm... images) {
+    public FaceParam images(ImageParm... images) {
         this.images = images;
         return this;
     }
 
-    public FaceApiParam expectFaceCompareScore(Double expectFaceCompareScore) {
+    public FaceParam expectFaceCompareScore(Double expectFaceCompareScore) {
         this.expectFaceCompareScore = expectFaceCompareScore;
         return this;
     }

+ 4 - 4
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/service/FaceVerifyService.java

@@ -1,7 +1,7 @@
 package cn.com.qmth.examcloud.starters.face.verify.service;
 
 import cn.com.qmth.examcloud.starters.face.verify.model.FaceResult;
-import cn.com.qmth.examcloud.starters.face.verify.model.param.FaceApiParam;
+import cn.com.qmth.examcloud.starters.face.verify.model.param.FaceParam;
 import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageParm;
 
 public interface FaceVerifyService {
@@ -9,17 +9,17 @@ public interface FaceVerifyService {
     /**
      * 人脸真实性检测
      */
-    FaceResult faceVerify(FaceApiParam apiParam);
+    FaceResult faceVerify(FaceParam faceParam);
 
     /**
      * 人脸识别
      */
-    FaceResult faceDetect(FaceApiParam apiParam);
+    FaceResult faceDetect(FaceParam faceParam);
 
     /**
      * 人脸比对
      */
-    FaceResult faceCompare(FaceApiParam apiParam);
+    FaceResult faceCompare(FaceParam faceParam);
 
     /**
      * 百度 人脸真实性检测(不支持陌生人检测)

+ 22 - 22
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/service/impl/FaceVerifyServiceImpl.java

@@ -6,8 +6,8 @@ import cn.com.qmth.examcloud.starters.face.verify.common.JsonHelper;
 import cn.com.qmth.examcloud.starters.face.verify.model.FaceResult;
 import cn.com.qmth.examcloud.starters.face.verify.model.baidu.BaiduApiHelper;
 import cn.com.qmth.examcloud.starters.face.verify.model.faceplus.FacePlusApiHelper;
-import cn.com.qmth.examcloud.starters.face.verify.model.param.FaceApiParam;
 import cn.com.qmth.examcloud.starters.face.verify.model.param.FaceApiType;
+import cn.com.qmth.examcloud.starters.face.verify.model.param.FaceParam;
 import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageParm;
 import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageParmType;
 import cn.com.qmth.examcloud.starters.face.verify.service.FaceVerifyService;
@@ -32,22 +32,22 @@ public class FaceVerifyServiceImpl implements FaceVerifyService {
      * 人脸真实性检测
      */
     @Override
-    public FaceResult faceVerify(FaceApiParam apiParam) {
-        if (ArrayUtils.getLength(apiParam.getImages()) < 1) {
+    public FaceResult faceVerify(FaceParam faceParam) {
+        if (ArrayUtils.getLength(faceParam.getImages()) < 1) {
             throw new IllegalArgumentException("至少传一个图片参数!");
         }
 
-        if (FaceApiType.FACE_PLUS == apiParam.getApiType()) {
+        if (FaceApiType.FACE_PLUS == faceParam.getApiType()) {
             throw new IllegalArgumentException("FacePlus暂不支持人脸真实性检测!");
         }
 
-        Map<String, String> imageData = this.buildImageParmForBaidu(apiParam.getImages()[0]);
+        Map<String, String> imageData = this.buildImageParmForBaidu(faceParam.getImages()[0]);
         imageData.put("face_field", "spoofing");
         List<Map<String, String>> images = new ArrayList<>();
         images.add(imageData);
         String params = new JsonHelper().toJson(images);
 
-        if (FaceApiType.BAIDU_API == apiParam.getApiType()) {
+        if (FaceApiType.BAIDU_API == faceParam.getApiType()) {
             return BaiduApiHelper.faceVerify(properties, params);
         }
         // 默认:百度私有化部署API
@@ -58,24 +58,24 @@ public class FaceVerifyServiceImpl implements FaceVerifyService {
      * 人脸识别
      */
     @Override
-    public FaceResult faceDetect(FaceApiParam apiParam) {
-        if (ArrayUtils.getLength(apiParam.getImages()) < 1) {
+    public FaceResult faceDetect(FaceParam faceParam) {
+        if (ArrayUtils.getLength(faceParam.getImages()) < 1) {
             throw new IllegalArgumentException("至少传一个图片参数!");
         }
 
-        if (FaceApiType.FACE_PLUS == apiParam.getApiType()) {
+        if (FaceApiType.FACE_PLUS == faceParam.getApiType()) {
             Map<String, String> params = new HashMap<>();
-            this.buildImageParmForFacePlus(params, apiParam.getImages()[0], null);
+            this.buildImageParmForFacePlus(params, faceParam.getImages()[0], null);
 
             return FacePlusApiHelper.faceDetect(properties, params);
         }
 
-        Map<String, String> imageData = this.buildImageParmForBaidu(apiParam.getImages()[0]);
+        Map<String, String> imageData = this.buildImageParmForBaidu(faceParam.getImages()[0]);
         imageData.put("liveness_control", "NORMAL");
         imageData.put("max_face_num", "2");
         String params = new JsonHelper().toJson(imageData);
 
-        if (FaceApiType.BAIDU_API == apiParam.getApiType()) {
+        if (FaceApiType.BAIDU_API == faceParam.getApiType()) {
             return BaiduApiHelper.faceDetect(properties, params);
         }
         // 默认:百度私有化部署API
@@ -86,32 +86,32 @@ public class FaceVerifyServiceImpl implements FaceVerifyService {
      * 人脸比对
      */
     @Override
-    public FaceResult faceCompare(FaceApiParam apiParam) {
-        if (ArrayUtils.getLength(apiParam.getImages()) < 2) {
+    public FaceResult faceCompare(FaceParam faceParam) {
+        if (ArrayUtils.getLength(faceParam.getImages()) < 2) {
             throw new IllegalArgumentException("至少传两个图片参数!");
         }
 
-        if (FaceApiType.FACE_PLUS == apiParam.getApiType()) {
+        if (FaceApiType.FACE_PLUS == faceParam.getApiType()) {
             Map<String, String> params = new HashMap<>();
-            this.buildImageParmForFacePlus(params, apiParam.getImages()[0], "1");
-            this.buildImageParmForFacePlus(params, apiParam.getImages()[1], "2");
+            this.buildImageParmForFacePlus(params, faceParam.getImages()[0], "1");
+            this.buildImageParmForFacePlus(params, faceParam.getImages()[1], "2");
 
             return FacePlusApiHelper.faceCompare(properties, params);
         }
 
         List<Map<String, String>> images = new ArrayList<>();
-        images.add(this.buildImageParmForBaidu(apiParam.getImages()[0]));
-        images.add(this.buildImageParmForBaidu(apiParam.getImages()[1]));
+        images.add(this.buildImageParmForBaidu(faceParam.getImages()[0]));
+        images.add(this.buildImageParmForBaidu(faceParam.getImages()[1]));
         String params = new JsonHelper().toJson(images);
 
         Double expectFaceCompareScore;
-        if (apiParam.getExpectFaceCompareScore() != null) {
-            expectFaceCompareScore = apiParam.getExpectFaceCompareScore();
+        if (faceParam.getExpectFaceCompareScore() != null) {
+            expectFaceCompareScore = faceParam.getExpectFaceCompareScore();
         } else {
             expectFaceCompareScore = properties.getBaiduExpectFaceCompareScore();
         }
 
-        if (FaceApiType.BAIDU_API == apiParam.getApiType()) {
+        if (FaceApiType.BAIDU_API == faceParam.getApiType()) {
             return BaiduApiHelper.faceCompare(properties, params, expectFaceCompareScore);
         }
         // 默认:百度私有化部署API

+ 12 - 57
examcloud-starters/examcloud-face-verify-starter/src/test/java/cn/com/qmth/examcloud/starters/face/verify/test/FaceApiTest.java

@@ -3,17 +3,10 @@ package cn.com.qmth.examcloud.starters.face.verify.test;
 import cn.com.qmth.examcloud.starters.face.verify.FaceVerifyProperties;
 import cn.com.qmth.examcloud.starters.face.verify.common.JsonHelper;
 import cn.com.qmth.examcloud.starters.face.verify.model.FaceResult;
-import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageFileParm;
-import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageParm;
-import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageTokenParm;
-import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageUrlParm;
+import cn.com.qmth.examcloud.starters.face.verify.model.param.*;
 import cn.com.qmth.examcloud.starters.face.verify.service.impl.FaceVerifyServiceImpl;
 import org.junit.Test;
 
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
 public class FaceApiTest {
 
     // @Test
@@ -28,7 +21,6 @@ public class FaceApiTest {
         properties.setBaiduLocalUrlPrefix("http://192.168.20.253");
         // properties.setBaiduLocalUrlPrefix("http://192.168.0.118");
         // properties.setBaiduExpectFaceCompareScore(70d);
-
         FaceVerifyServiceImpl faceVerifyService = new FaceVerifyServiceImpl();
         faceVerifyService.setProperties(properties);
 
@@ -38,57 +30,20 @@ public class FaceApiTest {
         String image4 = "https://ecs-test-static.qmth.com.cn//capture_photo/temp/004.jpg";
         String image5 = "https://ecs-test-static.qmth.com.cn//capture_photo/temp/005.jpg";
         String image6 = "https://ecs-test-static.qmth.com.cn//capture_photo/temp/006.jpg";
-        String image7 = "D:\\home\\test\\101.jpg";
-        String image8 = "D:\\home\\test\\102.jpg";
-        String image9 = "8754a4180b540110a110fbfa9f0aec18";
-        String image10 = "91f67a6eb2c58482aad08aeec58b9ef4";
-
-        ImageParm imageParm1 = new ImageUrlParm(image1);
-        ImageParm imageParm2 = new ImageUrlParm(image6);
-        ImageParm imageParm7 = new ImageFileParm(image7);
-        ImageParm imageParm8 = new ImageFileParm(image8);
-        ImageParm imageParm9 = new ImageTokenParm(image9);
-        ImageParm imageParm10 = new ImageTokenParm(image10);
-
-        FaceResult result = faceVerifyService.faceVerifyByBaidu(imageParm1);
-        // FaceResult result = faceVerifyService.faceDetectByBaidu(imageParm1);
-        // FaceResult result = faceVerifyService.faceCompareByBaidu(imageParm1, imageParm2);
-        // FaceResult result = faceVerifyService.faceDetectByFacePlus(imageParm1);
-        // FaceResult result = faceVerifyService.faceCompareByFacePlus(imageParm1, imageParm2);
-        System.out.println("==================================================");
-        System.out.println(new JsonHelper().toJson(result));
-
-        // concurrentTest(faceVerifyService, imageParm);
-    }
-
-    private void concurrentTest(FaceVerifyServiceImpl faceVerifyService, ImageParm image) {
-        int threadNum = 20;
-        ExecutorService service = Executors.newCachedThreadPool();
-        final CountDownLatch commander = new CountDownLatch(1);
-        final CountDownLatch worker = new CountDownLatch(threadNum);
+        String image7 = "D:\\home\\test\\test.jpg";
+        String image8 = "8754a4180b540110a110fbfa9f0aec18";
+        ImageParm imageParm1 = new ImageUrlParm(image3);
+        ImageParm imageParm2 = new ImageFileParm(image7);
+        ImageParm imageParm3 = new ImageTokenParm(image8);
 
-        for (int n = 0; n < threadNum; n++) {
-            Runnable runnable = () -> {
-                try {
-                    FaceResult res = faceVerifyService.faceVerifyByBaidu(image);
-                    System.out.println("线程:" + Thread.currentThread().getName() + " 结果:" + new JsonHelper().toJson(res) + "\n");
-                } catch (Exception e) {
-                    e.printStackTrace();
-                } finally {
-                    worker.countDown();
-                }
-            };
-            service.execute(runnable);
-        }
+        FaceResult result1 = faceVerifyService.faceVerify(FaceParam.builder().images(imageParm1).apiType(FaceApiType.BAIDU_LOCAL_API));
+        System.out.println("==============================\n" + new JsonHelper().toJson(result1));
 
-        try {
-            commander.countDown();
-            worker.await();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        FaceResult result2 = faceVerifyService.faceDetect(FaceParam.builder().images(imageParm1));
+        System.out.println("==============================\n" + new JsonHelper().toJson(result2));
 
-        service.shutdown();
+        FaceResult result3 = faceVerifyService.faceCompare(FaceParam.builder().images(imageParm1, imageParm2));
+        System.out.println("==============================\n" + new JsonHelper().toJson(result3));
     }
 
 }