|
@@ -102,7 +102,7 @@ public class BaiduApiHelper {
|
|
return parseFaceDetectResult(response);
|
|
return parseFaceDetectResult(response);
|
|
}
|
|
}
|
|
|
|
|
|
- public static FaceResult faceCompare(FaceVerifyProperties properties, String jsonParams) {
|
|
|
|
|
|
+ public static FaceResult faceCompare(FaceVerifyProperties properties, String jsonParams, Double expectFaceCompareScore) {
|
|
if (StringUtils.isBlank(jsonParams)) {
|
|
if (StringUtils.isBlank(jsonParams)) {
|
|
throw new IllegalArgumentException("Baidu api params must be not empty.");
|
|
throw new IllegalArgumentException("Baidu api params must be not empty.");
|
|
}
|
|
}
|
|
@@ -114,10 +114,10 @@ public class BaiduApiHelper {
|
|
RequestBody formBody = FormBody.create(MediaType.parse(Constants.JSON_CONTENT_TYPE), jsonParams);
|
|
RequestBody formBody = FormBody.create(MediaType.parse(Constants.JSON_CONTENT_TYPE), jsonParams);
|
|
|
|
|
|
BaiduResponse response = callApi(requestUrl, formBody);
|
|
BaiduResponse response = callApi(requestUrl, formBody);
|
|
- return parseFaceCompareResult(response);
|
|
|
|
|
|
+ return parseFaceCompareResult(response, expectFaceCompareScore);
|
|
}
|
|
}
|
|
|
|
|
|
- public static FaceResult faceCompareUseLocalApi(FaceVerifyProperties properties, String jsonParams) {
|
|
|
|
|
|
+ public static FaceResult faceCompareUseLocalApi(FaceVerifyProperties properties, String jsonParams, Double expectFaceCompareScore) {
|
|
if (StringUtils.isBlank(jsonParams)) {
|
|
if (StringUtils.isBlank(jsonParams)) {
|
|
throw new IllegalArgumentException("Baidu api params must be not empty.");
|
|
throw new IllegalArgumentException("Baidu api params must be not empty.");
|
|
}
|
|
}
|
|
@@ -126,7 +126,7 @@ public class BaiduApiHelper {
|
|
RequestBody formBody = FormBody.create(MediaType.parse(Constants.JSON_CONTENT_TYPE), jsonParams);
|
|
RequestBody formBody = FormBody.create(MediaType.parse(Constants.JSON_CONTENT_TYPE), jsonParams);
|
|
|
|
|
|
BaiduResponse response = callApi(requestUrl, formBody);
|
|
BaiduResponse response = callApi(requestUrl, formBody);
|
|
- return parseFaceCompareResult(response);
|
|
|
|
|
|
+ return parseFaceCompareResult(response, expectFaceCompareScore);
|
|
}
|
|
}
|
|
|
|
|
|
private static FaceResult parseFaceDetectResult(BaiduResponse response) {
|
|
private static FaceResult parseFaceDetectResult(BaiduResponse response) {
|
|
@@ -181,7 +181,7 @@ public class BaiduApiHelper {
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
- private static FaceResult parseFaceCompareResult(BaiduResponse response) {
|
|
|
|
|
|
+ private static FaceResult parseFaceCompareResult(BaiduResponse response, Double expectFaceCompareScore) {
|
|
FaceResult result = new FaceResult();
|
|
FaceResult result = new FaceResult();
|
|
result.setPass(false);
|
|
result.setPass(false);
|
|
result.setApiLimit(false);
|
|
result.setApiLimit(false);
|
|
@@ -201,8 +201,7 @@ public class BaiduApiHelper {
|
|
if (data != null) {
|
|
if (data != null) {
|
|
result.setScore(data.getScore() != null ? data.getScore() : 0d);
|
|
result.setScore(data.getScore() != null ? data.getScore() : 0d);
|
|
|
|
|
|
- // 人脸相似度得分,官方推荐阈值80分,建议调整为75分
|
|
|
|
- if (data.getScore() != null && data.getScore() >= 75d) {
|
|
|
|
|
|
+ if (data.getScore() != null && data.getScore() >= expectFaceCompareScore) {
|
|
result.setPass(true);
|
|
result.setPass(true);
|
|
}
|
|
}
|
|
}
|
|
}
|