Ver Fonte

update face verify

deason há 2 anos atrás
pai
commit
1481c8a4fe

+ 1 - 0
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/model/baidu/BaiduApiHelper.java

@@ -187,6 +187,7 @@ public class BaiduApiHelper {
         result.setPass(false);
         result.setApiLimit(false);
         result.setScore(0d);
+        result.setFaceNum(0);
 
         if (response.getError_code() != 0) {
             result.setError(response.getError_code() + " - " + response.getError_msg());

+ 6 - 0
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/model/faceplus/FacePlusApiHelper.java

@@ -76,6 +76,7 @@ public class FacePlusApiHelper {
         result.setPass(false);
         result.setApiLimit(false);
         result.setScore(0d);
+        result.setFaceNum(0);
 
         if (StringUtils.isNotEmpty(response.getError_message())) {
             result.setError(response.getError_message());
@@ -98,6 +99,11 @@ public class FacePlusApiHelper {
             if (confidence >= thresholds.getLe_4()) {
                 result.setPass(true);
             }
+
+            if (response.getFaces2() != null) {
+                // 待比对照片中出现几张人脸数(用于判断是否存在陌生人)
+                result.setFaceNum(response.getFaces2().size());
+            }
         }
 
         return result;

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

@@ -6,32 +6,34 @@ import cn.com.qmth.examcloud.starters.face.verify.model.param.ImageParm;
 public interface FaceVerifyService {
 
     /**
-     * 百度 人脸活体检测
+     * 百度 人脸活体检测(不支持陌生人检测)
      */
     FaceResult faceVerifyByBaidu(ImageParm image);
 
     /**
-     * 百度 人脸检测
+     * 百度 人脸检测(支持陌生人检测)
      */
     FaceResult faceDetectByBaidu(ImageParm image);
 
     /**
-     * 百度 人脸比对
+     * 百度 人脸比对(不支持陌生人检测)
      */
     FaceResult faceCompareByBaidu(ImageParm image1, ImageParm image2);
 
     /**
-     * 百度 人脸比对(自定义期望通过阈值)
+     * 百度 人脸比对(不支持陌生人检测)
+     *
+     * @param expectFaceCompareScore 自定义期望通过阈值
      */
     FaceResult faceCompareByBaidu(ImageParm image1, ImageParm image2, Double expectFaceCompareScore);
 
     /**
-     * Face++ 人脸检测
+     * Face++ 人脸检测(支持陌生人检测)
      */
     FaceResult faceDetectByFacePlus(ImageParm image);
 
     /**
-     * Face++ 人脸比对
+     * Face++ 人脸比对(支持陌生人检测)
      */
     FaceResult faceCompareByFacePlus(ImageParm image1, ImageParm image2);
 

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

@@ -27,8 +27,11 @@ public class FaceVerifyServiceImpl implements FaceVerifyService {
 
     @Override
     public FaceResult faceVerifyByBaidu(ImageParm image) {
+        Map<String, String> imageData = this.buildImageParmForBaidu(image);
+        imageData.put("face_field", "spoofing");
+
         List<Map<String, String>> images = new ArrayList<>();
-        images.add(this.buildImageParmForBaidu(image));
+        images.add(imageData);
 
         String params = new JsonHelper().toJson(images);
         if (properties.getBaiduLocalEnabled()) {