| | |
| | | |
| | | type PersonTrack struct { |
| | | Face int // 人脸的id数组 改为数量 |
| | | FaceN int // 添加容错,初始值为5,连续5次不对才算不对 |
| | | Yolo int // yolo对象的id数组 改为数量 |
| | | YoloN int // 添加容错,初始值为5,连续5次不对才算不对 |
| | | } |
| | | |
| | | // 检查是否前后两次的数据id是否完全相同(人脸和yolo) 改为直接检查数量是否一致 |
| | |
| | | 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); { |
| | |
| | | } 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 { |
| | |
| | | } |
| | | logger.Debug("---------------------------------------追踪结束--------------------------------------") |
| | | } |
| | | |
| | | //// 判断一个人脸id在不在追踪池中 |
| | | //func FaceIsInPond(cameraId string,face *protomsg.ResultFaceDetect) bool{ |
| | | // if TrackPond[cameraId].Face > 0 { |