update:添加人脸比对1:1的接口服务

This commit is contained in:
divenswu 2022-03-17 18:57:55 +08:00
parent 700df6569a
commit 1dafa9f0e1
7 changed files with 220 additions and 1 deletions

View File

@ -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 {

View File

@ -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;
/**
* 人脸11比对
*/
public interface FaceCompareControllerApi {
/**
* 人脸比对11接口
* @param compareReq
* @return
*/
public ResponseInfo<FaceCompareRepVo> faceCompare(FaceCompareReqVo compareReq);
}

View File

@ -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<FaceCompareRepVo> faceCompare(FaceCompareReqVo compareReq) {
return null;
}
}

View File

@ -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<FaceCompareRepVo> faceCompare(FaceCompareReqVo compareReq) {
return super.faceCompare(compareReq);
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}