Blame view

src/ai_platform/header.h 4.58 KB
d5345ee9   Hu Chunming   代码优化
1
2
  #ifndef __AI_PLATFORM_HEADER__
  #define __AI_PLATFORM_HEADER__
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  
  #ifdef _MSC_VER
  #include <windows.h>
  #else
  
  #include <cstddef>
  
  #endif
  
  #include "sy_common.h"
  #include <map>
  #include <vector>
  #include <string>
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
17
18
  
  
d5345ee9   Hu Chunming   代码优化
19
20
21
  #define HUMANREID_FEATURE_SIZE 384
  #define HP_ATTRI_SIZE 16
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  #define PLATENUM 8                        //车牌号码位数
  #define MAX_PALTE_COUNT 10              //每张图片中最多检测出10个车牌
  
  #define SINGLETYPE_BLUE 0                //单排蓝色
  #define SINGLETYPE_YELLOW 1                //单排黄色
  #define SINGLETYPE_WHITE 2                //单排白色
  #define SINGLETYPE_BLACK 3                //单排黑色
  #define DOUBLETYPE_YELLOW 4                //双排黄色
  #define DOUBLETYPE_WHITE 5                //双排白色
  #define NEWENERGYTYPE_YELLOWGREEN 6        //新能源黄绿色
  #define NEWENERGYTYPE_WHITEGRA 7        //新能源白绿色
  
  
  using namespace std;
  
  
  //返回的检测物体结果信息
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
39
40
41
42
43
44
45
46
47
48
49
  typedef struct video_object_info {
      char task_id[128];              //该物体属于的任务ID
      int task_frame_count;     //该物体当前出现的帧号
      int object_id;            //该物体的ID
      int left;                 //该物体位置的左坐标
      int top;                  //该物体位置的上坐标
      int right;                //该物体位置的右坐标
      int bottom;               //该物体位置的下坐标
      int index;                //该物体所属类别的编号
      double confidence;        //该物体的置信度
  } video_object_info;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
  
  
  
  typedef struct hp_cls_info         //分类结果结构体
  {
      int res_index;                      //分类结果
      float res_prob;                     //分类结构体
      hp_cls_info() : res_index(0), res_prob(0) {};
  } hp_cls_info;
  
  typedef struct VPDInfo
  {
  	int left_;
  	int top_;
  	int width_;
  	int height_;
  
  	int index;		                     //类型
  	float confidence;	                 //置信度
  }VPDInfo;
  
  struct PlateNum
  {
      char character[4];
      float maxprob;
      int index;
  };
  
  struct VehiclePlateResult {
      int left_;
  	int top_;
  	int width_;
  	int height_;
      float detect_score;
  
      PlateNum recg[8];
      float num_score;
      int type;	//车牌类型。只做车牌检测,车牌类型为:0-单层车牌,1-双层车牌;做车牌检测识别,0-单排蓝色 1-单排黄色 2-单排白色 3-单排黑色 4-双排黄色 5-双排白色 6-新能源黄绿色 7-新能源白绿色
  
      int state; //车牌状态:0-无车牌,1-车牌,2-遮挡车牌
      float state_score;//车牌状态置信度
  };
  
  typedef struct ObjectData {
      string task_id;              //该物体属于的任务ID
      int task_frame_count;     //该物体当前出现的帧号
      int object_id;            //该物体的ID
      int left;                 //该物体位置的左坐标
      int top;                  //该物体位置的上坐标
      int right;                //该物体位置的右坐标
      int bottom;               //该物体位置的下坐标
      int index;                //该物体所属类别的编号
      double confidence;        //该物体的置信度
  
      string ori_pic_path;
      string obj_pic_path;
  
d5345ee9   Hu Chunming   代码优化
107
108
      hp_cls_info hp_cls[HP_ATTRI_SIZE]; 
      float hp_feature[HUMANREID_FEATURE_SIZE];
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
109
110
111
112
113
114
115
116
117
118
  
      int vehicle_color_index;
      float vehicle_color_prob;
      vector<VPDInfo> vec_vpd_cls;
      VehiclePlateResult vehicle_plate;
  } ObjectData;
  
  
  
  // TASK初始化参数
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
119
  typedef struct task_param {
881ac79d   Hu Chunming   代码调通,结果正常输出
120
121
      string ipc_url;                      //rtsp流地址
      string task_id;                      //外部传入任务id
603874de   Hu Chunming   skip_frame 改到参数中
122
      int skip_frame{0};
3ca1c1d4   Hu Chunming   优化结果文件夹配置
123
124
125
  
      string result_folder_little;         //目标快照抠图保存地址
  	string result_folder;                //目标快照大图保存地址
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
126
  } task_param;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
127
  
d5345ee9   Hu Chunming   代码优化
128
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
129
130
131
132
133
134
135
136
  enum ai_log_level {
      AI_LOG_LEVEL_CLOSE = -1,  // 关闭日志
      AI_LOG_LEVEL_TRACE = 0,   // 跟踪变量
      AI_LOG_LEVEL_DEBUG = 1,       // 调试日志
      AI_LOG_LEVEL_INFO = 2,        // 普通日志信息 (如:无关紧要的信息输出)
      AI_LOG_LEVEL_WARNING = 3,     // 警告日志通知,模块一切正常(如:重要流程通知)
      AI_LOG_LEVEL_ERROR = 4,       // 重要日志,如结果和严重错误
  };
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
137
138
139
  
  
  //VPT初始化参数
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
140
141
142
143
144
145
146
147
148
  typedef struct tsl_aiplatform_param {
      int gpuid;                                                     //指定显卡id
      string models_dir;              // 模型文件目录
  
      ai_log_level log_level;
      char *log_path;             //日志文件路径
      int log_days;               //日志保存周期
      double log_mem;                //每个日志最大大小
  } tsl_aiplatform_param;
d5345ee9   Hu Chunming   代码优化
149
150
  
  #endif      // __AI_PLATFORM_HEADER__