---
panlei
2019-07-29 0f84e961cb5a86c8527ac5918548891ba38c1cff
---
1个文件已修改
38 ■■■■■ 已修改文件
ruleserver/personTrack.go 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
            }
        }
    }