panlei
2019-07-18 96984e41f272e0d30a6292e76c036ed1b0cf25f1
暂时去掉人脸追踪
2个文件已修改
62 ■■■■ 已修改文件
labelFilter/ruleForLabel.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruleserver/personTrack.go 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
labelFilter/ruleForLabel.go
@@ -12,7 +12,7 @@
func timeJudge(label *Label,groupRule *GroupRule){
}
// 判断第一个时间是否小于第二个时间
// 传入两个时间的字符串,判断第一个时间是否小于第二个时间
func isBefore(time1 string,time2 string) bool{
    expression, err:= govaluate.NewEvaluableExpression("t1 < t2");
    if err != nil {
ruleserver/personTrack.go
@@ -21,36 +21,36 @@
func IsSame(msg *protomsg.SdkMessage) {
    logger.Debug("++++++++++++++++++++++++++++追踪开始+++++++++++++++++++++摄像机id为:",msg.Cid)
    for _, sdkinfo := range msg.Tasklab.Sdkinfos { // 遍历各算法的sdkData
        if sdkinfo.Sdktype == "FaceDetect" { // 人脸检测
            if len(sdkinfo.Sdkdata) > 1 {
                faceParam := protomsg.ParamFacePos{}
                err := proto.Unmarshal(sdkinfo.Sdkdata, &faceParam)
                if err != nil {
                    logger.Info("解析face sdk数据时出现错误", err)
                    continue
                }
                logger.Info("================追踪之前人脸的个数:",len(faceParam.Faces))
                if faceParam.Faces != nil && TrackPond[msg.Cid] != nil  && len(faceParam.Faces) == TrackPond[msg.Cid].Yolo { // yolo的如果数量相同则视为不变、把yolo的sdkData清空
                    faceParam.Faces = (faceParam.Faces)[0:0]
                    sdkinfo.Sdkdata,err = proto.Marshal(&faceParam)
                    if err != nil {
                        logger.Error("人脸序列化错误",err)
                    }
                    logger.Info("===================追踪中途人脸的个数",len(faceParam.Faces))
                } else {
                    TrackPond[msg.Cid] = &PersonTrack{Face:len(faceParam.Faces)}
                }
                //for i := 0;  i < len(faceParam.Faces); {
                //    if flag := IsInPond(msg.Cid,faceParam.Faces[i]);flag { // 已经存在,从msg的人脸数组中删除这个元素,不必传到下一个环节
                //        faceParam.Faces = append(faceParam.Faces[:i], faceParam.Faces[i+1:]...)
                //    } else {
                //        i++
                //    }
                //}
            } else {
                continue
            }
        }
        //if sdkinfo.Sdktype == "FaceDetect" { // 人脸检测
        //    if len(sdkinfo.Sdkdata) > 1 {
        //        faceParam := protomsg.ParamFacePos{}
        //        err := proto.Unmarshal(sdkinfo.Sdkdata, &faceParam)
        //        if err != nil {
        //            logger.Info("解析face sdk数据时出现错误", err)
        //            continue
        //        }
        //        logger.Info("================追踪之前人脸的个数:",len(faceParam.Faces))
        //        if faceParam.Faces != nil && TrackPond[msg.Cid] != nil  && len(faceParam.Faces) == TrackPond[msg.Cid].Yolo { // yolo的如果数量相同则视为不变、把yolo的sdkData清空
        //            faceParam.Faces = (faceParam.Faces)[0:0]
        //            sdkinfo.Sdkdata,err = proto.Marshal(&faceParam)
        //            if err != nil {
        //                logger.Error("人脸序列化错误",err)
        //            }
        //            logger.Info("===================追踪中途人脸的个数",len(faceParam.Faces))
        //        } else {
        //            TrackPond[msg.Cid] = &PersonTrack{Face:len(faceParam.Faces)}
        //        }
        //        //for i := 0;  i < len(faceParam.Faces); {
        //        //    if flag := IsInPond(msg.Cid,faceParam.Faces[i]);flag { // 已经存在,从msg的人脸数组中删除这个元素,不必传到下一个环节
        //        //        faceParam.Faces = append(faceParam.Faces[:i], faceParam.Faces[i+1:]...)
        //        //    } else {
        //        //        i++
        //        //    }
        //        //}
        //    } else {
        //        continue
        //    }
        //}
        if sdkinfo.Sdktype == "Yolo" {
            if len(sdkinfo.Sdkdata) > 1 {
                yoloParam := protomsg.ParamYoloObj{}