From f6f601e6913c6d73eb54f48f5d4fe1df7806d794 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Wed, 19 Mar 2025 12:54:47 +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 --- .../DetectImageElementsController.java | 84 ++++++++++++++++++ .../EvaluateCertificateQualityController.java | 79 +++++++++++++++++ .../imagerecog/DetectImageElementsReq.java | 12 +++ .../EvaluateCertificateQualityReq.java | 22 +++++ .../imagerecog/DetectImageElementsResp.java | 85 +++++++++++++++++++ .../EvaluateCertificateQualityResp.java | 48 +++++++++++ 6 files changed, 330 insertions(+) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/DetectImageElementsController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/EvaluateCertificateQualityController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/DetectImageElementsReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/EvaluateCertificateQualityReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/DetectImageElementsResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/EvaluateCertificateQualityResp.java diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/DetectImageElementsController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/DetectImageElementsController.java new file mode 100644 index 0000000..fe91723 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/DetectImageElementsController.java @@ -0,0 +1,84 @@ +package com.heyu.api.controller.imagerecog; + + +import com.aliyun.imagerecog20190930.models.DetectImageElementsResponse; +import com.aliyun.imagerecog20190930.models.DetectImageElementsResponseBody; +import com.heyu.api.alibaba.handle.imagerecog.ADetectImageElementsHandle; +import com.heyu.api.alibaba.request.imagerecog.ADetectImageElementsRequest; +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.imagerecog.DetectImageElementsReq; +import com.heyu.api.resp.imagerecog.DetectImageElementsResp; +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.List; + +/*** + * https://next.api.aliyun.com/api/imagerecog/2019-09-30/DetectImageElements?tab=DEMO&lang=JAVA&RegionId=cn-shanghai + *元素识别 + * + * DetectlmageElements + * + * + * 功能描述 + * 元素识别能力用于识别输入图像中所包含的元素内容,用矩形框标注出其位置,并区分其对应的基本类型(人物、修饰、文案)。 + * + * + */ +@Slf4j +@RestController +@RequestMapping("/image") +@NotIntercept +public class DetectImageElementsController extends BaseController { + + + @Autowired + private ADetectImageElementsHandle aDetectImageElementsHandle; + + + @RequestMapping("/detect") + @CacheResult + public R classifying(DetectImageElementsReq req) { + List respList = new ArrayList<>(); + + + ADetectImageElementsRequest request = new ADetectImageElementsRequest(); + request.setImageBase64(req.getImageBase64()); + request.setImageUrl(req.getImageUrl()); + + + ApiR aR = aDetectImageElementsHandle.handle(request); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + + DetectImageElementsResponseBody.DetectImageElementsResponseBodyData responseBodyData = aR.getData().getBody().getData(); + + if (CollectionUtils.isNotEmpty(responseBodyData.getElements())) { + for (DetectImageElementsResponseBody.DetectImageElementsResponseBodyDataElements element : responseBodyData.getElements()) { + DetectImageElementsResp resp = new DetectImageElementsResp(); + resp.setY(element.getY()); + resp.setX(element.getX()); + resp.setWidth(element.getWidth()); + resp.setHeight(element.getHeight()); + respList.add(resp); + } + } + return R.ok().setData(respList); + } + + return R.error(aR.getErrorMsg()); + } + + +} + + + + diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/EvaluateCertificateQualityController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/EvaluateCertificateQualityController.java new file mode 100644 index 0000000..f1e7a64 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imagerecog/EvaluateCertificateQualityController.java @@ -0,0 +1,79 @@ +package com.heyu.api.controller.imagerecog; + + +import com.aliyun.imagerecog20190930.models.EvaluateCertificateQualityResponse; +import com.aliyun.imagerecog20190930.models.EvaluateCertificateQualityResponseBody; +import com.heyu.api.alibaba.handle.imagerecog.AEvaluateCertificateQualityHandle; +import com.heyu.api.alibaba.request.imagerecog.AEvaluateCertificateQualityRequest; +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.imagerecog.EvaluateCertificateQualityReq; +import com.heyu.api.resp.imagerecog.EvaluateCertificateQualityResp; +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.List; + +/*** + *https://next.api.aliyun.com/api/imagerecog/2019-09-30/EvaluateCertificateQuality?tab=DOC&lang=JAVA + *证件照质量审核 + * + * EvaluateCertificateQuality + * + *功能描述 + * 证件照质量审核能力可以识别拍摄的证件照片是否存在质量问题,且有哪些质量问题。 + */ +@Slf4j +@RestController +@RequestMapping("/certificate") +@NotIntercept +public class EvaluateCertificateQualityController extends BaseController { + + @Autowired + private AEvaluateCertificateQualityHandle aEvaluateCertificateQualityHandle; + + + @RequestMapping("/quality") + @CacheResult + public R quality(EvaluateCertificateQualityReq req) { + List respList = new ArrayList<>(); + AEvaluateCertificateQualityRequest request = new AEvaluateCertificateQualityRequest(); + /** + * 证照类型。 + * + * IDCard:身份证。 + * BusinessLicense:电子执照。 + * 示例值: + * BusinessLicense + */ + request.setType(req.getType()); + request.setImageBase64(req.getImageBase64()); + request.setImageUrl(req.getImageUrl()); + + ApiR aR = aEvaluateCertificateQualityHandle.handle(request); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + EvaluateCertificateQualityResponseBody.EvaluateCertificateQualityResponseBodyData responseBodyData = aR.getData().getBody().getData(); + if (CollectionUtils.isNotEmpty(responseBodyData.getElements())) { + for (EvaluateCertificateQualityResponseBody.EvaluateCertificateQualityResponseBodyDataElements element : responseBodyData.getElements()) { + EvaluateCertificateQualityResp resp = new EvaluateCertificateQualityResp(); + resp.setPass(element.getPass()); + resp.setScore(element.getScore()); + resp.setValue(element.getValue()); + respList.add(resp); + } + + } + return R.ok().setData(respList); + } + return R.error(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/DetectImageElementsReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/DetectImageElementsReq.java new file mode 100644 index 0000000..34373a2 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/DetectImageElementsReq.java @@ -0,0 +1,12 @@ +package com.heyu.api.request.imagerecog; + +import com.heyu.api.request.CommonReq; +import lombok.Data; + + +@Data +public class DetectImageElementsReq extends CommonReq { + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/EvaluateCertificateQualityReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/EvaluateCertificateQualityReq.java new file mode 100644 index 0000000..02c22be --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/EvaluateCertificateQualityReq.java @@ -0,0 +1,22 @@ +package com.heyu.api.request.imagerecog; + + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +@Data +public class EvaluateCertificateQualityReq extends CommonReq { + + + + + /** + * 证照类型。 + * + * IDCard:身份证。 + * BusinessLicense:电子执照。 + * 示例值: + * BusinessLicense + */ + private String type ; +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/DetectImageElementsResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/DetectImageElementsResp.java new file mode 100644 index 0000000..9e0d17a --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/DetectImageElementsResp.java @@ -0,0 +1,85 @@ +package com.heyu.api.resp.imagerecog; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class DetectImageElementsResp extends BaseResp { + + + /** + * 元素高度。 + *

+ * 示例值: + * 354 + */ + public Integer height; + + /*** + * 置信度,取值范围[0.0, 1.0]。 + * + * 示例值: + * 0.997097373008728 + */ + public Float score; + + /** + * 元素类型。包括: UnType(未定义类型)、 + * AllType(所有类型)、 + * RootType(根类型)、 + * Synthesis(组合元素图)、 + * Embedded(所有嵌套类型)、 + * Format(元素格式)、 + * MajorObject(主体)、 + * Character(文案)、 + * Identifier(标识)、 + * Background(背景)、 + * Decoration(修饰)、 + * MajorHuman(人物模特)、 + * MajorAuction(商品)、 + * MajorThing(物体)、 + * MajorOther(其他主体)、 + * CharMain(主文案)、 + * CharSub(副文案)、 + * CharAction(行动点文案)、 + * CharContent(内容文案)、 + * CharNumber(数字文案)、 + * CharOther(其他文案)、 + * IdentLogo(logo 标识)、 + * IdentLight(高亮标识)、 + * IdentCode(码标识)、 + * IdentOther(其他标识)、 + * BackBitmap(位图背景)、 + * BackVector(矢量图背景)、 + * BackOther(其他背景)、 + * DecoTile(平铺修饰)、 + *

+ * DecoRegion(区域修饰)、DecoPieces(碎片修饰)、DecoEdge(贴边修饰)、DecoLine(线性修饰)、DecoBox(框型修饰)、DecoChar(行动点文案修饰)、DecoOther(其他修饰)、SynthMajor(主体组团)、SynthChar(文案组团)、SynthIdent(标识组团)、SynthBack(背景组团)、SynthDeco(修饰组团)、SynthOther(其他组团)、EmbedSvg(svg 嵌套格式)、EmbedJson(JSON 嵌套格式)、EmbedHtml(html 嵌套格式)。 + */ + public String type; + /** + * 元素宽度。 + *

+ * 示例值: + * 285 + */ + public Integer width; + + /*** + * 元素左上角 X 轴坐标。 + * + * 示例值: + * 287 + */ + public Integer x; + + /*** + *元素左上角 Y 轴坐标。 + * + * 示例值: + * 78 + */ + public Integer y; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/EvaluateCertificateQualityResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/EvaluateCertificateQualityResp.java new file mode 100644 index 0000000..fae8e15 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imagerecog/EvaluateCertificateQualityResp.java @@ -0,0 +1,48 @@ +package com.heyu.api.resp.imagerecog; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class EvaluateCertificateQualityResp extends BaseResp { + + /*** + * 问题类型。 + * + * lackoffront: 缺乏正面照。 + * copy:复印件。 + * imageincomplete:证件图像不完整。 + * nationalemblemincomplete:营业执照国徽不完整。 + * lackofseal:缺乏印章。 + * electronic:来源于电子档。 + * reflection:反光。 + * 说明 + * 如果请求参数 Type 为 IDCard,无 lackofseal(缺乏印章)。 + * 如果请求参数 Type 为 BusinessLicense,无 lackoffront(缺乏正面照)。 + * 示例值: + * lackoffront + */ + private String value; + + /*** + * 是否通过检查。 + * + * true:通过检查。 + * false:未通过检查。 + * verify:无法检验证照质量,请人工确认。 + * ERROR:该模块算法推理失败。 + * 示例值: + * false + */ + private String pass; + /*** + * 质量问题分值,分值越高,问题越严重,取值为 0~100 之间的整数。 + * + * 当系统无法给出分值时,输出结果为score。 + * 当 Pass 字段为ERROR时,输出结果为null。 + * 示例值: + * 0.06514739990234375 + */ + private String score; +}