From 1dafa9f0e1514a54857f8af00988fc29e2fdbc40 Mon Sep 17 00:00:00 2001 From: divenswu Date: Thu, 17 Mar 2022 18:57:55 +0800 Subject: [PATCH] =?UTF-8?q?update:=E6=B7=BB=E5=8A=A0=E4=BA=BA=E8=84=B8?= =?UTF-8?q?=E6=AF=94=E5=AF=B91=EF=BC=9A1=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/health/HealthController.java | 2 +- .../server/api/FaceCompareControllerApi.java | 19 ++++++ .../impl/FaceCompareControllerImpl.java | 15 +++++ .../server/restful/FaceCompareController.java | 27 ++++++++ .../server/domain/extend/CompareFace.java | 53 +++++++++++++++ .../domain/request/FaceCompareReqVo.java | 64 +++++++++++++++++++ .../domain/response/FaceCompareRepVo.java | 41 ++++++++++++ 7 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 face-search-server/src/main/java/com/visual/face/search/server/controller/server/api/FaceCompareControllerApi.java create mode 100644 face-search-server/src/main/java/com/visual/face/search/server/controller/server/impl/FaceCompareControllerImpl.java create mode 100644 face-search-server/src/main/java/com/visual/face/search/server/controller/server/restful/FaceCompareController.java create mode 100644 face-search-server/src/main/java/com/visual/face/search/server/domain/extend/CompareFace.java create mode 100644 face-search-server/src/main/java/com/visual/face/search/server/domain/request/FaceCompareReqVo.java create mode 100644 face-search-server/src/main/java/com/visual/face/search/server/domain/response/FaceCompareRepVo.java diff --git a/face-search-server/src/main/java/com/visual/face/search/server/controller/health/HealthController.java b/face-search-server/src/main/java/com/visual/face/search/server/controller/health/HealthController.java index 851705e..dbd4912 100644 --- a/face-search-server/src/main/java/com/visual/face/search/server/controller/health/HealthController.java +++ b/face-search-server/src/main/java/com/visual/face/search/server/controller/health/HealthController.java @@ -7,7 +7,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; -@Api(tags="05、公共服务-健康检测") +@Api(tags="06、公共服务-健康检测") @RestController("healthController") @RequestMapping("/common/health") public class HealthController { diff --git a/face-search-server/src/main/java/com/visual/face/search/server/controller/server/api/FaceCompareControllerApi.java b/face-search-server/src/main/java/com/visual/face/search/server/controller/server/api/FaceCompareControllerApi.java new file mode 100644 index 0000000..54ef408 --- /dev/null +++ b/face-search-server/src/main/java/com/visual/face/search/server/controller/server/api/FaceCompareControllerApi.java @@ -0,0 +1,19 @@ +package com.visual.face.search.server.controller.server.api; + +import com.visual.face.search.server.domain.common.ResponseInfo; +import com.visual.face.search.server.domain.request.FaceCompareReqVo; +import com.visual.face.search.server.domain.response.FaceCompareRepVo; + +/** + * 人脸1:1比对 + */ +public interface FaceCompareControllerApi { + + /** + * 人脸比对1:1接口 + * @param compareReq + * @return + */ + public ResponseInfo faceCompare(FaceCompareReqVo compareReq); + +} diff --git a/face-search-server/src/main/java/com/visual/face/search/server/controller/server/impl/FaceCompareControllerImpl.java b/face-search-server/src/main/java/com/visual/face/search/server/controller/server/impl/FaceCompareControllerImpl.java new file mode 100644 index 0000000..710d95b --- /dev/null +++ b/face-search-server/src/main/java/com/visual/face/search/server/controller/server/impl/FaceCompareControllerImpl.java @@ -0,0 +1,15 @@ +package com.visual.face.search.server.controller.server.impl; + +import com.visual.face.search.server.controller.server.api.FaceCompareControllerApi; +import com.visual.face.search.server.domain.common.ResponseInfo; +import com.visual.face.search.server.domain.request.FaceCompareReqVo; +import com.visual.face.search.server.domain.response.FaceCompareRepVo; + +public class FaceCompareControllerImpl implements FaceCompareControllerApi { + + @Override + public ResponseInfo faceCompare(FaceCompareReqVo compareReq) { + return null; + } + +} diff --git a/face-search-server/src/main/java/com/visual/face/search/server/controller/server/restful/FaceCompareController.java b/face-search-server/src/main/java/com/visual/face/search/server/controller/server/restful/FaceCompareController.java new file mode 100644 index 0000000..0dbfe17 --- /dev/null +++ b/face-search-server/src/main/java/com/visual/face/search/server/controller/server/restful/FaceCompareController.java @@ -0,0 +1,27 @@ +package com.visual.face.search.server.controller.server.restful; + +import com.visual.face.search.server.controller.server.impl.FaceCompareControllerImpl; +import com.visual.face.search.server.domain.common.ResponseInfo; +import com.visual.face.search.server.domain.request.FaceCompareReqVo; +import com.visual.face.search.server.domain.response.FaceCompareRepVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags="05、人脸比对服务") +@RestController("visualFaceCompareController") +@RequestMapping("/visual/compare") +public class FaceCompareController extends FaceCompareControllerImpl { + + + @ApiOperation(value="1、人脸比对1:1", position = 1) + @Override + @ResponseBody + @RequestMapping(value = "/do", method = RequestMethod.POST) + public ResponseInfo faceCompare(FaceCompareReqVo compareReq) { + return super.faceCompare(compareReq); + } +} diff --git a/face-search-server/src/main/java/com/visual/face/search/server/domain/extend/CompareFace.java b/face-search-server/src/main/java/com/visual/face/search/server/domain/extend/CompareFace.java new file mode 100644 index 0000000..d648035 --- /dev/null +++ b/face-search-server/src/main/java/com/visual/face/search/server/domain/extend/CompareFace.java @@ -0,0 +1,53 @@ +package com.visual.face.search.server.domain.extend; + +import io.swagger.annotations.ApiModelProperty; + +public class CompareFace { + + /**人脸质量分数**/ + @ApiModelProperty(value="A图片人脸分数:[0,100]", position = 1, required = true) + private Float faceScoreA; + /**人脸质量分数**/ + @ApiModelProperty(value="B图片人脸分数:[0,100]", position = 1, required = true) + private Float faceScoreB; + + /**人脸位置信息**/ + @ApiModelProperty(value="A图片人脸位置信息", position = 3, required = true) + private FaceLocation locationA; + /**人脸位置信息**/ + @ApiModelProperty(value="B图片人脸位置信息", position = 4, required = true) + private FaceLocation locationB; + + + public Float getFaceScoreA() { + return faceScoreA; + } + + public void setFaceScoreA(Float faceScoreA) { + this.faceScoreA = faceScoreA; + } + + public FaceLocation getLocationA() { + return locationA; + } + + public void setLocationA(FaceLocation locationA) { + this.locationA = locationA; + } + + public Float getFaceScoreB() { + return faceScoreB; + } + + public void setFaceScoreB(Float faceScoreB) { + this.faceScoreB = faceScoreB; + } + + public FaceLocation getLocationB() { + return locationB; + } + + public void setLocationB(FaceLocation locationB) { + this.locationB = locationB; + } +} diff --git a/face-search-server/src/main/java/com/visual/face/search/server/domain/request/FaceCompareReqVo.java b/face-search-server/src/main/java/com/visual/face/search/server/domain/request/FaceCompareReqVo.java new file mode 100644 index 0000000..62385bf --- /dev/null +++ b/face-search-server/src/main/java/com/visual/face/search/server/domain/request/FaceCompareReqVo.java @@ -0,0 +1,64 @@ +package com.visual.face.search.server.domain.request; + +import com.visual.face.search.server.domain.base.BaseVo; +import io.swagger.annotations.ApiModelProperty; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +public class FaceCompareReqVo extends BaseVo { + + /**图像Base64编码值**/ + @NotNull(message = "imageBase64A cannot be empty") + @ApiModelProperty(value="图像A的Base64编码值", position = 1,required = true) + private String imageBase64A; + + /**图像Base64编码值**/ + @NotNull(message = "imageBase64B cannot be empty") + @ApiModelProperty(value="图像B的Base64编码值", position = 2,required = true) + private String imageBase64B; + + /**人脸质量分数阈值**/ + @Size(min = 0, max = 100, message = "faceScoreThreshold is not in the range") + @ApiModelProperty(value="人脸质量分数阈值,范围:[0,100]:默认0。当设置为0时,会默认使用当前模型的默认值,该方法为推荐使用方式", position = 3,required = false) + private Float faceScoreThreshold = 0f; + + /**是否需要人脸信息**/ + @ApiModelProperty(value="是否需要人脸信息,默认为:true", position = 4,required = false) + private Boolean needFaceInfo = true; + + + public String getImageBase64A() { + return imageBase64A; + } + + public void setImageBase64A(String imageBase64A) { + this.imageBase64A = imageBase64A; + } + + public String getImageBase64B() { + return imageBase64B; + } + + public void setImageBase64B(String imageBase64B) { + this.imageBase64B = imageBase64B; + } + + public Float getFaceScoreThreshold() { + return faceScoreThreshold; + } + + public void setFaceScoreThreshold(Float faceScoreThreshold) { + if(null != faceScoreThreshold && faceScoreThreshold >= 0 && faceScoreThreshold <= 100){ + this.faceScoreThreshold = faceScoreThreshold; + } + } + + public Boolean getNeedFaceInfo() { + return needFaceInfo; + } + + public void setNeedFaceInfo(Boolean needFaceInfo) { + this.needFaceInfo = needFaceInfo; + } +} diff --git a/face-search-server/src/main/java/com/visual/face/search/server/domain/response/FaceCompareRepVo.java b/face-search-server/src/main/java/com/visual/face/search/server/domain/response/FaceCompareRepVo.java new file mode 100644 index 0000000..d0ce624 --- /dev/null +++ b/face-search-server/src/main/java/com/visual/face/search/server/domain/response/FaceCompareRepVo.java @@ -0,0 +1,41 @@ +package com.visual.face.search.server.domain.response; + +import com.visual.face.search.server.domain.base.BaseVo; +import com.visual.face.search.server.domain.extend.CompareFace; +import io.swagger.annotations.ApiModelProperty; + +public class FaceCompareRepVo extends BaseVo { + /**向量的距离**/ + @ApiModelProperty(value="向量距离:>=0", position = 1, required = true) + private Float distance; + /**转换后的置信度**/ + @ApiModelProperty(value="转换后的置信度:[-100,100],值越大,相似度越高。", position = 2, required = true) + private Float confidence; + /**人脸信息**/ + @ApiModelProperty(value="人脸信息,参数needFaceInfo=false时,值为null", position = 3, required = false) + private CompareFace faceInfo; + + public Float getDistance() { + return distance; + } + + public void setDistance(Float distance) { + this.distance = distance; + } + + public Float getConfidence() { + return confidence; + } + + public void setConfidence(Float confidence) { + this.confidence = confidence; + } + + public CompareFace getFaceInfo() { + return faceInfo; + } + + public void setFaceInfo(CompareFace faceInfo) { + this.faceInfo = faceInfo; + } +}