diff --git a/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceCompareServiceImpl.java b/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceCompareServiceImpl.java index ad006b2..5501f9a 100644 --- a/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceCompareServiceImpl.java +++ b/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceCompareServiceImpl.java @@ -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; diff --git a/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceSearchServiceImpl.java b/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceSearchServiceImpl.java index 66e65be..c8a5b32 100644 --- a/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceSearchServiceImpl.java +++ b/face-search-server/src/main/java/com/visual/face/search/server/service/impl/FaceSearchServiceImpl.java @@ -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 match = new ArrayList<>(); SearchResult searchResult = result.get(i); List 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 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);