mirror of
https://gitee.com/open-visual/face-search.git
synced 2025-07-25 19:41:42 +08:00
update:添加人脸比对1:1的接口服务
This commit is contained in:
parent
700df6569a
commit
1dafa9f0e1
@ -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 {
|
||||
|
@ -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<FaceCompareRepVo> faceCompare(FaceCompareReqVo compareReq);
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user