package structure import ( "basic.com/pubsub/protomsg.git" ) // 每个目标的参数:相似度,占比,尺寸 type Arg struct { Id string Uuid string Score float64 // 区域内的目标的相似度 Proportion float64 // 区域内的目标的占比 Size float64 // 区域内的目标的尺寸 AreaJson string // 所属区域 Type string // 记载数据类型 Location Rect // 记下每个目标的位置参数,最后给结果装配目标数据的时候用的到 Car *protomsg.PlateID // 车辆参数 Feature []byte ThftRes protomsg.ThftResult Liker []*BaseInfo TimeLable string CacheData ResultMsg } // 每个区域内的图片数据集合 type AreaMap struct { CameraId string AreaId string GroupId string TaskId string SdkId string SdkName string AreaJson string TriggerLine string DirectionLine string TargetNum int // 区域内目标数量 Args []*Arg // 区域内目标集合 FilterData []*Arg // 过滤后区域内目标集合 AlarmObj []*Arg // 区域内最后满足规则的目标 Time string // 当前时间(用以匹配时间规则) IsEffective bool // 规则中是否用到了此区域 } // sdk输出的图片上单个目标的数据 type PhotoMap struct { Id string Rects Rect // 矩形区域参数 Score float64 // 相似度得分(有多大程度像一个目标。人脸,人体或车等等) Type string // 记载数据类型 ThftRes protomsg.ThftResult Feature []byte Car *protomsg.PlateID } // 每个算法对于当前帧画面自己提取的数据 type SdkData struct { TaskId string IpcId string IsYolo bool Photo []PhotoMap // yolo算法结构,也可以存人脸的数据,毕竟人脸中能用规则来测的还是那些参数 ImageWidth int // 摄像机拍摄的图像宽 像素 ImageHeight int // 摄像机拍摄的图像高 像素 AreaMapList []*AreaMap // 本sdk提取的数据按照区域划分后的数据集合 } // 从算法模块儿拿来的对一帧图像各个算法提取的数据集合 type SdkDatas struct { CameraId string TaskId string Sdkdata []*SdkData RuleResult map[string]interface{} // 过完规则后打的标签 face: []FaceResult, yolo: []Result } type ResultMsg struct { *protomsg.SdkMessage RuleResult map[string]interface{} // 过完规则后打的标签 face: []FaceResult, yolo: []Result target } // 过规则库打上的标签 type Result struct { TaskId string // 任务id SdkName string RuleGroupId string // 规则组id DefenceState bool // 是否布防 AlarmLevel int32 // 报警等级 RuleText string // 文字版规则组 //Location []TargetInfo // 目标的坐标 AlarmObj []*Arg // 报警的目标数据 打算废掉上面的Location AlarmPolygon string // 触发的报警框 IsLink bool // 是否是联动任务 Others } type Others struct { CacheData []ResultMsg //(本组规则中含有持续时间的规则开启的定时器缓存的数据帧) LinkCache []ResultMsg TimeLabel string } type TargetInfo struct { Rect TargetId uint64 TargetScore float64 } type LittleRuleResult struct { SdkName string // 记录下此结果是哪个sdk的结果 Result string // 已包含了前置连接符 Sort int32 } type TimeRange struct { Start string `json:"start"` End string `json:"end"` } type Day struct { Day int `json:"day"` // 标示当前星期几 TimeRange []TimeRange `json:"time_range"` // 当天的几个时间段 } type BaseInfo struct { TableId string `json:"tableId"` TableName string `json:"tableName"` BwType string `json:"bwType"` CompareScore float64 `json:"compareScore"` TargetId string `json:"targetId"` TargetName string `json:"targetName"` TargetPicUrl string `json:"targetPicUrl"` MonitorLevel string `json:"monitorLevel"` Content string `json:"content"` DbLabel string `json:"labels"` //PhoneNum string `json:"phoneNum"` //Sex string `json:"sex"` //IdCard string `json:"idCard"` }