From bdcc9624341ee34298be74a706b09f12f8306456 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期四, 18 四月 2024 23:16:56 +0800
Subject: [PATCH] 优化缓存的数据, 取消多次的base64计算和float32转换

---
 compare/compare.go |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/compare/compare.go b/compare/compare.go
index 5b86ce6..2fc28b5 100644
--- a/compare/compare.go
+++ b/compare/compare.go
@@ -1,7 +1,6 @@
 package compare
 
 import (
-	"encoding/base64"
 	"fmt"
 	"strconv"
 
@@ -18,6 +17,8 @@
 	if args.FaceFeature == nil {
 		return nil
 	}
+
+	floatFeat := ByteSlice2float32Slice(args.FaceFeature)
 
 	//鎸囧畾鏈�浣庡垎
 	baseScore := thresholdLimit
@@ -36,7 +37,7 @@
 	if args.TreeNodes != nil && len(args.TreeNodes) > 0 {
 		for _, id := range args.TreeNodes {
 			if _, ok := cache.CacheMap.Area[id]; ok {
-				targets := cache.CacheMap.Area[id].Walk(DoSdkCompare, args.FaceFeature, baseScore)
+				targets := cache.CacheMap.Area[id].Walk(DoSdkCompare, floatFeat, baseScore)
 				if len(targets) > 0 {
 					scResult.CompareResult = append(scResult.CompareResult, targets...)
 				}
@@ -60,7 +61,7 @@
 			continue
 		}
 
-		targets := val.Walk(DoSdkCompare, args.FaceFeature, baseScore)
+		targets := val.Walk(DoSdkCompare, floatFeat, baseScore)
 		if len(targets) > 0 {
 			scResult.CompareResult = append(scResult.CompareResult, targets...)
 			// todo 娣诲姞灏忓尯澶栫殑鍏宠仈鍏崇郴, 涓嬫浼樺厛姣斿
@@ -78,13 +79,8 @@
 	return buf
 }
 
-func DoSdkCompare(ci []byte, co string) float32 {
-	co_d, err := base64.StdEncoding.DecodeString(co)
-	if err != nil {
-		logger.Error("DoSdkCompare err:", err)
-		return -1
-	}
-	sec := DecCompare(ci, co_d)
+func DoSdkCompare(ci, co []float32) float32 {
+	sec := DirectCompare(ci, co)
 	//logger.Debug("姣斿寰楀垎涓猴細", sec)
 
 	sec = ParseScore(sec)

--
Gitblit v1.8.0