提交修改
This commit is contained in:
parent
7cda632f36
commit
f6f601e691
@ -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<DetectImageElementsResp> respList = new ArrayList<>();
|
||||
|
||||
|
||||
ADetectImageElementsRequest request = new ADetectImageElementsRequest();
|
||||
request.setImageBase64(req.getImageBase64());
|
||||
request.setImageUrl(req.getImageUrl());
|
||||
|
||||
|
||||
ApiR<DetectImageElementsResponse> 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());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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<EvaluateCertificateQualityResp> respList = new ArrayList<>();
|
||||
AEvaluateCertificateQualityRequest request = new AEvaluateCertificateQualityRequest();
|
||||
/**
|
||||
* 证照类型。
|
||||
*
|
||||
* IDCard:身份证。
|
||||
* BusinessLicense:电子执照。
|
||||
* 示例值:
|
||||
* BusinessLicense
|
||||
*/
|
||||
request.setType(req.getType());
|
||||
request.setImageBase64(req.getImageBase64());
|
||||
request.setImageUrl(req.getImageUrl());
|
||||
|
||||
ApiR<EvaluateCertificateQualityResponse> 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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -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 {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -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 ;
|
||||
}
|
||||
@ -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 {
|
||||
|
||||
|
||||
/**
|
||||
* 元素高度。
|
||||
* <p>
|
||||
* 示例值:
|
||||
* 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(平铺修饰)、
|
||||
* <p>
|
||||
* DecoRegion(区域修饰)、DecoPieces(碎片修饰)、DecoEdge(贴边修饰)、DecoLine(线性修饰)、DecoBox(框型修饰)、DecoChar(行动点文案修饰)、DecoOther(其他修饰)、SynthMajor(主体组团)、SynthChar(文案组团)、SynthIdent(标识组团)、SynthBack(背景组团)、SynthDeco(修饰组团)、SynthOther(其他组团)、EmbedSvg(svg 嵌套格式)、EmbedJson(JSON 嵌套格式)、EmbedHtml(html 嵌套格式)。
|
||||
*/
|
||||
public String type;
|
||||
/**
|
||||
* 元素宽度。
|
||||
* <p>
|
||||
* 示例值:
|
||||
* 285
|
||||
*/
|
||||
public Integer width;
|
||||
|
||||
/***
|
||||
* 元素左上角 X 轴坐标。
|
||||
*
|
||||
* 示例值:
|
||||
* 287
|
||||
*/
|
||||
public Integer x;
|
||||
|
||||
/***
|
||||
*元素左上角 Y 轴坐标。
|
||||
*
|
||||
* 示例值:
|
||||
* 78
|
||||
*/
|
||||
public Integer y;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user