From 07a2e6940508b8c7e9f63c8e76dbe4a5e2bdad0c Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sat, 15 Mar 2025 16:31:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/facebody/ACompareFaceRequest.java | 2 +- .../controller/face/BlurFaceController.java | 34 ++++++- .../face/BodyPostureController.java | 91 +++++++++++++++++++ .../face/CompareFaceController.java | 76 ++++++++++++++++ .../PostCodeQueueSimpleRabbitListener.java | 1 + .../{CommonRequest.java => CommonReq.java} | 2 +- .../heyu/api/request/face/BodyPostureReq.java | 24 +++++ .../request/face/CharacterRecognizeReq.java | 20 ++++ .../heyu/api/request/face/CompareFaceReq.java | 40 ++++++++ .../request/tax/ARecognizeVATInvoiceReq.java | 4 +- .../request/tax/RecognizeQuotaInvoiceReq.java | 4 +- .../tax/RecognizeTicketInvoiceReq.java | 4 +- .../api/resp/face/BodyPostureBodiesResp.java | 30 ++++++ .../heyu/api/resp/face/BodyPostureResp.java | 33 +++++++ .../api/resp/face/CharacterRecognizeResp.java | 37 ++++++++ .../heyu/api/resp/face/CompareFaceResp.java | 85 +++++++++++++++++ 16 files changed, 478 insertions(+), 9 deletions(-) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/face/BodyPostureController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/face/CompareFaceController.java rename api-web/api-interface/src/main/java/com/heyu/api/request/{CommonRequest.java => CommonReq.java} (82%) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/face/BodyPostureReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/face/CharacterRecognizeReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/face/CompareFaceReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureBodiesResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/face/CharacterRecognizeResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/face/CompareFaceResp.java diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/facebody/ACompareFaceRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/facebody/ACompareFaceRequest.java index 238bcba..631fd3b 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/facebody/ACompareFaceRequest.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/facebody/ACompareFaceRequest.java @@ -38,7 +38,7 @@ public class ACompareFaceRequest { * 示例值: * 98.5 */ - private Float qualityScoreThreshold; + private Float qualityScoreThreshold = 98.5f; } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/BlurFaceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/BlurFaceController.java index 03116fc..88b220a 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/BlurFaceController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/BlurFaceController.java @@ -1,9 +1,20 @@ package com.heyu.api.controller.face; +import com.aliyun.facebody20191230.models.BlurFaceResponse; +import com.aliyun.facebody20191230.models.BlurFaceResponseBody; +import com.heyu.api.alibaba.handle.facebody.ABlurFaceHandle; +import com.heyu.api.alibaba.request.facebody.ABlurFaceRequest; import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.request.card.CharacterRecognizeRequest; +import com.heyu.api.request.face.CharacterRecognizeReq; +import com.heyu.api.resp.face.CharacterRecognizeResp; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -23,13 +34,34 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/face") @NotIntercept -public class BlurFaceController extends BaseController { +public class BlurFaceController extends BaseController { + @Autowired + private ABlurFaceHandle aBlurFaceHandle; + @RequestMapping("/mask") + @CacheResult + public R recognize(CharacterRecognizeReq request) { + CharacterRecognizeResp resp = new CharacterRecognizeResp(); + ABlurFaceRequest aBlurFaceRequest = new ABlurFaceRequest(); + aBlurFaceRequest.setImageBase64(request.getImageBase64()); + aBlurFaceRequest.setImageUrl(request.getImageUrl()); + ApiR aR = aBlurFaceHandle.handle(aBlurFaceRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + + BlurFaceResponseBody responseBody = aR.getData().getBody(); + BlurFaceResponseBody.BlurFaceResponseBodyData responseBodyData = responseBody.getData(); + resp.setOriginImageUrl(resp.getOriginImageUrl()); + resp.setMaskImageURL(resp.getMaskImageURL()); + + return R.ok().setData(resp); + } + return R.error(aR.getErrorMsg()); + } } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/BodyPostureController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/BodyPostureController.java new file mode 100644 index 0000000..c72710b --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/BodyPostureController.java @@ -0,0 +1,91 @@ +package com.heyu.api.controller.face; + + +import com.aliyun.facebody20191230.models.BodyPostureResponse; +import com.aliyun.facebody20191230.models.BodyPostureResponseBody; +import com.heyu.api.alibaba.handle.facebody.ABodyPostureHandle; +import com.heyu.api.alibaba.request.facebody.ABodyPostureRequest; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.request.face.BodyPostureReq; +import com.heyu.api.resp.face.BodyPostureBodiesResp; +import com.heyu.api.resp.face.BodyPostureResp; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/BodyPosture?RegionId=cn-shanghai&tab=DEBUG&lang=JAVA + *人体姿态关键点 BodyPosture + * + * + * 人体姿态关键点能力可以获取人体的十八个关键点信息。包括:nose、neck、right_shoulder、right_elbow、right_wrist、left_shoulder、left_elbow、left_wrist、right_hip、right_knee、right_ankle、left_hip、left_knee、left_ankle、right_eye、left_eye、right_ear、left_ear。 + */ +@Slf4j +@RestController +@RequestMapping("/face") +@NotIntercept +public class BodyPostureController extends BaseController { + + @Autowired + private ABodyPostureHandle aBodyPostureHandle; + + + @RequestMapping("/mask") + @CacheResult + public R recognize(BodyPostureReq request) { + List resp = new ArrayList<>(); + + + ABodyPostureRequest bodyPostureRequest = new ABodyPostureRequest(); + bodyPostureRequest.setImageBase64(request.getImageBase64()); + bodyPostureRequest.setImageUrl(request.getImageUrl()); + + ApiR apiR = aBodyPostureHandle.handle(bodyPostureRequest); + if (apiR.isSuccess() && isSuccessStatusCode(apiR.getData().getStatusCode())) { + BodyPostureResponseBody responseBody = apiR.getData().getBody(); + BodyPostureResponseBody.BodyPostureResponseBodyData responseBodyData = responseBody.getData(); + + List responseBodyDataOutputsList = responseBodyData.getOutputs(); + if (CollectionUtils.isNotEmpty(responseBodyDataOutputsList)) { + for (BodyPostureResponseBody.BodyPostureResponseBodyDataOutputs bodyPostureResponseBodyDataOutputs : responseBodyDataOutputsList) { + BodyPostureResp bodyPostureResp = new BodyPostureResp(); + bodyPostureResp.setHumanCount(bodyPostureResponseBodyDataOutputs.getHumanCount()); + List results = bodyPostureResponseBodyDataOutputs.getResults(); + if (CollectionUtils.isNotEmpty(results)) { + + List bodyPostureBodiesResps = new ArrayList<>(); + for (BodyPostureResponseBody.BodyPostureResponseBodyDataOutputsResults result : results) { + if (CollectionUtils.isNotEmpty(result.getBodies())) { + for (BodyPostureResponseBody.BodyPostureResponseBodyDataOutputsResultsBodies body : result.getBodies()) { + + BodyPostureBodiesResp bodyPostureBodiesResp = new BodyPostureBodiesResp(); + bodyPostureBodiesResp.setConfident(body.getConfident()); + bodyPostureBodiesResp.setLabel(body.getLabel()); + bodyPostureBodiesResps.add(bodyPostureBodiesResp); + + } + + } + } + } + } + + return R.ok().setData(resp); + } + } + + return R.error(apiR.getErrorMsg()); + } + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/CompareFaceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/CompareFaceController.java new file mode 100644 index 0000000..07c522c --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/CompareFaceController.java @@ -0,0 +1,76 @@ +package com.heyu.api.controller.face; + + +import com.aliyun.facebody20191230.models.CompareFaceResponse; +import com.aliyun.facebody20191230.models.CompareFaceResponseBody; +import com.heyu.api.alibaba.handle.facebody.ACompareFaceHandle; +import com.heyu.api.alibaba.request.facebody.ACompareFaceRequest; +import com.heyu.api.controller.BaseController; +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.annotation.NotIntercept; +import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.R; +import com.heyu.api.request.face.CharacterRecognizeReq; +import com.heyu.api.request.face.CompareFaceReq; +import com.heyu.api.resp.face.CompareFaceResp; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.AbstractPropertyAccessor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.chrono.IsoChronology; + +/**** + * https://next.api.aliyun.com/api/facebody/2019-12-30/CompareFace?tab=DEMO&lang=JAVA + * + * 人脸比对 + * + * CompareFace + * + * 功能描述 + * 人脸比对 1:1 能力基于您输入的两张图片,分别挑选两张图片中的最大人脸进行比较,判断是否为同一人。 + * + * 两张人脸图片对比:比对两张图片中人脸的相似度,返回这两个人脸的矩形框坐标、人脸五点关键点坐标、比对的置信度,以及不同误识率的置信度阈值。 + * 支持多种图片类型:支持生活照、证件照、身份证芯片照、带网纹照等类型的人脸对比。 + */ +@Slf4j +@RestController +@RequestMapping("/face") +@NotIntercept +public class CompareFaceController extends BaseController { + + + @Autowired + private ACompareFaceHandle aCompareFaceHandle; + + @RequestMapping("/compare") + @CacheResult + public R recognize(CompareFaceReq req) { + + CompareFaceResp resp = new CompareFaceResp(); + + ACompareFaceRequest aCompareFaceRequest = new ACompareFaceRequest(); + aCompareFaceRequest.setUrlA(req.getImageUrlA()); + aCompareFaceRequest.setUrlB(req.getImageUrlB()); + aCompareFaceRequest.setBase64A(req.getImageBase64A()); + aCompareFaceRequest.setBase64B(req.getImageBase64B()); + + ApiR aR = aCompareFaceHandle.handle(aCompareFaceRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + + CompareFaceResponseBody responseBody = aR.getData().getBody(); + CompareFaceResponseBody.CompareFaceResponseBodyData responseBodyData = responseBody.getData(); + + resp.setConfidence(responseBodyData.getConfidence()); + resp.setQualityScoreA(responseBodyData.getQualityScoreA()); + resp.setQualityScoreA(responseBodyData.getQualityScoreB()); + resp.setMessageTips(responseBodyData.getMessageTips()); + resp.setIsMaskA(responseBodyData.getIsMaskA()); + resp.setIsMaskB(responseBodyData.getIsMaskB()); + return R.ok().setData(resp); + } + return R.error(aR.getErrorMsg()); + } + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/listener/PostCodeQueueSimpleRabbitListener.java b/api-web/api-interface/src/main/java/com/heyu/api/listener/PostCodeQueueSimpleRabbitListener.java index ad1390b..6a235a7 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/listener/PostCodeQueueSimpleRabbitListener.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/listener/PostCodeQueueSimpleRabbitListener.java @@ -22,6 +22,7 @@ import java.io.IOException; public class PostCodeQueueSimpleRabbitListener { + @Autowired private ApiPostCodeDao apiPostCodeDao; diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/CommonRequest.java b/api-web/api-interface/src/main/java/com/heyu/api/request/CommonReq.java similarity index 82% rename from api-web/api-interface/src/main/java/com/heyu/api/request/CommonRequest.java rename to api-web/api-interface/src/main/java/com/heyu/api/request/CommonReq.java index 3c7bac9..3da8d21 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/request/CommonRequest.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/CommonReq.java @@ -6,7 +6,7 @@ import lombok.Data; @Data -public class CommonRequest extends BaseRequest { +public class CommonReq extends BaseRequest { /** * 图片的url */ diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/BodyPostureReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/BodyPostureReq.java new file mode 100644 index 0000000..28d6730 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/BodyPostureReq.java @@ -0,0 +1,24 @@ +package com.heyu.api.request.face; + + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +/*** + * + * https://next.api.aliyun.com/api/facebody/2019-12-30/BodyPosture?RegionId=cn-shanghai&tab=DEMO&lang=JAVA + *人体姿态关键点 + * + * BodyPosture + * + */ +@Data +public class BodyPostureReq extends CommonReq { + + + + + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/CharacterRecognizeReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/CharacterRecognizeReq.java new file mode 100644 index 0000000..3452bf0 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/CharacterRecognizeReq.java @@ -0,0 +1,20 @@ +package com.heyu.api.request.face; + + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/BlurFace?tab=DOC&lang=JAVA&RegionId=cn-shanghai + * + *人脸信息脱敏 + * + * BlurFace + * + */ +@Data +public class CharacterRecognizeReq extends CommonReq { + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/CompareFaceReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/CompareFaceReq.java new file mode 100644 index 0000000..9f9a3b1 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/CompareFaceReq.java @@ -0,0 +1,40 @@ +package com.heyu.api.request.face; + +import com.heyu.api.data.dto.BaseRequest; +import lombok.Data; + +/**** + + * https://next.api.aliyun.com/api/facebody/2019-12-30/CompareFace?tab=DOC&lang=JAVA + * + *人脸比对 + * + * CompareFace + * + */ +@Data +public class CompareFaceReq extends BaseRequest { + + /** + * 图片的url + */ + private String imageUrlA; + + /** + * base 64 编码 + */ + private String imageBase64A; + + /** + * 图片的url + */ + private String imageUrlB; + + /** + * base 64 编码 + */ + private String imageBase64B; + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/tax/ARecognizeVATInvoiceReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/tax/ARecognizeVATInvoiceReq.java index 7e8fc2e..92e926f 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/request/tax/ARecognizeVATInvoiceReq.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/tax/ARecognizeVATInvoiceReq.java @@ -1,7 +1,7 @@ package com.heyu.api.request.tax; -import com.heyu.api.request.CommonRequest; +import com.heyu.api.request.CommonReq; import lombok.Data; /*** @@ -11,7 +11,7 @@ import lombok.Data; * */ @Data -public class ARecognizeVATInvoiceReq extends CommonRequest { +public class ARecognizeVATInvoiceReq extends CommonReq { } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeQuotaInvoiceReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeQuotaInvoiceReq.java index 5b61512..e693ad3 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeQuotaInvoiceReq.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeQuotaInvoiceReq.java @@ -1,7 +1,7 @@ package com.heyu.api.request.tax; -import com.heyu.api.request.CommonRequest; +import com.heyu.api.request.CommonReq; /*** * https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeQuotaInvoice?tab=DEMO @@ -12,7 +12,7 @@ import com.heyu.api.request.CommonRequest; * RecognizeQuotalnvoice * */ -public class RecognizeQuotaInvoiceReq extends CommonRequest { +public class RecognizeQuotaInvoiceReq extends CommonReq { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeTicketInvoiceReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeTicketInvoiceReq.java index 93d756b..db2fc01 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeTicketInvoiceReq.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/tax/RecognizeTicketInvoiceReq.java @@ -1,12 +1,12 @@ package com.heyu.api.request.tax; -import com.heyu.api.request.CommonRequest; +import com.heyu.api.request.CommonReq; import lombok.Data; /*** * https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeTicketInvoice */ @Data -public class RecognizeTicketInvoiceReq extends CommonRequest { +public class RecognizeTicketInvoiceReq extends CommonReq { } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureBodiesResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureBodiesResp.java new file mode 100644 index 0000000..9048793 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureBodiesResp.java @@ -0,0 +1,30 @@ +package com.heyu.api.resp.face; + +import lombok.Data; + +/*** + * 检测到的人体关键点信息。 + */ +@Data +public class BodyPostureBodiesResp { + + + /** + * 关键点置信度。 + * + * 示例值: + * 0.91309475898742676 + */ + private Float confident; + + + /*** + * 关键点的标签。包括如下类型:nose、neck、right_shoulder、right_elbow、right_wrist、left_shoulder、left_elbow、left_wrist、right_hip、right_knee、right_ankle、left_hip、left_knee、left_ankle、right_eye、left_eye、right_ear、left_ear。 + * + * 示例值: + * nose + */ + private String label; + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureResp.java new file mode 100644 index 0000000..089ef44 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/BodyPostureResp.java @@ -0,0 +1,33 @@ +package com.heyu.api.resp.face; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +import java.util.List; + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/BodyPosture?RegionId=cn-shanghai&tab=DOC&lang=JAVA + * + * 人体姿态关键点 BodyPosture + */ +@Data +public class BodyPostureResp extends BaseResp { + + + /*** + * 人体的个数。 + * + * 示例值: + * 1 + */ + private Integer humanCount; + + + /*** + * + */ + private List bodiesRespList; + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/CharacterRecognizeResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/CharacterRecognizeResp.java new file mode 100644 index 0000000..c25afbb --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/CharacterRecognizeResp.java @@ -0,0 +1,37 @@ +package com.heyu.api.resp.face; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + + + +@Data +public class CharacterRecognizeResp extends BaseResp { + + + /*** + * 原来图片 + * + * 脱敏后的图片 URL 地址。展开详情 + * + * 示例值: + * http://viapi-cn-shanghai-dha-segmenter.oss-cn-shanghai.aliyuncs.com/upload/result_FaceBlur/2020-8-5/invi_FaceBlur_015966077063461060948_IBdDsq.jpg?Expires=1596609506&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=x8n3jq1X91Sq7BKWE4vRHSu6g9**** + * + * + */ + private String originImageUrl; + + + /*** + * + * 脱敏后的图片 Mask 地址。展开详情 + * + * 示例值: + * http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/person-image-cartoonizer/59697D68-2A6E-4553-89BD-0FADD07881E8_7ee5_20201027-070958.jpg?Expires=1603784400&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=ut2kn46Lz%2FRwqJ9jWJ0RBDut12**** + * + */ + private String maskImageURL; + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/CompareFaceResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/CompareFaceResp.java new file mode 100644 index 0000000..e415cb8 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/CompareFaceResp.java @@ -0,0 +1,85 @@ +package com.heyu.api.resp.face; + + +import com.heyu.api.data.dto.BaseRequest; +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/CompareFace?tab=DEMO&lang=JAVA + * + * 人脸比对 + * + * CompareFace + */ +@Data +public class CompareFaceResp extends BaseResp { + + + /*** + * 两张图片中的最大人脸属于同一个人的置信度,取值范围 0~100。供参考的三个阈值是 61,69 和 75,分别对应千分之一,万分之一和十万分之一误识率。阈值设置越高,误识率越低,通过率也越低,对安全性要求越高的场合,可以设置更高的阈值。如果某张图片中没有人脸,则报错误信息。 + * + * 示例值: + * 88.4831771850586 + */ + private Float confidence; + + + /**** + * 输入图像 A 的质量分。 + * + * 示例值: + * 99.65772247314453 + * + */ + private Float qualityScoreA; + + /*** + * 输入图像 B 的质量分。 + * + * 示例值: + * 98.01177978515625 + */ + private Float qualityScoreB; + + + /*** + * 提示信息,纯文字描述,以下提示信息单独出现或是几条提示信息的组合。 质量相关提示(某张人脸质量分小于请求参数质量分阈值时会出现): + * + * imageA quality score less threshold:图像 A 的质量分小于输入参数设置的阈值。 + * imageB quality score less threshold:图像 B 的质量分小于输入参数设置的阈值。 + * 人脸尺寸相关提示(检测到人脸且人脸宽或高小于 50 像素时会有该提示信息。出现该提示信息时,请尽可能输入像素数大于 64x64 的人脸,并请酌情参考返回的对比置信度 Confidence 值): + * + * face in imageA is too small:图像 A 中的人脸太小。 + * face in imageB is too small:图像 B 中的人脸太小。 + * 示例值: + * imageB quality score less threshold + */ + private String messageTips; + + + /*** + *图片 A 中的人脸是否戴口罩。 + * + * 0:不戴口罩。 + * 1:戴口罩。 + * 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。 + * 示例值: + * 0 + */ + private Long isMaskA; + + + /*** + * 图片 B 中的人脸是否戴口罩。 + * + * 0:不戴口罩。 + * 1:戴口罩。 + * 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。 + * 示例值: + * 0 + */ + private Long isMaskB; + + +}