controllers/fileController.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/FaceCompareService.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
controllers/fileController.go
@@ -17,6 +17,7 @@ "mime/multipart" "net/http" "path" "sort" "strconv" "strings" "time" @@ -181,9 +182,22 @@ TableName string `json:"tableName"` } type CompareSortResult []CompareResult func (s CompareSortResult) Len() int{ return len(s) } func (s CompareSortResult) Swap(i,j int){ s[i],s[j] = s[j],s[i] } func (s CompareSortResult) Less(i,j int) bool{ return s[i].CompareScore > s[j].CompareScore } //填充向前端返回的数据 func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) []CompareResult { resultList :=make([]CompareResult,0) func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) CompareSortResult { //resultList :=make([]CompareResult,0) var resultList = CompareSortResult{} dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0) captureM := make(map[string]*protomsg.SdkCompareEach, 0) @@ -273,6 +287,7 @@ resultList = append(resultList,vpE) } } sort.Sort(resultList) return resultList } @@ -365,12 +380,23 @@ compareService := service.NewFaceCompareService(arg) compareOnce := compareService.Compare() totalData := compareOnce.CompareData logger.Debug("comp 比对结束,用时:",time.Since(timeStart)) m := make(map[string]interface{},3) if totalData!=nil && len(*totalData)>0{ if totalData != nil && totalData.Len() > 0{ //按分值排序 service.SortByScore(totalData) total := len(*totalData) var scorePre []float32 for _,f1 :=range *totalData { scorePre = append(scorePre, f1.CompareScore) } //logger.Debug("comp 排序前分值数组:",scorePre) sort.Sort(totalData) var scoreAf []float32 for _,f2 :=range *totalData { scoreAf = append(scoreAf, f2.CompareScore) } //logger.Debug("comp 排序后分值数组:",scoreAf) total := totalData.Len() m["compareNum"] = compareOnce.CompareNum m["total"] = total service/FaceCompareService.go
@@ -8,7 +8,6 @@ "nanomsg.org/go-mangos/protocol/req" "nanomsg.org/go-mangos/transport/ipc" "nanomsg.org/go-mangos/transport/tcp" "sort" "sync" "webserver/extend/config" "webserver/extend/logger" @@ -28,28 +27,19 @@ type CompareOnce struct { CompareNum string `json:"compareOnce"` CompareData *[]*protomsg.SdkCompareEach `json:"compareData"` CompareData *CompareList `json:"compareData"` } type CompareResultWrapper struct { CompareData *[]*protomsg.SdkCompareEach By func(p,q *protomsg.SdkCompareEach) bool } type CompareList []*protomsg.SdkCompareEach func (crw CompareResultWrapper) Len()int { return len(*crw.CompareData) func (s CompareList) Len()int { return len(s) } func (crw CompareResultWrapper) Swap(i,j int) { (*crw.CompareData)[i],(*crw.CompareData)[j] = (*crw.CompareData)[j],(*crw.CompareData)[i] func (s CompareList) Swap(i,j int) { s[i],s[j] = s[j],s[i] } func (crw CompareResultWrapper) Less(i,j int) bool{ return crw.By((*crw.CompareData)[i],(*crw.CompareData)[j]) } func SortByScore(list *[]*protomsg.SdkCompareEach) { sort.Sort(CompareResultWrapper{list, func(p, q *protomsg.SdkCompareEach) bool { return q.CompareScore < p.CompareScore //递减排序 }}) func (s CompareList) Less(i,j int) bool{//降序排序 return s[i].CompareScore > s[j].CompareScore } var compResultHisM = make(map[string]*CompareOnce,0) @@ -78,7 +68,8 @@ compServerList := config.CompServerInfo.Url logger.Debug("compServerList:", compServerList) //1.向各个compare进程发起请求拿到比对结果 resultList :=make([]*protomsg.SdkCompareEach,0) var resultList CompareList //resultList :=make([]*protomsg.SdkCompareEach,0) for _,str :=range compServerList{ reqUrl := "tcp://"+str resultB := doCompareRequest(reqUrl,b)