From e2aab518eddae165b9a7c517fbaddaf692ac4070 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期二, 10 九月 2019 18:49:05 +0800 Subject: [PATCH] merge labelFilter --- util/common.go | 46 +++--- util/upload.go | 3 go.sum | 19 -- insertdata/insertDataToEs.go | 139 +++++++++++++------ go.mod | 2 ruleserver/ruleToformula.go | 39 +++- main.go | 9 + ruleserver/readyDataForRule.go | 108 ++++++++++++-- ruleserver/timeTicker.go | 4 9 files changed, 242 insertions(+), 127 deletions(-) diff --git a/go.mod b/go.mod index 6eca960..3ebe584 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ require ( basic.com/dbapi.git v0.0.0-20190822081128-ce924b8a905f basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 - basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531 + basic.com/pubsub/protomsg.git v0.0.0-20190824080957-7b44351cb40b basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00 basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051 basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28 diff --git a/go.sum b/go.sum index 7aed012..c82c1fe 100644 --- a/go.sum +++ b/go.sum @@ -1,23 +1,6 @@ -basic.com/dbapi.git v0.0.0-20190701055817-73bca225181f h1:CVB4pmUXTPPFN7w/DQfU1YWg2Tp2gG93TTr1M5W86sE= -basic.com/dbapi.git v0.0.0-20190701055817-73bca225181f/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= -basic.com/dbapi.git v0.0.0-20190724082851-b6ae90344405 h1:BJzdtGipKxQAaptrwUNOVQZ3Qx4jbeAf72wkqBmm5vE= -basic.com/dbapi.git v0.0.0-20190724082851-b6ae90344405/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= -basic.com/dbapi.git v0.0.0-20190822035835-8e0e9514983b h1:rgPZYF2rIPESZo6zKWgRnP3nzslEY3ZMeWjr0CVIL2g= -basic.com/dbapi.git v0.0.0-20190822035835-8e0e9514983b/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= -basic.com/dbapi.git v0.0.0-20190822081128-ce924b8a905f h1:m7ONW0VqagpmWppr6GSa2Gykid202vCbV9worYCM+pg= basic.com/dbapi.git v0.0.0-20190822081128-ce924b8a905f/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q= -basic.com/pubsub/cache.git v0.0.0-20190712095028-e73efb4afc3b h1:UAasACFqEYUBCuZkkdxYVc1QmSyB7McvNHS36QxDJp4= -basic.com/pubsub/cache.git v0.0.0-20190712095028-e73efb4afc3b/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY= -basic.com/pubsub/cache.git v0.0.0-20190718024458-be52360c4814 h1:KoSik/aiJNDt3d+qRKExLW4pNHZ7vU1wXHhWXxZi4qo= -basic.com/pubsub/cache.git v0.0.0-20190718024458-be52360c4814/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY= -basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 h1:BBA30Rgljn6MRieC4gUncETJDyna3ObyubTo9HEQ2M0= basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY= -basic.com/pubsub/protomsg.git v0.0.0-20190801122504-ad6c105f7a2b h1:2eskhTo22eo07AmAj3xVo31U/+qRFf6P1qhlfxoaFOc= -basic.com/pubsub/protomsg.git v0.0.0-20190801122504-ad6c105f7a2b/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= -basic.com/pubsub/protomsg.git v0.0.0-20190821115153-4d63ce5655e6 h1:qusWXX8/w5kEzDRadRAlag956j72bcKvhaIEF/5f5k0= -basic.com/pubsub/protomsg.git v0.0.0-20190821115153-4d63ce5655e6/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= -basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531 h1:XsygHuAqvEovNNOiG80qLoV9OtdcN8IPP+xv/Ajx+Eg= -basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= +basic.com/pubsub/protomsg.git v0.0.0-20190824080957-7b44351cb40b/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00 h1:sK+Tx7rvM9J2WnNIwrzMDjZSylWiKNfQO0prUBfKsDk= basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00/go.mod h1:8by33F9E1w17Pw/rDgJGJXAo122w0wDENG14hiMS+RE= basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051 h1:9flC2o3kasaM2Y6I+mY+mxmve/pyAY/UzGQZLT3lFHM= diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index 13ac16e..ffdb4d4 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -9,7 +9,6 @@ "net" "ruleprocess/cache" "ruleprocess/logger" - "ruleprocess/structure" "time" "basic.com/pubsub/protomsg.git" @@ -111,6 +110,7 @@ RuleText string `json:"ruleText"` DefenceState bool `json:"defenceState"` IsLink bool `json:"isLink"` + LinkInfo string `json:"linkInfo"` } // 涓�涓猣ace瀵瑰涓鍒欑粍鐨勫綊缃汉鑴哥殑缁撴瀯浣� @@ -181,7 +181,7 @@ //os.Exit(1) for _,faceResult := range face.rules { alarm := ChangeToString(faceResult.DefenceState, faceResult.AlarmLevel) - alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState,faceResult.IsLink}) + alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState,faceResult.IsLink,""}) } i := protomsg.Image{} err = proto.Unmarshal(bdata, &i) @@ -204,7 +204,7 @@ if err != nil { logger.Error("涓婁紶灏忓浘鍑洪敊") } - logger.Info("================灏忓浘鍦板潃:", resp["fileUrl"].(string)) + //logger.Info("================灏忓浘鍦板潃:", resp["fileUrl"].(string)) sex := "" if face.ThftRes.Gender == 1 { sex = "鐢�" @@ -337,7 +337,11 @@ //logger.Info("搴旇杩涙潵鎵嶅鐨�") sdkNames = sdkNames + yoloResult.SdkName alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel) - alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState,yoloResult.IsLink}) + linkInfo := "" + if yoloResult.IsLink { + linkInfo = "鑱斿姩浠诲姟" + } + alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState,yoloResult.IsLink,linkInfo}) // 涓婁紶缂撳瓨鏁版嵁鐨勫浘鐗囨嬁鍒皍rl if yoloResult.Others.CacheData != nil { //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg)) @@ -395,6 +399,7 @@ resp, err = util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl) if err != nil { logger.Error("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err) + return } else { logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp) } @@ -415,52 +420,90 @@ logger.Error("鏌ヨ鎽勫儚鏈轰俊鎭け璐�") } serverIp, err := GetLocalIP() + if resp["fileUrl"] != nil { + url = append(url, resp["fileUrl"].(string)) + esDataId := uuid.NewV4().String() + linksId := "" + if linkId != "" { + linksId = linkId + } + peraction := Personaction{ + esDataId, + msg.Cid, + camera.Name, + camera.Addr, + msg.Tasklab.Taskid, + msg.Tasklab.Taskname, + sdkNames, + "", + alarmRules, + localConfig.ServerId, + localConfig.ServerName, + serverIp, + "", + url, + i.Timestamp, + linksId, + "", + isAlarm, + 0, + 0, + 0, + } + requstbody, err := json.Marshal(peraction) - url = append(url, resp["fileUrl"].(string)) - esDataId := uuid.NewV4().String() - linksId := "" - if linkId != "" { - linksId = linkId - } - peraction := Personaction{ - esDataId, - msg.Cid, - camera.Name, - camera.Addr, - msg.Tasklab.Taskid, - msg.Tasklab.Taskname, - sdkNames, - "", - alarmRules, - localConfig.ServerId, - localConfig.ServerName, - serverIp, - "", - url, - i.Timestamp, - linksId, - "", - isAlarm, - 0, - 0, - 0, - } - requstbody, err := json.Marshal(peraction) +//<<<<<<< HEAD +// url = append(url, resp["fileUrl"].(string)) +// esDataId := uuid.NewV4().String() +// linksId := "" +// if linkId != "" { +// linksId = linkId +// } +// peraction := Personaction{ +// esDataId, +// msg.Cid, +// camera.Name, +// camera.Addr, +// msg.Tasklab.Taskid, +// msg.Tasklab.Taskname, +// sdkNames, +// "", +// alarmRules, +// localConfig.ServerId, +// localConfig.ServerName, +// serverIp, +// "", +// url, +// i.Timestamp, +// linksId, +// "", +// isAlarm, +// 0, +// 0, +// 0, +// } +// requstbody, err := json.Marshal(peraction) +// +// if err != nil { +// logger.Info("json parse error ", err) +// return +//======= + if err != nil { + logger.Info("json parse error ", err) + return +//>>>>>>> labelFilter - if err != nil { - logger.Info("json parse error ", err) - return - - } - resp1, err2 := EsReq("POST", personAction, requstbody) - if err2 != nil { - logger.Error("寰�ES鎻掑叆鏁版嵁澶辫触", err) - } else { - logger.Debug("鎻掑叆es杩斿洖鐨勬暟鎹俊鎭槸锛�", resp1) - // 鍙戝嚭褰曞儚淇″彿 - ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 2}) - logger.Warn("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛") - //os.Exit(1) + } + resp1, err2 := EsReq("POST", personAction, requstbody) + if err2 != nil { + logger.Error("寰�ES鎻掑叆鏁版嵁澶辫触", err) + } else { + logger.Debug("鎻掑叆es杩斿洖鐨勬暟鎹俊鎭槸锛�", resp1) + // 鍙戝嚭褰曞儚淇″彿 + ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 2}) + logger.Warn("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛") + //os.Exit(1) + } } } else { logger.Debug("timeLabel鏉′欢閮戒笉绗﹀悎锛�") diff --git a/main.go b/main.go index 0ea330b..a8adc1a 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,8 @@ "basic.com/dbapi.git" "basic.com/pubsub/protomsg.git" "basic.com/valib/deliver.git" + "net/http" + _ "net/http/pprof" "ruleprocess/insertdata" "ruleprocess/structure" "ruleprocess/util" @@ -37,14 +39,17 @@ } func main() { + //fmt.Println("缂撳瓨鍒濆鍖栧畬鎴�",<- initchan)//dbserver鍒濆鍖栧畬姣� + go func() { + http.ListenAndServe("0.0.0.0:8899",nil) + }() flag.Parse() wg := sync.WaitGroup{} - wg.Add(2) + wg.Add(3) dbapi.Init(*dbIp, *dbPort) go cache.Init(initchan, *dbIp, *surveyPort, *pubPort) logger.Info("cache init completed!!!", <-initchan) //dbserver鍒濆鍖栧畬姣� - //fmt.Println("缂撳瓨鍒濆鍖栧畬鎴�",<- initchan)//dbserver鍒濆鍖栧畬姣� ruleserver.Init() go ruleserver.TimeTicker() go ruleserver.StartServer() diff --git a/ruleserver/readyDataForRule.go b/ruleserver/readyDataForRule.go index f9148f8..9b77c3e 100644 --- a/ruleserver/readyDataForRule.go +++ b/ruleserver/readyDataForRule.go @@ -1,8 +1,8 @@ package ruleserver import ( + "basic.com/dbapi.git" bigCache "basic.com/pubsub/cache.git" - "basic.com/pubsub/cache.git/esutil" "basic.com/pubsub/protomsg.git" "encoding/json" "errors" @@ -17,7 +17,6 @@ "net" "ruleprocess/cache" "ruleprocess/logger" - "ruleprocess/structure" "strconv" "time" ) @@ -52,12 +51,25 @@ } logger.Debug("鏈満淇℃伅鍜宻erver淇℃伅锛�", localConfig, serverIp, serverPort) bigCache.Init(dbTablePersons, serverIp, serverPort, localConfig.ServerId) - sock, err = req.NewSocket(); - if err != nil { - logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error()) - } + go Push1() } +var sender chan *protomsg.CompareArgs = make(chan *protomsg.CompareArgs) +var receiver chan []byte = make(chan []byte) +type BaseInfo struct { + TableId string `json:"tableId"` + TableName string `json:"tableName"` + BwType string `json:"bwType"` + CompareScore float64 `json:"compareScore"` + PersonId string `json:"personId"` + PersonName string `json:"personName"` + PersonPicUrl string `json:"personPicUrl"` + PhoneNum string `json:"phoneNum"` + Sex string `json:"sex"` + IdCard string `json:"idCard"` + MonitorLevel string `json:"monitorLevel"` + Content string `json:"content"` +} // 浠ユ憚鍍忔満id鏌ュ嚭璺熷叾鐩稿叧鐨勬墍鏈変换鍔′笅鐨勬墍鏈夎鍒欑粍 func GetRuleGroup(cameraId string, taskId string) *protomsg.TaskGroupArgs { @@ -155,12 +167,13 @@ CompareThreshold:compareThreshold, Source:false, } - serverIp, _ := GetLocalIP() - bytes := Push("tcp://"+serverIp+":40010",comArg,sock) + + bytes := getCompareMsg(comArg) var scResult protomsg.SdkCompareResult err1 := proto.Unmarshal(bytes, &scResult) if err1 != nil { logger.Error("getBaseInfo瑙e帇閿欒", err1) + return } //logger.Info("----------------------------------------map鏄�", m) ids := []string{} @@ -172,16 +185,20 @@ logger.Info("------------------------------------------------------------------------------------------------------------------------") //logger.Info("=====================浜哄憳id鐨勯泦鍚堜负锛�",ids) if len(ids) > 0 { - baseinfos, err1 := esutil.Dbpersoninfosbyid(ids, dbTablePersons, serverIp, serverPort) + var dbApi dbapi.DbPersonApi + baseinfos, err1 := dbApi.Dbpersoninfosbyid(ids) + //baseinfos, err1 := esutil.Dbpersoninfosbyid(ids, dbTablePersons, serverIp, serverPort) if err1 != nil { logger.Error("鏌ヨ搴曞簱浜哄憳淇℃伅鍑洪敊", err1) } + var dtapi dbapi.DbTableApi for _, baseinfo := range baseinfos { // 鏍规嵁tableId鏌ヨ搴曞簱淇℃伅缁檒iker璧嬪�� //logger.Info("---------鐪嬬湅姣忎釜搴曞簱浜哄憳鐨勪俊鎭細",baseinfo.Id,baseinfo.PersonName) tableIds := []string{} tableIds = append(tableIds, baseinfo.TableId) // 铏界劧鏄紶鍏ユ暟缁勮繑鍥炴暟缁勭殑鎺ュ彛锛屼絾鎴戞寜鍗曚釜鐨勪娇鐢ㄤ簡 - table, err := esutil.Dbtablefosbyid(tableIds, "dbtables", serverIp, serverPort) + table, err := dtapi.DbtablesById(tableIds) + //table, err := esutil.Dbtablefosbyid(tableIds, "dbtables", serverIp, serverPort) if err != nil || len(table) == 0 { logger.Error("鏍规嵁id鏌ヨ搴曞簱淇℃伅鍑洪敊锛�", err, "--杩斿洖鍊奸暱搴︿负锛�", len(table)) } @@ -286,10 +303,10 @@ a.FilterData = append(a.FilterData, &arg1) } } - logger.Info("鍖哄煙鏄細",areaPoints,"瑁呴厤瀹屾暟鎹尯鍩熷唴鐩爣鏁伴噺涓猴細",a.TargetNum) - a.Time = time.Unix(time.Now().Unix(), 0).String()[11:16] - a.KeepRight = arg.KeepRight - a.IsStatic = arg.IsStatic + logger.Info("鍖哄煙鏄細",areaPoints,"鍖哄煙鍐呯洰鏍囨暟閲忎负锛�",a.targetNum,"---",len(a.filterData)) + a.time = time.Unix(time.Now().Unix(), 0).String()[11:16] + a.keepRight = arg.KeepRight + a.isStatic = arg.IsStatic //logger.Println("--------------------鐪嬬湅鍖哄煙鏁版嵁锛�",*a) } @@ -308,7 +325,7 @@ } } -func Push(url string,data *protomsg.CompareArgs,sock mangos.Socket) []byte{ +func Push(data *protomsg.CompareArgs,sock mangos.Socket) []byte{ //var sock mangos.Socket var err error var msg []byte @@ -321,11 +338,13 @@ logger.Error("Failed set MaxRecvSize: %v", err) return nil } - //sock.AddTransport(ipc.NewTransport()) - sock.AddTransport(tcp.NewTransport()) - if err = sock.Dial(url); err != nil { + serverIP, _ := GetLocalIP() + if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil { logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error()) } + //sock.AddTransport(ipc.NewTransport()) + sock.AddTransport(tcp.NewTransport()) + logger.Info("搴忓垪鍖栨暟鎹�") bytes,err1 := proto.Marshal(data) logger.Info("鏁版嵁闀垮害涓猴細",len(bytes)) @@ -346,6 +365,57 @@ return msg } +func Push1(){ + //var sock mangos.Socket + var err error + var msg []byte + + if sock, err = req.NewSocket(); err != nil { + logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error()) + } + errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024) + if errSize != nil { + logger.Error("Failed set MaxRecvSize: %v", err) + } + //sock.AddTransport(ipc.NewTransport()) + sock.AddTransport(tcp.NewTransport()) + serverIP, _ := GetLocalIP() + if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil { + logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error()) + } + logger.Info("搴忓垪鍖栨暟鎹�") + + for { + select { + // case <-ctx.Done(): + // return + case data := <- sender: + bytes,err1 := proto.Marshal(data) + logger.Info("鏁版嵁闀垮害涓猴細",len(bytes)) + if err1 != nil { + logger.Info("搴忓垪鍖栧け璐ワ細",err1) + } + logger.Debug("鎺ㄩ�佹暟鎹�") + //bytes := []byte("ndfasojdfaidsos") + if err = sock.Send(bytes); err != nil { + logger.Error("鎺ㄩ�乻ocket鍙戦�佹暟鎹け璐�: %s", err.Error()) + //os.Exit(1) + } + if msg, err = sock.Recv(); err != nil { + logger.Error("鎺ユ敹鍝嶅簲澶辫触: %s", err.Error()) + //os.Exit(1) + } + logger.Debug("鏁版嵁鎺ㄩ�佹垚鍔燂紒鏀跺埌鍝嶅簲,鏁版嵁闀垮害涓猴細",len(msg)) + receiver <- msg + default: + + } + } +} +func getCompareMsg(data *protomsg.CompareArgs) []byte{ + sender <- data + return <-receiver +} // 鑾峰彇鏈満ip func GetLocalIP() (ipv4 string, err error) { var ( @@ -372,4 +442,4 @@ err = errors.New("ipv4 not found") return -} \ No newline at end of file +} diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index caa42bf..b07e33d 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -20,7 +20,7 @@ // 鎷垮埌鏈憚鍍忔満鐨勫尯鍩� cameraPolygons := GetPolygons(args.CameraId) // 鎶婃墍鏈夌殑sdk鎻愬彇鐨勬暟鎹兘鎸夋墍灞炴憚鍍忔満鐨勫尯鍩熷綊缃� - //logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname) + logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname,"--浠诲姟id涓猴細",message.Tasklab.Taskid) for _, arg := range args.Sdkdata { SdkDataFormat(args.CameraId, arg, cameraPolygons) } @@ -64,7 +64,7 @@ } } -func RunRule1(args *structure.SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label structure.Others) bool { +func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label Others) (bool,[]int) { defer func() { if err := recover(); err != nil { logger.Error("姣斿瑙勫垯鏈夎", err) @@ -231,6 +231,7 @@ } } } + logger.Info("face鏍囩鐨勯暱搴︼細",len(faces)) //for _,face := range faces { // //logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�擾_______________鐪嬬湅浜鸿劯鐨勫潗鏍�:",face.Location) //} @@ -251,27 +252,30 @@ } else { islink = false } + var labelTypes []int // 0涓簓olo鏍囩锛�1涓篺ace鏍囩 2涓轰袱鑰呮爣绛� if sdkNames != "" { - args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]structure.Result), structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink, label,}) + args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink,label,}) + labelTypes = append(labelTypes,0) //logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result))) } if faceFlag { args.RuleResult["face"] = append(args.RuleResult["face"].([]structure.FaceResult), structure.FaceResult{structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []structure.Rect{}, polygonId, islink, label,}, faces}) //logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult))) + labelTypes = append(labelTypes,1) } - return true + return true,labelTypes } else { - return false + return false,[]int{} } } else { - // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏃跺�欎负鍋囩殑鐘舵�佸弽杞暟鎹篃闇�瑕佽褰曚笅鏉� + // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏉�姝诲畾鏃跺櫒鐨勬搷浣� TimerAlarm(&label, groupRule.GroupId, result.(bool)) //fmt.Println(timeFlag) - return false + return false,[]int{} } } else { - return false + return false,[]int{} } } @@ -336,7 +340,7 @@ } } // 寰�鏁扮粍閲岃祴鍊� - isOk := RunRule(args, groupRule, taskId, message, label) + isOk,labelTypes := RunRule(args, groupRule, taskId, message, label) if isOk { logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负true") // 鏍规嵁cameraId鍘绘洿鏂版垨鑰呮彃鍏ョ粨鏋�,鐒跺悗鍒ゆ柇鏄惁鏁扮粍鏄惁鍙互寰楀嚭鎶ヨ鐨勭粨璁� @@ -409,8 +413,20 @@ } else { logger.Warn("鏁扮粍涓嶅渾婊′笉鎵撴爣绛�") // 鍊掓槸鎶婃墦鐨勭粍瑙勫垯鏍囩缁欏幓鎺変簡鍟� - lens := len(args.RuleResult["yolo"].([]structure.Result)) - 1 - args.RuleResult["yolo"] = args.RuleResult["yolo"].([]structure.Result)[0:lens] + for _,val := range labelTypes { + if val == 0 { + if len(args.RuleResult["yolo"].([]Result)) >= 1 { + lens := len(args.RuleResult["yolo"].([]Result))-1 + args.RuleResult["yolo"] = args.RuleResult["yolo"].([]Result)[0:lens] + } + } + if val == 1 { + if len(args.RuleResult["face"].([]FaceResult)) >= 1 { + lens := len(args.RuleResult["face"].([]FaceResult))-1 + args.RuleResult["face"] = args.RuleResult["face"].([]FaceResult)[0:lens] + } + } + } } } else { // 娌℃湁鎶ヨ锛� //logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负false") @@ -430,7 +446,6 @@ } } - // 濡傛灉鏈夋寔缁椂闂存潯浠剁淮鎶ゅ紑鍚竴涓畾鏃跺櫒 func duration(rule *protomsg.Rule, groupId string, am *structure.AreaMap, args *structure.SdkDatas, message *protomsg.SdkMessage) { if rule.PolygonId == am.AreaId { // 棣栧厛瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓� 閰嶇疆鐨勭畻娉曡瀵圭殑涓� diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go index abe6c4d..ac959e6 100644 --- a/ruleserver/timeTicker.go +++ b/ruleserver/timeTicker.go @@ -33,8 +33,6 @@ } func TimeTicker() { - //logger.Info("瀹氭椂鍣ㄦ墽琛屼簡") - //fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡") ticker := time.NewTicker(1 * time.Second) go func(ticker *time.Ticker) { defer ticker.Stop() @@ -116,10 +114,12 @@ delete(TimeEleList, k) } else { if timeEle.BufferFlag > 0 { + logger.Debug("缂撳啿鍖哄噺鍑�") timeEle.BufferFlag-- } } } else { + logger.Debug("-----------缁撴灉涓哄亣涓斾笉鍒�0锛屾潃姝诲畾鏃跺櫒") delete(TimeEleList, k) } } diff --git a/util/common.go b/util/common.go index 294883d..a5c4a17 100644 --- a/util/common.go +++ b/util/common.go @@ -1,13 +1,9 @@ package util import ( - "fmt" - "basic.com/valib/deliver.git" "basic.com/pubsub/protomsg.git" - - "github.com/pierrec/lz4" ) const ( @@ -30,28 +26,30 @@ // UnCompress uncompress func UnCompress(in []byte) ([]byte, error) { - out := make([]byte, 10*len(in)) - n, err := lz4.UncompressBlock(in, out) - if err != nil { - fmt.Println(err) - return nil, err - } - out = out[:n] // uncompressed data - return out, nil + return in,nil + //out := make([]byte, 10*len(in)) + //n, err := lz4.UncompressBlock(in, out) + //if err != nil { + // fmt.Println(err) + // return nil, err + //} + //out = out[:n] // uncompressed data + //return out, nil } // Compress compress func Compress(in []byte) ([]byte, error) { - out := make([]byte, len(in)) - ht := make([]int, 64<<10) // buffer for the compression table - n, err := lz4.CompressBlock(in, out, ht) - if err != nil { - fmt.Println(err) - return nil, err - } - if n >= len(in) { - fmt.Println("image is not compressible") - } - out = out[:n] // compressed data - return out, nil + return in,nil + //out := make([]byte, len(in)) + //ht := make([]int, 64<<10) // buffer for the compression table + //n, err := lz4.CompressBlock(in, out, ht) + //if err != nil { + // fmt.Println(err) + // return nil, err + //} + //if n >= len(in) { + // fmt.Println("image is not compressible") + //} + //out = out[:n] // compressed data + //return out, nil } diff --git a/util/upload.go b/util/upload.go index 78cd5c1..0407f53 100644 --- a/util/upload.go +++ b/util/upload.go @@ -10,6 +10,7 @@ "log" "mime/multipart" "net/http" + "ruleprocess/logger" "time" "gocv.io/x/gocv" ) @@ -159,7 +160,7 @@ client := &http.Client{Timeout: timeout} resp, err := client.Do(request) if err != nil { - log.Fatal(err) + logger.Error(err) return nil, err } defer func() { -- Gitblit v1.8.0