---
panlei
2019-12-13 fab26a9861ee7ce4652b4c15483cfc8e833b28d3
structure/rule.go
@@ -1,21 +1,31 @@
package structure
import "basic.com/pubsub/protomsg.git"
import (
   "basic.com/pubsub/protomsg.git"
)
// 每个目标的参数:相似度,占比,尺寸
type Arg struct {
   Id         uint64
   Score      float64 // 区域内的目标的相似度
   Proportion float64 // 区域内的目标的占比
   Size       float64 // 区域内的目标的尺寸
   IsYolo     bool    // 是否是yolo数据
   Location   Rect    // 记下每个目标的位置参数,最后给结果装配人脸数据的时候用的到
   Feature    []byte
   ThftRes    protomsg.ThftResult
   Liker      []*BaseInfo
   CacheData  ResultMsg
type SourceArg struct {
   Id            string
   Uuid          string
   Score         float64                  // 区域内的目标的相似度
   Proportion    float64                  // 区域内的目标的占比
   Size          float64                  // 区域内的目标的尺寸
   AreaJson      string                   // 所属区域
   Type          string                   // 记载数据类型
   Location      Rect                     // 记下每个目标的位置参数,最后给结果装配目标数据的时候用的到
   Car           *protomsg.PlateIDVehicle // 车辆参数
   Feature       []byte
   ThftRes       protomsg.ThftResult
   Liker         []*BaseInfo
   TimeLable     string
   CacheData     ResultMsg
}
type Arg struct {
   SourceArg
   AttachArg SourceArg
}
// 每个区域内的图片数据集合
type AreaMap struct {
   CameraId      string
@@ -30,20 +40,24 @@
   TargetNum     int    // 区域内目标数量
   Args          []*Arg // 区域内目标集合
   FilterData    []*Arg // 过滤后区域内目标集合
   AlarmObj      []*Arg // 区域内最后满足规则的目标
   Time          string // 当前时间(用以匹配时间规则)
   IsEffective   bool   // 规则中是否用到了此区域
   KeepRight     bool   // 是否靠右行
   IsStatic      bool   // 是否静止
}
// sdk输出的图片上单个目标的数据
type PhotoMap struct {
   Id      uint64
type SourcePhoto struct {
   Id      string
   Rects   Rect    // 矩形区域参数
   Score   float64 // 相似度得分(有多大程度像一个目标。人脸,人体或车等等)
   IsYolo  bool    // 是否是yolo数据
   Type    string  // 记载数据类型
   ThftRes protomsg.ThftResult
   Feature []byte
   Car     *protomsg.PlateIDVehicle
}
// sdk输出的图片上单个目标的数据
type PhotoMap struct {
   SourcePhoto
   AttachObj SourcePhoto
}
// 每个算法对于当前帧画面自己提取的数据
@@ -52,8 +66,6 @@
   IpcId       string
   IsYolo      bool
   Photo       []PhotoMap // yolo算法结构,也可以存人脸的数据,毕竟人脸中能用规则来测的还是那些参数
   KeepRight   bool       // 是否靠右行 算法判断的与上一帧图像的比较结果
   IsStatic    bool       // 是否静止
   ImageWidth  int        // 摄像机拍摄的图像宽 像素
   ImageHeight int        // 摄像机拍摄的图像高 像素
   AreaMapList []*AreaMap // 本sdk提取的数据按照区域划分后的数据集合
@@ -75,12 +87,12 @@
// 过规则库打上的标签
type Result struct {
   TaskId       string // 任务id
   SdkName      string
   SdkName      string // 算法名称
   RuleGroupId  string // 规则组id
   DefenceState bool   // 是否布防
   AlarmLevel   int32  // 报警等级
   RuleText     string // 文字版规则组
   Location     []TargetInfo // 目标的坐标
   AlarmObj     []*Arg // 报警的目标数据
   AlarmPolygon string // 触发的报警框
   IsLink       bool   // 是否是联动任务
   Others
@@ -95,12 +107,6 @@
   Rect
   TargetId    uint64
   TargetScore float64
}
// 过规则库打上的标签
type TargetResult struct {
   Result
   Args []Arg
}
type LittleRuleResult struct {
   SdkName string // 记录下此结果是哪个sdk的结果
@@ -122,12 +128,10 @@
   TableName    string  `json:"tableName"`
   BwType       string  `json:"bwType"`
   CompareScore float64 `json:"compareScore"`
   PersonId     string  `json:"personId"`
   PersonName   string  `json:"personName"`
   PersonPicUrl string  `json:"personPicUrl"`
   PhoneNum     string  `json:"phoneNum"`
   Sex          string  `json:"sex"`
   IdCard       string  `json:"idCard"`
   TargetId     string  `json:"targetId"`
   TargetName   string  `json:"targetName"`
   TargetPicUrl string  `json:"targetPicUrl"`
   MonitorLevel string  `json:"monitorLevel"`
   Content      string  `json:"content"`
   DbLabel      string  `json:"labels"`
}