From f6d71fa2c9e24c337d34b2c6d1b481ce3a3c622e Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期二, 08 十月 2019 11:20:10 +0800 Subject: [PATCH] 查找此人不走提取,通过id获取特征 --- controllers/fileController.go | 89 +++++++++++++++++++++----------------------- 1 files changed, 43 insertions(+), 46 deletions(-) diff --git a/controllers/fileController.go b/controllers/fileController.go index 89438a4..d6d18ad 100644 --- a/controllers/fileController.go +++ b/controllers/fileController.go @@ -390,56 +390,55 @@ return } var faceB []byte - var uploadImage string - var smImages []string - //if searchBody.CaptureId != "" {//鍋氭煡鎵炬浜�,鎼滄墍鏈夋姄鎷嶅拰搴曞簱 - // searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CaptureId, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) - // if err !=nil { - // util.ResponseFormat(c, code.ComError, "鎶撴媿鏁版嵁涓嶅瓨鍦紝璇锋鏌�") - // return - // } - // if searchBase64Fea !=""{ - // decodeF, err := base64.StdEncoding.DecodeString(searchBase64Fea) - // if err !=nil { - // util.ResponseFormat(c, code.ComError, "鏈潯鎶撴�曠壒寰佷笉鏄痓ase64锛岃妫�鏌�") - // return - // } - // faceB = decodeF - // } - //} else {//鍋氫互鍥炬悳鍥� - // - //} - if searchBody.PicUrl == "" || len(searchBody.DataBases) == 0 { - util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎") - return - } - if face,ok := faceExtractedMap[searchBody.PicUrl];!ok{ - httpPicUrl := "" - idx := strings.LastIndex(searchBody.PicUrl, ":") - if idx>-1 { - httpPicUrl = "http://"+localConf.WebPicIp+searchBody.PicUrl[idx:] + if searchBody.CompTargetId != "" {//鍋氭煡鎵炬浜�,鎸夋姄鎷嶇殑浜鸿劯鎴栬�呭簳搴撶殑浜鸿劯浠ュ浘鎼滃浘 + if searchBody.CompTargetType == 0 {//鏈紶浜鸿劯鏄簳搴撲汉鑴� + var dbpApi dbapi.DbPersonApi + dbPersons, e := dbpApi.Dbpersoninfosbyid([]string{searchBody.CompTargetId}) + if e ==nil && dbPersons !=nil && len(dbPersons) ==1 { + searchBase64Fea := dbPersons[0].FaceFeature + if searchBase64Fea != "" { + decodeF, err := base64.StdEncoding.DecodeString(dbPersons[0].FaceFeature) + if err !=nil { + util.ResponseFormat(c, code.ComError, "鏈潯搴曞簱浜哄憳鐗瑰緛涓嶆槸base64锛岃妫�鏌�") + return + } + faceB = decodeF + } else { + util.ResponseFormat(c, code.ComError, "鏈潯搴曞簱浜哄憳鐗瑰緛涓虹┖锛岃妫�鏌�") + return + } + } else { + util.ResponseFormat(c, code.ComError, "搴曞簱浜哄憳鏌ヨ澶辫触锛岃妫�鏌�") + return + } } else { - util.ResponseFormat(c, code.RequestParamError, "鍥剧墖璺緞鏈夎锛岃閲嶆柊涓婁紶鍥剧墖") + searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CompTargetId, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) + if err !=nil { + util.ResponseFormat(c, code.ComError, "鎶撴媿鏁版嵁涓嶅瓨鍦紝璇锋鏌�") + return + } + if searchBase64Fea !=""{ + decodeF, err := base64.StdEncoding.DecodeString(searchBase64Fea) + if err !=nil { + util.ResponseFormat(c, code.ComError, "鏈潯鎶撴�曠壒寰佷笉鏄痓ase64锛岃妫�鏌�") + return + } + faceB = decodeF + } + } + + } else {//鍋氫互鍥炬悳鍥� + if searchBody.PicUrl == "" || len(searchBody.DataBases) == 0 { + util.ResponseFormat(c, code.RequestParamError, "浠ュ浘鎼滃浘PicUrl涓嶈兘涓虹┖") return } - logger.Debug("httpPicUrl:",httpPicUrl) - rb,err := util.ReadImgData(httpPicUrl) - if err !=nil { - util.ResponseFormat(c, code.RequestParamError, "璇诲彇鍥剧墖澶辫触锛岃閲嶆柊涓婁紶鍥剧墖") - return - } - feaB, oriImg, smImgs, e := GetFeaFromOneFaceImg(rb) - if e !=nil { - util.ResponseFormat(c, code.RequestParamError, "鏈彁鍙栧埌鐗瑰緛锛岃閲嶆柊涓婁紶鍥剧墖") + if face,ok := faceExtractedMap[searchBody.PicUrl];!ok{ + util.ResponseFormat(c, code.RequestParamError, "浜鸿劯鐗瑰緛鏈娴嬶紝璇烽噸鏂颁笂浼犲浘鐗�") return } else { - uploadImage = oriImg - smImages = smImgs - faceB = feaB + faceB = face.FaceBytes } - } else { - faceB = face.FaceBytes } if faceB == nil { @@ -499,9 +498,7 @@ CompareData: &totalData, }) - m := make(map[string]interface{},5) - m["uploadImage"] = uploadImage - m["smImage"] = smImages + m := make(map[string]interface{},3) if totalData != nil && totalData.Len() > 0{ sort.Sort(totalData) total := totalData.Len() -- Gitblit v1.8.0