---
panlei
2019-07-29 859b9d732599733157300046c0893e084f738588
---
1个文件已修改
24 ■■■■■ 已修改文件
ruleserver/personTrack.go 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruleserver/personTrack.go
@@ -16,11 +16,11 @@
    Id    uint64
    Score float32
}
var num int = 5
// 检查是否前后两次的数据id是否完全相同(人脸和yolo)     改为直接检查数量是否一致
func IsSame(msg *protomsg.SdkMessage) {
    logger.Debug("+++++++++++++++++++++追踪开始+++++++++++++++摄像机id为:", msg.Cid)
    logger.Debug("---------------------缓存池--------------------------:", TrackPond)
    logger.Debug("+++++++++++++++++++++追踪开始+++++++++++++++摄像机id为:", msg.Cid, "---缓存池为:", TrackPond)
    for _, sdkinfo := range msg.Tasklab.Sdkinfos { // 遍历各算法的sdkData
        if sdkinfo.Sdktype == "FaceDetect" { // 人脸检测
            logger.Info("数据长度为:", len(sdkinfo.Sdkdata))
@@ -29,7 +29,7 @@
                FaceIsInPond(msg.Cid, sdkinfo)
            } else {
                if num > 0 { // 连续num次没有数据才算是没有数据,不然只算作丢帧
                    logger.Info("我认为你只是丢帧了")
                    logger.Info("我认为你只是丢帧了,此时的num值为:",num)
                    num--
                } else {
                    if TrackPond[msg.Cid] != nil {
@@ -46,7 +46,6 @@
        }
        if sdkinfo.Sdktype == "Yolo" {
            if len(sdkinfo.Sdkdata) > 1 {
                num = 5
                yoloParam := protomsg.ParamYoloObj{}
                err := proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam)
                if err != nil {
@@ -81,18 +80,13 @@
                    }
                }
            } else {
                if num > 0 {
                    logger.Info("我认为你只是丢帧了")
                    num--
                if TrackPond[msg.Cid] != nil {
                    TrackPond[msg.Cid].Yolo = 0
                } else {
                    if TrackPond[msg.Cid] != nil {
                        TrackPond[msg.Cid].Yolo = 0
                    } else {
                        TrackPond[msg.Cid] = &PersonTrack{Yolo: 0}
                    }
                    logger.Info("摄像机:" + msg.Cid + "-没有yolo,被重置为0")
                    continue
                    TrackPond[msg.Cid] = &PersonTrack{Yolo: 0}
                }
                logger.Info("摄像机:" + msg.Cid + "-没有yolo,被重置为0")
                continue
            }
        }
    }
@@ -122,7 +116,7 @@
                }
                if faceParam.Faces[i].Pos.FaceID == val.Id && faceParam.Faces[i].Pos.FAngle.Confidence <= val.Score { // 在池子里并且分值更高,更新缓存
                    faceFlag = true
                    logger.Info("分值由", val.Score, "更新为:", faceParam.Faces[i].Pos.FAngle.Confidence,"此数据由于在池子中且分值更低,是要被传递下去的数据")
                    logger.Info("分值由", val.Score, "更新为:", faceParam.Faces[i].Pos.FAngle.Confidence, "此数据由于在池子中且分值更低,是要被传递下去的数据")
                    val.Score = faceParam.Faces[i].Pos.FAngle.Confidence
                }
            }