From d81dee97316758a8d7910cf337667cbe4a3eabed Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期三, 10 七月 2019 10:51:10 +0800 Subject: [PATCH] 放开yolo,加个上传yolo退出 --- ruleserver/ruleToformula.go | 81 +++++++++++++++++++++++++++++----------- 1 files changed, 58 insertions(+), 23 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 91ef679..68f5380 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -2,7 +2,6 @@ import ( "encoding/json" - "fmt" "ruleprocess/cache" "ruleprocess/logger" "sort" @@ -11,6 +10,7 @@ "time" bigCache "basic.com/pubsub/cache.git" + "basic.com/pubsub/cache.git/esutil" "basic.com/pubsub/protomsg.git" "github.com/knetic/govaluate" ) @@ -184,7 +184,10 @@ // 鎶妔dk浠庢暟鎹抚涓婃彁鍙栫殑鎸夌収鍖哄煙鍒嗙被褰掔疆 func SdkDataFormat(cameraId string, arg *SdkData, cameraPolygons []protomsg.CameraPolygon) { - logger.Info("--------鐪嬬湅瑙f瀽鍑烘潵鐨勬暟鎹�---", *arg) + logger.Info("==================================鏈瑂dkData涓В鍑烘潵鐨勭洰鏍囨暟鎹�=======================================") + for _,photo := range arg.Photo{ + logger.Info("--------鐪嬬湅瑙f瀽鍑烘潵鐨勬暟鎹�---", cameraId,arg.IpcId,photo.Rects,photo.Score) + } for _, polygon := range cameraPolygons { //logger.Println("++++++鍦ㄨ繖鍎跨湅涓�涓嬪尯鍩熷晩:", polygon.Polygon) areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine} @@ -233,40 +236,69 @@ } } func Compare(args *SdkDatas, groupRule *protomsg.GroupRule) { - compareFlag := false + compareFlag := 0 + tableIds := "" // 鐪嬬湅鏄惁鏈夊彧閰嶄汉鑴告瘮瀵圭畻娉曚絾娌℃湁閰嶅姣斿簱鐨勮鍒欙紝濡傛灉鏈夛紝鍒欐瘮瀵瑰璞′负鍏ㄩ儴搴曞簱 for j := 0; j < len(groupRule.Rules); j++ { if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" { // 閰嶄簡浜鸿劯姣斿 - if groupRule.Rules[j].SdkArgAlias == "compareBase" { // 閰嶄簡姣斿鐨勫簳搴� - compareFlag = true + if groupRule.Rules[j].SdkArgAlias == "compareBase" && groupRule.Rules[j].SdkArgValue != "" { // 閰嶄簡姣斿搴曞簱鐨勫弬鏁颁絾娌℃湁閰嶅叏閮ㄥ簳搴� + compareFlag = 2 + tableIds = groupRule.Rules[j].SdkArgValue + "," // 鏈�鍚庝細澶氫竴涓猼ableId锛屽垏鍑烘潵鐨勬暟缁勫彇len-1灏卞彲浠� + } + if groupRule.Rules[j].SdkArgAlias == "compareBase" && groupRule.Rules[j].SdkArgValue == "" { // 閰嶇殑鍙傛暟鏄瘮瀵瑰叏閮ㄥ簳搴� + compareFlag = 1 } } } - if compareFlag { - logger.Info("閰嶇疆浜嗗姣斿簳搴撳弬鏁�") - } else { + // 浣滃紛锛岀洿鎺ヨ鍏舵瘮瀵瑰叏閮ㄥ簳搴� + compareFlag = 1 + if compareFlag == 0 { logger.Info("娌℃湁閰嶇疆瀵规瘮搴曞簱鍙傛暟") + return } for j := 0; j < len(groupRule.Rules); j++ { // 鍙湁鏄汉鑴稿姣斿苟涓旈厤缃殑鍙傛暟鏄姣斿簳搴撴墠璧帮紙鑻ラ厤鐨勫姣旈槇鍊煎垯涓嶈蛋锛� - if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias == "compareBase" { + if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972"{ for _, sdkData := range args.Sdkdata { if sdkData.IpcId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 鎼滅储鍒颁汉鑴告娴嬬殑sdkdata 鐜板湪鍏充簬浜鸿劯鐨勫彧鏈変粬涓�涓猻dk锛屽叏鎵句粬 for _, areaMap := range sdkData.AreaMapList { // 鎷垮尯鍩熶腑姣忎釜浜鸿劯鐗瑰緛鍊煎幓瀵规瘮锛屽~鍏呭叾liker if groupRule.Rules[j].PolygonId == areaMap.areaId { for _, arg := range areaMap.args { - bytes := bigCache.Getdbpersonmsg("", arg.Feature, true) - var m map[string]float32 - err1 := json.Unmarshal(bytes, &m) - if err1 != nil { - logger.Error("getBaseInfo瑙e帇閿欒", err1) + if compareFlag == 1 { + bytes := bigCache.Getdbpersonmsg("", arg.Feature, true) + var m map[string]float32 + err1 := json.Unmarshal(bytes, &m) + if err1 != nil { + logger.Error("getBaseInfo瑙e帇閿欒", err1) + } + for key, val := range m { + baseinfo,err1 := esutil.Dbpersoninfosbyid(key) + if err1 != nil { + logger.Error("鏌ヨ搴曞簱浜哄憳淇℃伅鍑洪敊",err1) + } + baseinfo.CompareScore = val + arg.Liker = append(arg.Liker, &baseinfo) + } } - for key, val := range m { - fmt.Println(key) - baseinfo := protomsg.Baseinfo{} - baseinfo.CompareScore = val - arg.Liker = append(arg.Liker, &baseinfo) + if compareFlag == 2 { + array := strings.Split(tableIds, ",") + for i := 0; i < len(array)-1; i++ { + bytes := bigCache.Getdbpersonmsg(array[i], arg.Feature, true) + var m map[string]float32 + err1 := json.Unmarshal(bytes, &m) + if err1 != nil { + logger.Error("getBaseInfo瑙e帇閿欒", err1) + } + for key, val := range m { + baseinfo, err1 := esutil.Dbpersoninfosbyid(key) + if err1 != nil { + logger.Error("鏌ヨ搴曞簱浜哄憳淇℃伅鍑洪敊",err1) + } + baseinfo.CompareScore = val + arg.Liker = append(arg.Liker, &baseinfo) + } + } } logger.Info("-------------------鎴愬姛缁檒iker璧嬪�硷細", arg.Liker) } @@ -297,13 +329,15 @@ } ipcId := sdk.IpcId sdkName := sdk.SdkName + if ipcId == sdkData.IpcId { + logger.Info("褰撳墠璧扮殑瑙勫垯鐨勭畻娉曟槸--锛�", sdkName, "---") for _, areaMap := range sdkData.AreaMapList { ruleResult := filterRule(groupRule.Rules[j], &areaMap) if ruleResult.Result != "" { logger.Info("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result) // 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲� - if ruleResult.Result == "true" && ipcId == "" && !strings.Contains(sdkNames, sdkName) { + if ruleResult.Result == "true" && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) { sdkNames = sdkName + "," } resultSplice = append(resultSplice, &ruleResult) @@ -328,7 +362,7 @@ ruleResult := transferParameters(groupRule.Rules[j], &areaMap) if ruleResult.Result != "" { logger.Info("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result) - if ruleResult.Result == "true" && ipcId == "" && !strings.Contains(sdkNames, sdkName) { + if ruleResult.Result == "true" && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) { sdkNames = sdkName + "," } resultSplice = append(resultSplice, &ruleResult) @@ -351,7 +385,7 @@ ruleResult := timeRuleResult(groupRule.Rules[j], &areaMap) if ruleResult.Result != "" { logger.Info("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result) - if ruleResult.Result == "true" && ipcId == "" && !strings.Contains(sdkNames, sdkName) { + if ruleResult.Result == "true" && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) { sdkNames = sdkName + "," } resultSplice = append(resultSplice, &ruleResult) @@ -410,7 +444,7 @@ timeEle.N = timeEle.InitN // 閲嶇疆瀹氭椂鍣� } } - logger.Info("-------------------閲嶇疆瀹氭椂鍣ㄥ苟杩斿洖false---------------") + logger.Info("-------------------閲嶇疆鍙兘瀛樺湪鐨勫畾鏃跺櫒骞惰繑鍥瀎alse---------------") return false } else { // 鏈�鍚庢垚鍔熸姤璀︽墠鎶婄鍚堟潯浠剁殑浜鸿劯鏁版嵁濉炶繘缁撴灉鏍囩閲� @@ -709,6 +743,7 @@ if rule.Operator == "==" || rule.Operator == ">=" || rule.Operator == "<=" || rule.Operator == "<" || rule.Operator == ">" || rule.Operator == "!=" { // 濡傛灉鏄笉瑙勭煩鐨勮繛鎺ョ缁熺粺杩斿洖false 瑙勫垯涔熷彧鑳藉垽鏂汉鑴哥殑鐩镐技搴︼紝鎵�浠ヤ笉瀛樺湪鍒殑杩炴帴绗� if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 鍒ゆ柇鐨勬槸鐩镐技鍊硷紝鍗犳瘮锛屽昂瀵哥瓑杩囨护鏉′欢锛屽鏋滃啀鏈夛紝杩樺彲浠ュ啀鍔� + logger.Info("--------------------缁堜簬绛夊埌浣犵殑涓嬫枃") var args []Arg if rule.RuleWithPre == "&&" { args = am.filterData -- Gitblit v1.8.0