---
panlei
2019-07-29 0f84e961cb5a86c8527ac5918548891ba38c1cff
ruleserver/personTrack.go
@@ -16,7 +16,7 @@
   Id    uint64
   Score float32
}
var num int = 5
// 检查是否前后两次的数据id是否完全相同(人脸和yolo)     改为直接检查数量是否一致
func IsSame(msg *protomsg.SdkMessage) {
   logger.Debug("+++++++++++++++++++++追踪开始+++++++++++++++摄像机id为:", msg.Cid)
@@ -25,21 +25,28 @@
      if sdkinfo.Sdktype == "FaceDetect" { // 人脸检测
         logger.Info("数据长度为:", len(sdkinfo.Sdkdata))
         if len(sdkinfo.Sdkdata) > 1 {
            num = 5
            FaceIsInPond(msg.Cid, sdkinfo)
         } else {
            if TrackPond[msg.Cid] != nil {
               logger.Info("如果不为空:", TrackPond[msg.Cid])
               TrackPond[msg.Cid].Faces = nil
            if num > 0 { // 连续num次没有数据才算是没有数据,不然只算作丢帧
               logger.Info("我认为你只是丢帧了")
               num--
            } else {
               TrackPond[msg.Cid] = &PersonTrack{Faces: nil}
               logger.Info("如果为空:", TrackPond[msg.Cid])
               if TrackPond[msg.Cid] != nil {
                  logger.Info("如果不为空:", TrackPond[msg.Cid])
                  TrackPond[msg.Cid].Faces = nil
               } else {
                  TrackPond[msg.Cid] = &PersonTrack{Faces: nil}
                  logger.Info("如果为空:", TrackPond[msg.Cid])
               }
               logger.Info("摄像机:" + msg.Cid + "-没有人脸,被重置为空")
               continue
            }
            logger.Info("摄像机:" + msg.Cid + "-没有人脸,被重置为空")
            continue
         }
      }
      if sdkinfo.Sdktype == "Yolo" {
         if len(sdkinfo.Sdkdata) > 1 {
            num = 5
            yoloParam := protomsg.ParamYoloObj{}
            err := proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam)
            if err != nil {
@@ -74,13 +81,18 @@
               }
            }
         } else {
            if TrackPond[msg.Cid] != nil {
               TrackPond[msg.Cid].Yolo = 0
            if num > 0 {
               logger.Info("我认为你只是丢帧了")
               num--
            } else {
               TrackPond[msg.Cid] = &PersonTrack{Yolo: 0}
               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.Info("摄像机:" + msg.Cid + "-没有yolo,被重置为0")
            continue
         }
      }
   }