panlei
2019-07-23 5433ad847a4eb284658dc7543fa3d94680e5e5bd
ruleserver/personTrack.go
@@ -10,7 +10,9 @@
type PersonTrack struct {
   Face int // 人脸的id数组  改为数量
   FaceN int // 添加容错,初始值为5,连续5次不对才算不对
   Yolo int // yolo对象的id数组 改为数量
   YoloN int // 添加容错,初始值为5,连续5次不对才算不对
}
// 检查是否前后两次的数据id是否完全相同(人脸和yolo)     改为直接检查数量是否一致
@@ -36,9 +38,15 @@
               logger.Info("===================追踪中途人脸的个数",len(faceParam.Faces))
            } else {
               if TrackPond[msg.Cid] != nil {
                  if TrackPond[msg.Cid].FaceN > 0 {
                     TrackPond[msg.Cid].FaceN--
                  }
                  if TrackPond[msg.Cid].FaceN == 0 { //此时连续五次不对
                  TrackPond[msg.Cid].Face = len(faceParam.Faces)
                     TrackPond[msg.Cid].FaceN = 5
                  }
                } else {
                  TrackPond[msg.Cid] = &PersonTrack{Face:len(faceParam.Faces)}
                  TrackPond[msg.Cid] = &PersonTrack{Face: len(faceParam.Faces),FaceN:5}
               }
            }
            //for i := 0;  i < len(faceParam.Faces); {
@@ -76,8 +84,15 @@
            } else {
               if TrackPond[msg.Cid] != nil {
                  TrackPond[msg.Cid].Yolo = yoloNum
                  if TrackPond[msg.Cid].YoloN > 0 {
                     TrackPond[msg.Cid].YoloN--
                  }
                  if TrackPond[msg.Cid].YoloN == 0 { //此时连续五次不对
                     TrackPond[msg.Cid].Yolo = yoloNum
                     TrackPond[msg.Cid].YoloN = 5
                  }
               } else {
                  TrackPond[msg.Cid] = &PersonTrack{Yolo:yoloNum}
                  TrackPond[msg.Cid] = &PersonTrack{Yolo: yoloNum,YoloN:5}
               }
            }
         } else {
@@ -87,6 +102,7 @@
   }
   logger.Debug("---------------------------------------追踪结束--------------------------------------")
}
//// 判断一个人脸id在不在追踪池中
//func FaceIsInPond(cameraId string,face *protomsg.ResultFaceDetect) bool{
//   if TrackPond[cameraId].Face > 0 {