| | |
| | | Enable int32 `json:"enable"` |
| | | } |
| | | |
| | | 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 |
| | | type ScoreIndex struct { |
| | | CompareScore float32 |
| | | Index int |
| | | } |
| | | |
| | | //填充向前端返回的数据 |
| | | func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) CompareSortResult { |
| | | //resultList :=make([]CompareResult,0) |
| | | var resultList = CompareSortResult{} |
| | | func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) []CompareResult { |
| | | |
| | | dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0) |
| | | captureM := make(map[string]*protomsg.SdkCompareEach, 0) |
| | | var resultList = make([]CompareResult, len(compResult.CompareResult)) |
| | | dbPersonM := make(map[string]ScoreIndex, 0) |
| | | captureM := make(map[string]ScoreIndex, 0) |
| | | personIds := make([]string,0) |
| | | captureIds := make([]string,0) |
| | | for _,v :=range compResult.CompareResult{ |
| | | for idx,v :=range compResult.CompareResult{ |
| | | if v.Tableid == service.CaptureTable { |
| | | captureM[v.Id] = v |
| | | captureM[v.Id] = ScoreIndex{ |
| | | Index: idx, |
| | | CompareScore: v.CompareScore, |
| | | } |
| | | captureIds = append(captureIds,v.Id) |
| | | } else { |
| | | dbPersonM[v.Id] = v |
| | | dbPersonM[v.Id] = ScoreIndex{ |
| | | Index: idx, |
| | | CompareScore: v.CompareScore, |
| | | } |
| | | personIds = append(personIds,v.Id) |
| | | } |
| | | } |
| | |
| | | dbP.BwType = dbTableInfos[0].BwType |
| | | dbP.TableName = dbTableInfos[0].TableName |
| | | } |
| | | var cr = CompareResult{ |
| | | |
| | | resultList[dbPersonM[p.Id].Index] = CompareResult{ |
| | | BaseInfo:[]DbPersonVo{ dbP }, |
| | | } |
| | | resultList = append(resultList,cr) |
| | | } |
| | | } |
| | | if len(captureIds) >0 { |
| | |
| | | BaseInfo: bi, |
| | | SdkName: "人脸", |
| | | } |
| | | resultList = append(resultList,vpE) |
| | | resultList[captureM[vp.Id].Index] = vpE |
| | | } |
| | | } |
| | | var scorePre []float32 |
| | | for _,f1 :=range resultList { |
| | | scorePre = append(scorePre, f1.CompareScore) |
| | | } |
| | | logger.Debug("comp 排序前分值数组:",scorePre) |
| | | sort.Sort(resultList) |
| | | var scoreAf []float32 |
| | | for _,f2 :=range resultList { |
| | | scoreAf = append(scoreAf, f2.CompareScore) |
| | | } |
| | | logger.Debug("comp 排序后分值数组:",scoreAf) |
| | | return resultList |
| | | } |
| | | |