mirror of
https://gitee.com/open-visual/face-search.git
synced 2025-07-25 19:41:42 +08:00
update:version 1.1.0
This commit is contained in:
parent
027487e78b
commit
606ef0abcd
@ -36,18 +36,18 @@ public class FaceCompareServiceImpl implements FaceCompareService {
|
|||||||
}
|
}
|
||||||
//计算余弦相似度
|
//计算余弦相似度
|
||||||
float simVal = Similarity.cosineSimilarity(faceInfoA.embedding.embeds, faceInfoB.embedding.embeds);
|
float simVal = Similarity.cosineSimilarity(faceInfoA.embedding.embeds, faceInfoB.embedding.embeds);
|
||||||
float confidence = (float) Math.floor(simVal * 1000000)/100;
|
float confidence = (float) Math.floor(simVal * 1000000)/10000;
|
||||||
//欧式距离
|
//欧式距离
|
||||||
float euclideanDistance = Similarity.euclideanDistance(faceInfoA.embedding.embeds, faceInfoB.embedding.embeds);
|
float euclideanDistance = Similarity.euclideanDistance(faceInfoA.embedding.embeds, faceInfoB.embedding.embeds);
|
||||||
float distance = (float) Math.floor(euclideanDistance * 1000000)/100;
|
float distance = (float) Math.floor(euclideanDistance * 10000)/10000;
|
||||||
//构建返回值
|
//构建返回值
|
||||||
FaceCompareRepVo faceCompareRep = new FaceCompareRepVo();
|
FaceCompareRepVo faceCompareRep = new FaceCompareRepVo();
|
||||||
faceCompareRep.setDistance(distance);
|
faceCompareRep.setDistance(distance);
|
||||||
faceCompareRep.setConfidence(confidence);
|
faceCompareRep.setConfidence(confidence);
|
||||||
if(compareReq.getNeedFaceInfo()){
|
if(compareReq.getNeedFaceInfo()){
|
||||||
CompareFace compareFace = new CompareFace();
|
CompareFace compareFace = new CompareFace();
|
||||||
compareFace.setFaceScoreA((float) Math.floor(faceInfoA.score * 1000000)/100);
|
compareFace.setFaceScoreA((float) Math.floor(faceInfoA.score * 1000000)/10000);
|
||||||
compareFace.setFaceScoreB((float) Math.floor(faceInfoA.score * 1000000)/100);
|
compareFace.setFaceScoreB((float) Math.floor(faceInfoA.score * 1000000)/10000);
|
||||||
FaceInfo.FaceBox boxA = faceInfoA.box;
|
FaceInfo.FaceBox boxA = faceInfoA.box;
|
||||||
compareFace.setLocationA(FaceLocation.build(boxA.leftTop.x, boxA.leftTop.y, boxA.width(), boxA.height()));
|
compareFace.setLocationA(FaceLocation.build(boxA.leftTop.x, boxA.leftTop.y, boxA.width(), boxA.height()));
|
||||||
FaceInfo.FaceBox boxB = faceInfoB.box;
|
FaceInfo.FaceBox boxB = faceInfoB.box;
|
||||||
|
@ -123,7 +123,7 @@ public class FaceSearchServiceImpl extends BaseService implements FaceSearchServ
|
|||||||
FaceInfo.FaceBox box = faceInfos.get(i).box;
|
FaceInfo.FaceBox box = faceInfos.get(i).box;
|
||||||
FaceSearchRepVo vo = FaceSearchRepVo.build();
|
FaceSearchRepVo vo = FaceSearchRepVo.build();
|
||||||
vo.setLocation(FaceLocation.build(box.leftTop.x, box.leftTop.y, box.width(), box.height()));
|
vo.setLocation(FaceLocation.build(box.leftTop.x, box.leftTop.y, box.width(), box.height()));
|
||||||
vo.setFaceScore((float)Math.floor(faceInfos.get(i).score * 1000000)/100);
|
vo.setFaceScore((float)Math.floor(faceInfos.get(i).score * 1000000)/10000);
|
||||||
List<SampleFaceVo> match = new ArrayList<>();
|
List<SampleFaceVo> match = new ArrayList<>();
|
||||||
SearchResult searchResult = result.get(i);
|
SearchResult searchResult = result.get(i);
|
||||||
List<SearchDocument> documents = searchResult.getDocuments();
|
List<SearchDocument> documents = searchResult.getDocuments();
|
||||||
@ -135,7 +135,7 @@ public class FaceSearchServiceImpl extends BaseService implements FaceSearchServ
|
|||||||
String faceVectorStr = MapUtils.getString(face, Constant.ColumnNameFaceVector);
|
String faceVectorStr = MapUtils.getString(face, Constant.ColumnNameFaceVector);
|
||||||
float[] faceVector = ValueUtil.convertVector(faceVectorStr);
|
float[] faceVector = ValueUtil.convertVector(faceVectorStr);
|
||||||
float simVal = Similarity.cosineSimilarity(faceInfos.get(i).embedding.embeds, faceVector);
|
float simVal = Similarity.cosineSimilarity(faceInfos.get(i).embedding.embeds, faceVector);
|
||||||
float confidence = (float) Math.floor(simVal * 1000000)/100;
|
float confidence = (float) Math.floor(simVal * 1000000)/10000;
|
||||||
if(null != sampleId && sampleMapping.containsKey(sampleId) && confidence >= search.getConfidenceThreshold()){
|
if(null != sampleId && sampleMapping.containsKey(sampleId) && confidence >= search.getConfidenceThreshold()){
|
||||||
Map<String, Object> sample = sampleMapping.get(sampleId);
|
Map<String, Object> sample = sampleMapping.get(sampleId);
|
||||||
SampleFaceVo faceVo = SampleFaceVo.build();
|
SampleFaceVo faceVo = SampleFaceVo.build();
|
||||||
@ -143,7 +143,7 @@ public class FaceSearchServiceImpl extends BaseService implements FaceSearchServ
|
|||||||
faceVo.setFaceId(document.getFaceId());
|
faceVo.setFaceId(document.getFaceId());
|
||||||
faceVo.setFaceScore(faceScore);
|
faceVo.setFaceScore(faceScore);
|
||||||
faceVo.setConfidence(confidence);
|
faceVo.setConfidence(confidence);
|
||||||
faceVo.setDistance((float) Math.floor(document.getScore() * 1000000) / 100);
|
faceVo.setDistance((float) Math.floor(document.getScore() * 10000) / 10000);
|
||||||
faceVo.setFaceData(ValueUtil.getFieldKeyValues(face, ValueUtil.getFaceColumns(collection)));
|
faceVo.setFaceData(ValueUtil.getFieldKeyValues(face, ValueUtil.getFaceColumns(collection)));
|
||||||
faceVo.setSampleData(ValueUtil.getFieldKeyValues(sample, ValueUtil.getSampleColumns(collection)));
|
faceVo.setSampleData(ValueUtil.getFieldKeyValues(sample, ValueUtil.getSampleColumns(collection)));
|
||||||
match.add(faceVo);
|
match.add(faceVo);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user