config/dev.yaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/fileController.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
extend/config/config.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/FaceCompareService.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
config/dev.yaml
@@ -6,9 +6,11 @@ imageUrl: http://192.168.1.203:6080 publicDomain: http://bsic.asuscomm.com networkAdapter: enp8s0 compare: dbpersoncompare: url: 127.0.0.1:40010 espersoncompare: url: - 127.0.0.1:40010 - 127.0.0.1:40011 weedfs: ip: 192.168.1.203 uploadport: 6333 controllers/fileController.go
@@ -368,11 +368,12 @@ CompareThreshold: searchBody.Threshold, } var hasCompEsPerson = false if searchBody.DataBases !=nil { for idx,tableId :=range searchBody.DataBases { if tableId == "esData" { searchBody.DataBases = append(searchBody.DataBases[:idx], searchBody.DataBases[idx+1:]...) searchBody.DataBases = append(searchBody.DataBases,service.CaptureTable) hasCompEsPerson = true break } } @@ -395,22 +396,38 @@ timeStart := time.Now() compareService := service.NewFaceCompareService(arg) compareOnce := compareService.Compare() totalData := compareOnce.CompareData var totalData service.CompareList if len(arg.TableIds) >0 {//有比对底库 dbPersonTargets := compareService.CompareDbPersons() if dbPersonTargets !=nil { totalData = append(totalData,*dbPersonTargets...) } } if hasCompEsPerson {//有比对Es抓拍 esPersons := compareService.CompareVideoPersons() if esPersons !=nil { totalData = append(totalData, *esPersons...) } } logger.Debug("comp 比对结束,用时:",time.Since(timeStart)) service.SetCompResultByNum(&service.CompareOnce{ CompareNum: compareService.CompareNum, CompareData: &totalData, }) m := make(map[string]interface{},3) if totalData != nil && totalData.Len() > 0{ sort.Sort(totalData) total := totalData.Len() m["compareNum"] = compareOnce.CompareNum m["compareNum"] = compareService.CompareNum m["total"] = total var sCompResult protomsg.SdkCompareResult if total <= searchBody.Size { sCompResult.CompareResult = *totalData sCompResult.CompareResult = totalData } else { sCompResult.CompareResult = (*totalData)[0:searchBody.Size] sCompResult.CompareResult = totalData[0:searchBody.Size] } resultList := FillDataToCompareResult(&sCompResult) m["totalList"] = resultList @@ -418,7 +435,7 @@ } else { m["total"] = 0 m["compareNum"] = searchBody.CompareNum m["compareNum"] = compareService.CompareNum m["totalList"] = []CompareResult{} } util.ResponseFormat(c,code.Success,m) extend/config/config.go
@@ -64,11 +64,17 @@ var DBconf = &database{} type CompareServer struct { type dbpersoncompare struct { Url string `mapstructure:"url"` } type espersoncompare struct { Url []string `mapstructure:"url"` } var CompServerInfo = &CompareServer{} var DbPersonCompInfo = &dbpersoncompare{} var EsCompServerInfo = &espersoncompare{} // Init is an exported method that takes the environment starts the viper @@ -88,5 +94,6 @@ viper.UnmarshalKey("redis", RedisConf) viper.UnmarshalKey("database", DBconf) viper.UnmarshalKey("weedfs", WeedFs) viper.UnmarshalKey("compare", CompServerInfo) viper.UnmarshalKey("dbpersoncompare",DbPersonCompInfo) viper.UnmarshalKey("espersoncompare", EsCompServerInfo) } service/FaceCompareService.go
@@ -63,21 +63,22 @@ 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) @@ -87,19 +88,41 @@ 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{