From db5a25228eb1ee71ce099a2ec64f707188f61992 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sun, 16 Mar 2025 15:18:27 +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 --- .../face/FaceBeauty4Controller.java | 68 +++++++++++++++++++ .../face/RecognizeHandGestureController.java | 56 +++++++++++++++ .../heyu/api/request/face/FaceBeauty4Req.java | 38 +++++++++++ .../request/face/RecognizeHandGestureReq.java | 13 ++++ .../heyu/api/resp/face/FaceBeauty4Resp.java | 9 +++ .../resp/face/RecognizeHandGestureResp.java | 37 ++++++++++ 6 files changed, 221 insertions(+) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceBeauty4Controller.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/face/RecognizeHandGestureController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceBeauty4Req.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/face/RecognizeHandGestureReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceBeauty4Resp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/face/RecognizeHandGestureResp.java diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceBeauty4Controller.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceBeauty4Controller.java new file mode 100644 index 0000000..781555b --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/FaceBeauty4Controller.java @@ -0,0 +1,68 @@ +package com.heyu.api.controller.face; + + +import com.aliyun.facebody20191230.models.FaceBeautyResponse; +import com.aliyun.facebody20191230.models.FaceBeautyResponseBody; +import com.heyu.api.alibaba.handle.facebody.AFaceBeautyHandle; +import com.heyu.api.alibaba.request.facebody.AFaceBeautyRequest; +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.FaceBeauty4Req; +import com.heyu.api.resp.face.FaceBeauty4Resp; +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; + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/FaceBeauty?RegionId=cn-shanghai + * + *人脸美颜 + * + * + * + FaceBeauty + + 功能描述 + 人脸美颜能力可以对图像中的人脸进行美颜。产品支持以下功能: + + 人脸美颜:磨皮、美白、锐化(清晰度)、平滑度等。 + 参数调整:可自定义调整参数,提升个人形象 + + */ +@Slf4j +@RestController +@RequestMapping("/face") +@NotIntercept +public class FaceBeauty4Controller extends BaseController { + + + @Autowired + private AFaceBeautyHandle aFaceBeautyHandle; + + + @RequestMapping("/beauty4") + @CacheResult + public R beauty4(FaceBeauty4Req req) { + FaceBeauty4Resp resp = new FaceBeauty4Resp(); + + AFaceBeautyRequest aFaceBeautyRequest = new AFaceBeautyRequest(); + aFaceBeautyRequest.setSmooth(req.getSmooth()); + aFaceBeautyRequest.setWhite(req.getWhite()); + aFaceBeautyRequest.setImageUrl(req.getImageUrl()); + aFaceBeautyRequest.setImageBase64(req.getImageBase64()); + aFaceBeautyRequest.setSharp(req.getSharp()); + ApiR aR = aFaceBeautyHandle.handle(aFaceBeautyRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + FaceBeautyResponseBody.FaceBeautyResponseBodyData responseBodyData = aR.getData().getBody().getData(); + resp.setImageURL(responseBodyData.getImageURL()); + 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/RecognizeHandGestureController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/RecognizeHandGestureController.java new file mode 100644 index 0000000..09564e8 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/face/RecognizeHandGestureController.java @@ -0,0 +1,56 @@ +package com.heyu.api.controller.face; + + +import com.aliyun.facebody20191230.models.RecognizeHandGestureResponse; +import com.aliyun.facebody20191230.models.RecognizeHandGestureResponseBody; +import com.heyu.api.alibaba.handle.facebody.ARecognizeHandGestureHandle; +import com.heyu.api.alibaba.request.facebody.ARecognizeHandGestureRequest; +import com.heyu.api.controller.BaseController; +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.RecognizeHandGestureReq; +import com.heyu.api.resp.face.RecognizeHandGestureResp; +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; + +/*** + * https://next.api.aliyun.com/api/facebody/2019-12-30/RecognizeHandGesture?RegionId=cn-shanghai + * + *静态手势识别 + * + * RecognizeHandGesture + */ +@Slf4j +@RestController +@RequestMapping("/hand/gesture") +@NotIntercept +public class RecognizeHandGestureController extends BaseController { + + + @Autowired + private ARecognizeHandGestureHandle arRecognizeHandGestureHandle; + + @RequestMapping("/recognize") + public R recognize(RecognizeHandGestureReq req) { + RecognizeHandGestureResp resp = new RecognizeHandGestureResp(); + + ARecognizeHandGestureRequest arRecognizeHandGestureRequest = new ARecognizeHandGestureRequest(); + arRecognizeHandGestureRequest.setImageBase64(req.getImageBase64()); + arRecognizeHandGestureRequest.setImageUrl(req.getImageUrl()); + ApiR aR = arRecognizeHandGestureHandle.handle(arRecognizeHandGestureRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + RecognizeHandGestureResponseBody.RecognizeHandGestureResponseBodyData responseBodyData = aR.getData().getBody().getData(); + + resp.setType(responseBodyData.getType()); + resp.setScore(responseBodyData.getScore()); + return R.ok().setData(resp); + + } + return R.error(); + } +} + + diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceBeauty4Req.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceBeauty4Req.java new file mode 100644 index 0000000..f8620a6 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/FaceBeauty4Req.java @@ -0,0 +1,38 @@ +package com.heyu.api.request.face; + + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +@Data +public class FaceBeauty4Req extends CommonReq { + + + + + /** + * 锐化(清晰度)程度,取值范围 0~1。越接近 1 锐化程度越高。 + *

+ * 示例值: + * 1 + */ + public Float sharp = 1f; + /** + * 平滑程度,取值范围 0~1。越接近 1 平滑程度越高。 + *

+ * 示例值: + * 0.1 + */ + public Float smooth = 1f; + /** + * 美白程度,取值范围 0~1。越接近 1 美白程度越高。 + *

+ * 示例值: + * 0.3 + */ + public Float white = 1f; + + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/face/RecognizeHandGestureReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/face/RecognizeHandGestureReq.java new file mode 100644 index 0000000..2211af9 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/face/RecognizeHandGestureReq.java @@ -0,0 +1,13 @@ +package com.heyu.api.request.face; + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +/*** + * + */ +@Data +public class RecognizeHandGestureReq extends CommonReq { + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceBeauty4Resp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceBeauty4Resp.java new file mode 100644 index 0000000..ae3542c --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/FaceBeauty4Resp.java @@ -0,0 +1,9 @@ +package com.heyu.api.resp.face; + + +import com.heyu.api.resp.CommonImageUrlResp; +import lombok.Data; + +@Data +public class FaceBeauty4Resp extends CommonImageUrlResp { +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/face/RecognizeHandGestureResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/RecognizeHandGestureResp.java new file mode 100644 index 0000000..efa9a1d --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/face/RecognizeHandGestureResp.java @@ -0,0 +1,37 @@ +package com.heyu.api.resp.face; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class RecognizeHandGestureResp extends BaseResp { + + /*** + * 手势类型。 + * + * bg:无法识别的手势 + * ok:确认 + * palm:手掌 + * left:握拳且大拇指向左 + * right:握拳且大拇指向右 + * good:点赞(即握拳且大拇指向上) + * mute:噤声(将食指放在嘴上即被识别为噤声) + * down:握拳且大拇指向下 + * 示例值: + * right + */ + private String type; + + + /*** + * 识别置信度,范围 0~1。 + * + * 示例值: + * 0.921875 + * + */ + private Float score; + + +}