---
panlei
2019-11-02 e43bff88dd81ce443efca9b33aadeeb6f0fe5f59
ruleserver/personTrack.go
@@ -50,7 +50,7 @@
}
//  追踪人体,检查数量是否一致
func BodyIsSame(msg *protomsg.SdkMessage) bool{
func BodyIsSame(args *structure.SdkDatas,msg *protomsg.SdkMessage) bool{
   logger.Debug("+++++++++++++++++++++人体追踪开始+++++++++++++++摄像机id为:", msg.Cid, "---缓存池为:", TrackPond)
   for _, sdkinfo := range msg.Tasklab.Sdkinfos { // 遍历各算法的sdkData
      if sdkinfo.Sdktype == "Yolo" {
@@ -73,12 +73,14 @@
                     logger.Info("================追踪之前yolo的个数:", yoloNum, "还没有这个摄像机的缓存")
                  }
                  if yoloParam.Infos != nil && TrackPond[msg.Cid] != nil && yoloNum == TrackPond[msg.Cid].Yolo { // yolo的如果数量相同则视为不变、把yolo的sdkData清空
                     //yoloParam.Infos = (yoloParam.Infos)[0:0]
                     //sdkinfo.Sdkdata, err = proto.Marshal(&yoloParam)
                     //if err != nil {
                     //   logger.Error("yolo序列化错误", err)
                     //}
                     logger.Info("跟之前相同,清空yolo数据")
                     yoloParam.Infos = (yoloParam.Infos)[0:0]
                     sdkinfo.Sdkdata, err = proto.Marshal(&yoloParam)
                     if err != nil {
                        logger.Error("yolo序列化错误", err)
                     }
                     delete(args.RuleResult,"yolo")
                     logger.Info("清除yolo标签,",args.RuleResult["yolo"])
                     logger.Info("跟之前相同,清空yolo数据,人体追踪结束")
                     return true
                  } else {
                     if TrackPond[msg.Cid] != nil {
@@ -88,6 +90,7 @@
                        logger.Info("新建当前摄像机缓存池中的yolo个数:", yoloNum)
                        TrackPond[msg.Cid] = &PersonTrack{Yolo: yoloNum}
                     }
                     logger.Debug("---------------------------------人体追踪结束--------------------------------------")
                     return false
                  }
               } else {