From 0cf922cf29cb96d28e3b2cabd4815473c445e58f Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 29 六月 2019 19:19:45 +0800 Subject: [PATCH] --- --- ruleserver/ruleToformula.go | 35 ++++++++++++++++++----------------- 1 files changed, 18 insertions(+), 17 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index c5aae7c..8484174 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -112,13 +112,13 @@ IsStatic bool // 鏄惁闈欐 ImageWidth int // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚瀹� 鍍忕礌 ImageHeight int // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚楂� 鍍忕礌 - AreaMapList []*AreaMap // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚� + AreaMapList []AreaMap // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚� } // 浠庣畻娉曟ā鍧楀効鎷挎潵鐨勫涓�甯у浘鍍忓悇涓畻娉曟彁鍙栫殑鏁版嵁闆嗗悎 type SdkDatas struct { CameraId string - Sdkdata []SdkData + Sdkdata []*SdkData RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []Arg yolo: []Result } @@ -168,7 +168,7 @@ if item.CameraId == cameraId && item.Type != "line" { // 闇�瑕佹牴鎹瘮渚嬫妸鍓嶅彴鐢荤殑鍖哄煙鐨勫潗鏍囪浆鍖栦负鐩稿簲鎽勫儚鏈烘媿鎽勭殑鍥惧儚鐨勫ぇ灏� x鍧愭爣鍒嗗埆*image.width/椤甸潰鍖哄煙瀹� y鍧愭爣鍒嗗埆*image.height/椤甸潰鍖哄煙楂� // 鍓嶅彴瀹介珮鍥哄畾 - log.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item) + //log.Println("------------绗﹀悎鏉′欢鐨勫尯鍩燂細",item) cameraPolygons = append(cameraPolygons, item) } } @@ -179,22 +179,24 @@ // 鎶妔dk浠庢暟鎹抚涓婃彁鍙栫殑鎸夌収鍖哄煙鍒嗙被褰掔疆 func SdkDataFormat(cameraId string, arg *SdkData, cameraPolygons []protomsg.CameraPolygon) { for _, polygon := range cameraPolygons { - log.Println("++++++鍦ㄨ繖鍎跨湅涓�涓嬪尯鍩熷晩", polygon) - areaMap := &AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine} + //log.Println("++++++鍦ㄨ繖鍎跨湅涓�涓嬪尯鍩熷晩", polygon) + areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine} // 涓烘瘡涓憚鍍忔満鍖哄煙濉厖鏁版嵁 areaMap.CountAreaObjs(arg) + log.Println("-------areaMap鐨勫唴瀹�",areaMap) arg.AreaMapList = append(arg.AreaMapList, areaMap) + log.Println("-------AreaMapList鐨勫唴瀹�",arg.AreaMapList) } } // 瀵瑰崟甯у浘鍍忕殑鍒ゆ柇 鏄垗寮冿紙鎴栬�呰瀵逛簬鏌愪簺闇�姹傚彲浠ユ斁ES鏁版嵁搴撲竴浠斤級杩樻槸杩斿洖 -func Judge(args *SdkDatas) { +func Judge(args SdkDatas) { if len(args.Sdkdata) > 0 { // 鎷垮埌鏈憚鍍忔満鐨勫尯鍩� cameraPolygons := GetPolygons(args.CameraId) // 鎶婃墍鏈夌殑sdk鎻愬彇鐨勬暟鎹兘鎸夋墍灞炴憚鍍忔満鐨勫尯鍩熷綊缃� for _, arg := range args.Sdkdata { - SdkDataFormat(args.CameraId, &arg, cameraPolygons) + SdkDataFormat(args.CameraId, arg, cameraPolygons) } // 璺戞湰鎽勫儚鏈虹殑鎵�鏈夎鍒欑粍 涓�缁勪竴缁勮窇 taskRuleList := GetRuleGroup(args.CameraId) // 鏈憚鍍忔満涓嬫墍鏈変换鍔$粍 @@ -224,17 +226,16 @@ } } } -func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) bool { +func RunRule(args SdkDatas, groupRule *protomsg.GroupRule, taskId string) bool { resultSplice := []*LittleRuleResult{} // 鍏堣繃瀹屾潯浠惰鍒� - log.Println("---------------------鐪嬩笅杩欎釜缁勮鍒欙細", groupRule.Rules) for j := 0; j < len(groupRule.Rules); j++ { for _, sdkData := range args.Sdkdata { if sdkData.SdkId == "812b674b-2375-4589-919a-5c1c3278a975" { log.Println("鍏ヤ镜鐨勭畻娉曟暟鎹�", sdkData) } for _, areaMap := range sdkData.AreaMapList { - ruleResult := filterRule(groupRule.Rules[j], areaMap) + ruleResult := filterRule(groupRule.Rules[j], &areaMap) if ruleResult.Result != "" { log.Println("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result) resultSplice = append(resultSplice, &ruleResult) @@ -247,7 +248,7 @@ for _, sdkData := range args.Sdkdata { for _, areaMap := range sdkData.AreaMapList { for j := 0; j < len(groupRule.Rules); j++ { - putFaceToResult(groupRule.Rules[j], areaMap, faces) + putFaceToResult(groupRule.Rules[j], &areaMap, faces) } } } @@ -256,7 +257,7 @@ for j := 0; j < len(groupRule.Rules); j++ { for _, sdkData := range args.Sdkdata { for _, areaMap := range sdkData.AreaMapList { - ruleResult := transferParameters(groupRule.Rules[j], areaMap) + ruleResult := transferParameters(groupRule.Rules[j], &areaMap) if ruleResult.Result != "" { log.Println("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result) resultSplice = append(resultSplice, &ruleResult) @@ -268,7 +269,7 @@ for j := 0; j < len(groupRule.Rules); j++ { for _, sdkData := range args.Sdkdata { for _, areaMap := range sdkData.AreaMapList { - ruleResult := timeRuleResult(groupRule.Rules[j], areaMap) + ruleResult := timeRuleResult(groupRule.Rules[j], &areaMap) if ruleResult.Result != "" { log.Println("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result) resultSplice = append(resultSplice, &ruleResult) @@ -280,7 +281,7 @@ for j := 0; j < len(groupRule.Rules); j++ { for _, sdkData := range args.Sdkdata { for _, areaMap := range sdkData.AreaMapList { - duration(groupRule.Rules[j], areaMap) + duration(groupRule.Rules[j], &areaMap) } } } @@ -314,7 +315,7 @@ } } if flag { - fmt.Println("鏈抚鏁版嵁绗﹀悎瑙勫垯") + fmt.Println("----------------------------缁堜簬璧板畬涓囬噷闀垮緛") // 濡傛灉鎴愬姛浜嗘垜搴旇鎵惧埌瑙勫垯涓秹鍙婂埌鐨剆dk锛岃褰曚笅浠栦滑鐨剆dkname sdkName := "" for j := 0; j < len(groupRule.Rules); j++ { @@ -326,6 +327,7 @@ } // 杩囧畬瑙勫垯鍚庢墦涓爣绛撅紝鍛婅瘔璋冪敤鑰呮湰甯ф暟鎹拡瀵瑰摢涓换鍔″摢缁勮鍒欐姤璀︿簡 鍚庡姞锛氬彲鑳借繕涓嶅锛岃繕闇�瑕佸尯鍒嗚Е鍙戞姤璀︾殑瀵硅薄锛屽悗闈㈠線es鏁版嵁搴撴彃鏁版嵁鏃惰鐢� args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText}) + log.Println("-------------------缁撴灉鏍囩",args.RuleResult["yolo"].([]Result)) return true } else { return false @@ -364,7 +366,6 @@ // } for _, obj := range arg.Photo { - log.Println("-------------------鐪嬬湅areajson-------------", a.areaJson) log.Println("------------------鐪嬬湅sdkData鐨凱hoto鏁版嵁----------------", obj, "----椤轰究鐪嬬湅鍗犳瘮-----锛�", PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale)) if threshold <= obj.Score && size <= float64(obj.Rects.Width*obj.Rects.Height) && intersectionper <= PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale) { // 杩欐瑕佸榻愯〃杈惧紡閲屾墍闇�瑕佺殑鎵�鏈夊弬鏁� @@ -417,7 +418,7 @@ } // 鑱斿姩浠诲姟鐨勫鐞� -func linkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) { +func linkTask(args SdkDatas, groupRule *protomsg.GroupRule, taskId string) { // new涓�涓畾鏃跺櫒锛屽鏋滀互姝roupId涓烘爣蹇楃殑瀹氭椂鍣ㄤ笉瀛樺湪鐨勮瘽 var flag bool = true var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} -- Gitblit v1.8.0