| | |
| | | |
| | | var CaptureTable = "capturetable" // 抓拍库 |
| | | |
| | | func (sv *FaceCompareService) Compare() *CompareOnce{ |
| | | func (sv *FaceCompareService) CompareVideoPersons() *CompareList{ |
| | | sv.CompareArgs.TableIds = []string { CaptureTable } |
| | | b, err := proto.Marshal(&sv.CompareArgs) |
| | | compServerList := config.CompServerInfo.Url |
| | | logger.Debug("compServerList:", compServerList) |
| | | //1.向各个compare进程发起请求拿到比对结果 |
| | | esCompServerList := config.EsCompServerInfo.Url |
| | | logger.Debug("compServerList:", esCompServerList) |
| | | //1.向各个Es compare进程发起请求拿到比对结果 |
| | | var resultList CompareList |
| | | //resultList :=make([]*protomsg.SdkCompareEach,0) |
| | | for _,str :=range compServerList{ |
| | | |
| | | for _,str :=range esCompServerList{ |
| | | reqUrl := "tcp://"+str |
| | | resultB := doCompareRequest(reqUrl,b) |
| | | if resultB == nil || len(*resultB) ==0 { |
| | | continue |
| | | } |
| | | var sdkCompResult protomsg.SdkCompareResult |
| | | //rList :=make([]protomsg.Esinfo,0) |
| | | |
| | | err = proto.Unmarshal(*resultB, &sdkCompResult) |
| | | if err !=nil { |
| | | logger.Debug("comp sdkCompareResult unmarshal err:", err) |
| | |
| | | logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult)) |
| | | if len(sdkCompResult.CompareResult) >0 { |
| | | resultList = append(resultList, sdkCompResult.CompareResult...) |
| | | //resultList = append(resultList, FillDataToCompareResult(&sdkCompResult)...) |
| | | } |
| | | } |
| | | logger.Debug("comp totalList.len:", len(resultList)) |
| | | |
| | | //2.缓存比对结果 |
| | | co := &CompareOnce{ |
| | | CompareNum: sv.CompareNum, |
| | | CompareData: &resultList, |
| | | } |
| | | SetCompResultByNum(co) |
| | | return &resultList |
| | | } |
| | | |
| | | return co |
| | | //比对底库 |
| | | func (sv *FaceCompareService) CompareDbPersons() *CompareList{ |
| | | b, err := proto.Marshal(&sv.CompareArgs) |
| | | dbPersonCompServerUrl := config.DbPersonCompInfo.Url |
| | | logger.Debug("comp Server url:", dbPersonCompServerUrl) |
| | | |
| | | var resultList CompareList |
| | | |
| | | reqUrl := "tcp://"+dbPersonCompServerUrl |
| | | resultB := doCompareRequest(reqUrl,b) |
| | | if resultB == nil || len(*resultB) ==0 { |
| | | return nil |
| | | } |
| | | var sdkCompResult protomsg.SdkCompareResult |
| | | err = proto.Unmarshal(*resultB, &sdkCompResult) |
| | | if err !=nil { |
| | | logger.Debug("comp sdkCompareResult unmarshal err:", err) |
| | | return nil |
| | | } |
| | | |
| | | logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult)) |
| | | if len(sdkCompResult.CompareResult) >0 { |
| | | resultList = append(resultList, sdkCompResult.CompareResult...) |
| | | } |
| | | |
| | | logger.Debug("comp totalList.len:", len(resultList)) |
| | | |
| | | return &resultList |
| | | } |
| | | |
| | | func doCompareRequest(url string,args []byte) *[]byte{ |