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 +++++++++++++++++++++-----------------------
models/esSearch.go | 6 ++-
2 files changed, 47 insertions(+), 48 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()
diff --git a/models/esSearch.go b/models/esSearch.go
index 3ced5f5..9fd6d22 100644
--- a/models/esSearch.go
+++ b/models/esSearch.go
@@ -14,7 +14,9 @@
IsAggs bool `json:"isAggs"`//
InputValue string `json:"inputValue"`//杈撳叆妗�
Collection string `json:"collection"`//
- AlarmLevel []int32 `json:"alarmLevel"`//甯冮槻绛夌骇
+ AlarmLevel []int32 `json:"alarmLevel"`//甯冮槻绛夌骇
CompareNum string `json:"compareNum"`//姣斿缂栧彿
- CaptureId string `json:"captureId"`//鎶撴媿id
+
+ CompTargetId string `json:"compTargetId"`//鏌ユ壘姝や汉id锛堟棦鍙兘鏌ユ壘鎶撴媿浜猴紝涔熷彲鑳芥煡鎵惧簳搴撲汉锛�
+ CompTargetType int `json:"compTargetType"`//鏌ユ壘姝や汉鐨勭被鍨嬶紝0:搴曞簱锛�1:鎶撴媿
}
--
Gitblit v1.8.0