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

This commit is contained in:
divenswu 2022-03-18 09:50:07 +08:00
parent 5ecdbe02c8
commit e32bcf5580
2 changed files with 7 additions and 7 deletions

View File

@ -36,18 +36,18 @@ public class FaceCompareServiceImpl implements FaceCompareService {
}
//计算余弦相似度
float simVal = Similarity.cosineSimilarity(faceInfoA.embedding.embeds, faceInfoB.embedding.embeds);
float confidence = (float) Math.floor(simVal * 10000)/100;
float confidence = (float) Math.floor(simVal * 1000000)/100;
//欧式距离
float euclideanDistance = Similarity.euclideanDistance(faceInfoA.embedding.embeds, faceInfoB.embedding.embeds);
float distance = (float) Math.floor(euclideanDistance * 10000)/100;
float distance = (float) Math.floor(euclideanDistance * 1000000)/100;
//构建返回值
FaceCompareRepVo faceCompareRep = new FaceCompareRepVo();
faceCompareRep.setDistance(distance);
faceCompareRep.setConfidence(confidence);
if(compareReq.getNeedFaceInfo()){
CompareFace compareFace = new CompareFace();
compareFace.setFaceScoreA(faceInfoA.score);
compareFace.setFaceScoreB(faceInfoB.score);
compareFace.setFaceScoreA((float) Math.floor(faceInfoA.score * 1000000)/100);
compareFace.setFaceScoreB((float) Math.floor(faceInfoA.score * 1000000)/100);
FaceInfo.FaceBox boxA = faceInfoA.box;
compareFace.setLocationA(FaceLocation.build(boxA.leftTop.x, boxA.leftTop.y, boxA.width(), boxA.height()));
FaceInfo.FaceBox boxB = faceInfoB.box;

View File

@ -123,7 +123,7 @@ public class FaceSearchServiceImpl extends BaseService implements FaceSearchServ
FaceInfo.FaceBox box = faceInfos.get(i).box;
FaceSearchRepVo vo = FaceSearchRepVo.build();
vo.setLocation(FaceLocation.build(box.leftTop.x, box.leftTop.y, box.width(), box.height()));
vo.setFaceScore((float)Math.floor(faceInfos.get(i).score * 10000)/100);
vo.setFaceScore((float)Math.floor(faceInfos.get(i).score * 1000000)/100);
List<SampleFaceVo> match = new ArrayList<>();
SearchResult searchResult = result.get(i);
List<SearchDocument> documents = searchResult.getDocuments();
@ -135,7 +135,7 @@ public class FaceSearchServiceImpl extends BaseService implements FaceSearchServ
String faceVectorStr = MapUtils.getString(face, Constant.ColumnNameFaceVector);
float[] faceVector = ValueUtil.convertVector(faceVectorStr);
float simVal = Similarity.cosineSimilarity(faceInfos.get(i).embedding.embeds, faceVector);
float confidence = (float) Math.floor(simVal * 10000)/100;
float confidence = (float) Math.floor(simVal * 1000000)/100;
if(null != sampleId && sampleMapping.containsKey(sampleId) && confidence >= search.getConfidenceThreshold()){
Map<String, Object> sample = sampleMapping.get(sampleId);
SampleFaceVo faceVo = SampleFaceVo.build();
@ -143,7 +143,7 @@ public class FaceSearchServiceImpl extends BaseService implements FaceSearchServ
faceVo.setFaceId(document.getFaceId());
faceVo.setFaceScore(faceScore);
faceVo.setConfidence(confidence);
faceVo.setDistance((float) Math.floor(document.getScore() * 100) / 100);
faceVo.setDistance((float) Math.floor(document.getScore() * 1000000) / 100);
faceVo.setFaceData(ValueUtil.getFieldKeyValues(face, ValueUtil.getFaceColumns(collection)));
faceVo.setSampleData(ValueUtil.getFieldKeyValues(sample, ValueUtil.getSampleColumns(collection)));
match.add(faceVo);