From e32bcf5580ab3808077a7771c144e9b805774511 Mon Sep 17 00:00:00 2001 From: divenswu Date: Fri, 18 Mar 2022 09:50:07 +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 --- .../server/service/impl/FaceCompareServiceImpl.java | 8 ++++---- .../search/server/service/impl/FaceSearchServiceImpl.java | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) 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);