From c0324c6499ffb591ed78aaaa3639b57ddd4ea15f Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 29 七月 2019 15:44:08 +0800 Subject: [PATCH] 调整人体追踪 --- insertdata/insertDataToEs.go | 2 main.go | 3 - ruleserver/personTrack.go | 102 +++++++++++++++++++++++++++----------------------- 3 files changed, 57 insertions(+), 50 deletions(-) diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index ffb81ab..f4611a7 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -120,12 +120,12 @@ logger.Debug("鎻掑叆鏁版嵁鍓嶇湅鐪嬫姤璀︽爣蹇椾綅锛�", timeLabel) if timeLabel == "01" { // 鏃犲畾鏃跺櫒鐘舵�佽鎻掑叆鐨勬姤璀︽暟鎹� InsertFace(msg) + ruleserver.BodyIsSame(msg.SdkMessage) InsertYolo(msg) } if timeLabel == "10" { // 瀹氭椂鍣ㄧ姸鎬佽鎻掑叆鐨勯甯ф姤璀︽暟鎹�傝繛甯︾潃瀹氭椂鍣ㄥ紑鍚椂鐨勯偅甯� InsertFace(msg) InsertYolo(msg) - } //if timeLabel == "12" { // 骞堕潪鎶ヨ鏁版嵁锛屽彧鏄姸鎬佹敼鍙樼殑鏁版嵁 // //ChangeStatusFace(msg) diff --git a/main.go b/main.go index 5284b7d..dc306cf 100644 --- a/main.go +++ b/main.go @@ -74,7 +74,6 @@ // 鎶奱rg閲岀殑鎵撶殑鏍囩鎷垮嚭鏉ョ粰m鍐嶅皝瑁呬竴灞� resultMag := ruleserver.ResultMsg{SdkMessage: &m, RuleResult: arg.RuleResult} //logger.Info("鎵撳畬鏍囩鍚庣殑缁撴灉锛�",resultMag) - // 灏嗘墦瀹屾爣绛剧殑鏁版嵁鎻掑叆鍒癊S insertdata.InsertToEs(resultMag) } @@ -108,7 +107,7 @@ panic("瑙f瀽msg鏃跺嚭鐜伴敊璇�") } // 鍏堣繘琛屼竴涓嬭拷韪� - ruleserver.IsSame(&m) + ruleserver.FaceIsSame(&m) args.CameraId = m.Cid args.TaskId = m.Tasklab.Taskid // 鎶婂浘鐗囩殑浜岃繘鍒惰В鍘嬬缉杩涜鐢绘鍦ㄥ帇缂╁洖鍘� diff --git a/ruleserver/personTrack.go b/ruleserver/personTrack.go index 48199f4..33c6ae9 100644 --- a/ruleserver/personTrack.go +++ b/ruleserver/personTrack.go @@ -18,8 +18,8 @@ } var num int = 5 -// 妫�鏌ユ槸鍚﹀墠鍚庝袱娆$殑鏁版嵁id鏄惁瀹屽叏鐩稿悓锛堜汉鑴稿拰yolo锛� 鏀逛负鐩存帴妫�鏌ユ暟閲忔槸鍚︿竴鑷� -func IsSame(msg *protomsg.SdkMessage) { +// 妫�鏌ユ槸鍚﹀墠鍚庝袱娆$殑鏁版嵁id鏄惁瀹屽叏鐩稿悓锛堜汉鑴革級 +func FaceIsSame(msg *protomsg.SdkMessage) { logger.Debug("+++++++++++++++++++++杩借釜寮�濮�+++++++++++++++鎽勫儚鏈篿d涓猴細", msg.Cid, "---缂撳瓨姹犱负锛�", TrackPond) for _, sdkinfo := range msg.Tasklab.Sdkinfos { // 閬嶅巻鍚勭畻娉曠殑sdkData if sdkinfo.Sdktype == "FaceDetect" { // 浜鸿劯妫�娴� @@ -44,51 +44,59 @@ } } } - //if sdkinfo.Sdktype == "Yolo" { - // if len(sdkinfo.Sdkdata) > 1 { - // yoloParam := protomsg.ParamYoloObj{} - // err := proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam) - // if err != nil { - // logger.Info("瑙f瀽yolo鏁版嵁鏃跺嚭鐜伴敊璇�", err) - // continue - // } - // var yoloNum int = 0 - // for i := 0; i < len(yoloParam.Infos); i++ { - // if yoloParam.Infos[i].Typ == 0 { - // yoloNum++ - // } - // } - // if TrackPond[msg.Cid] != nil { - // logger.Info("================杩借釜涔嬪墠yolo鐨勪釜鏁帮細", yoloNum, "鐜板湪缂撳瓨姹犱腑璁板綍鐨勪釜鏁帮細", TrackPond[msg.Cid].Yolo) - // } else { - // logger.Info("================杩借釜涔嬪墠yolo鐨勪釜鏁帮細", yoloNum, "杩樻病鏈夎繖涓憚鍍忔満鐨勭紦瀛�") - // } - // if yoloParam.Infos != nil && TrackPond[msg.Cid] != nil && yoloNum == TrackPond[msg.Cid].Yolo { // yolo鐨勫鏋滄暟閲忕浉鍚屽垯瑙嗕负涓嶅彉銆佹妸yolo鐨剆dkData娓呯┖ - // yoloParam.Infos = (yoloParam.Infos)[0:0] - // sdkinfo.Sdkdata, err = proto.Marshal(&yoloParam) - // if err != nil { - // logger.Error("yolo搴忓垪鍖栭敊璇�", err) - // } - // logger.Info("璺熶箣鍓嶇浉鍚岋紝娓呯┖yolo鏁版嵁") - // } else { - // if TrackPond[msg.Cid] != nil { - // logger.Info("鏇存柊褰撳墠鎽勫儚鏈虹紦瀛樻睜涓殑yolo涓暟锛�", yoloNum) - // TrackPond[msg.Cid].Yolo = yoloNum - // } else { - // logger.Info("鏂板缓褰撳墠鎽勫儚鏈虹紦瀛樻睜涓殑yolo涓暟锛�", yoloNum) - // TrackPond[msg.Cid] = &PersonTrack{Yolo: yoloNum} - // } - // } - // } else { - // if TrackPond[msg.Cid] != nil { - // TrackPond[msg.Cid].Yolo = 0 - // } else { - // TrackPond[msg.Cid] = &PersonTrack{Yolo: 0} - // } - // logger.Info("鎽勫儚鏈�:" + msg.Cid + "-娌℃湁yolo锛岃閲嶇疆涓�0") - // continue - // } - //} + } + logger.Debug("---------------------------------------浜鸿劯杩借釜缁撴潫--------------------------------------") +} + +// 杩借釜浜轰綋锛屾鏌ユ暟閲忔槸鍚︿竴鑷� +func BodyIsSame(msg *protomsg.SdkMessage) { + logger.Debug("+++++++++++++++++++++杩借釜寮�濮�+++++++++++++++鎽勫儚鏈篿d涓猴細", msg.Cid, "---缂撳瓨姹犱负锛�", TrackPond) + for _, sdkinfo := range msg.Tasklab.Sdkinfos { // 閬嶅巻鍚勭畻娉曠殑sdkData + if sdkinfo.Sdktype == "Yolo" { + if len(sdkinfo.Sdkdata) > 1 { + yoloParam := protomsg.ParamYoloObj{} + err := proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam) + if err != nil { + logger.Info("瑙f瀽yolo鏁版嵁鏃跺嚭鐜伴敊璇�", err) + continue + } + var yoloNum int = 0 + for i := 0; i < len(yoloParam.Infos); i++ { + if yoloParam.Infos[i].Typ == 0 { + yoloNum++ + } + } + if TrackPond[msg.Cid] != nil { + logger.Info("================杩借釜涔嬪墠yolo鐨勪釜鏁帮細", yoloNum, "鐜板湪缂撳瓨姹犱腑璁板綍鐨勪釜鏁帮細", TrackPond[msg.Cid].Yolo) + } else { + logger.Info("================杩借釜涔嬪墠yolo鐨勪釜鏁帮細", yoloNum, "杩樻病鏈夎繖涓憚鍍忔満鐨勭紦瀛�") + } + if yoloParam.Infos != nil && TrackPond[msg.Cid] != nil && yoloNum == TrackPond[msg.Cid].Yolo { // yolo鐨勫鏋滄暟閲忕浉鍚屽垯瑙嗕负涓嶅彉銆佹妸yolo鐨剆dkData娓呯┖ + yoloParam.Infos = (yoloParam.Infos)[0:0] + sdkinfo.Sdkdata, err = proto.Marshal(&yoloParam) + if err != nil { + logger.Error("yolo搴忓垪鍖栭敊璇�", err) + } + logger.Info("璺熶箣鍓嶇浉鍚岋紝娓呯┖yolo鏁版嵁") + } else { + if TrackPond[msg.Cid] != nil { + logger.Info("鏇存柊褰撳墠鎽勫儚鏈虹紦瀛樻睜涓殑yolo涓暟锛�", yoloNum) + TrackPond[msg.Cid].Yolo = yoloNum + } else { + logger.Info("鏂板缓褰撳墠鎽勫儚鏈虹紦瀛樻睜涓殑yolo涓暟锛�", yoloNum) + TrackPond[msg.Cid] = &PersonTrack{Yolo: yoloNum} + } + } + } else { + if TrackPond[msg.Cid] != nil { + TrackPond[msg.Cid].Yolo = 0 + } else { + TrackPond[msg.Cid] = &PersonTrack{Yolo: 0} + } + logger.Info("鎽勫儚鏈�:" + msg.Cid + "-娌℃湁yolo锛岃閲嶇疆涓�0") + continue + } + } } logger.Debug("---------------------------------------杩借釜缁撴潫--------------------------------------") } -- Gitblit v1.8.0