6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
1
2
3
4
5
6
7
|
#include "../ai_platform/stl_aiplatform.h"
#include <chrono>
#include <thread>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
|
ffd1e48a
Hu Chunming
实现结果回调,完成第一版
|
8
|
#include <iostream>
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
9
|
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
10
11
12
13
14
15
|
#include "opencv2/opencv.hpp"
#include "opencv2/imgcodecs/legacy/constants_c.h"
#include "opencv2/imgproc/types_c.h"
#include "demo_util.hpp"
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
16
|
using namespace std;
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
17
|
using namespace cv;
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
18
|
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
19
20
21
22
23
24
25
|
static long long get_cur_time(){
chrono::time_point<chrono::system_clock, chrono::milliseconds> tpMicro
= chrono::time_point_cast<chrono::milliseconds>(chrono::system_clock::now());
return tpMicro.time_since_epoch().count();
}
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
26
27
|
string get_ipc_url(int gi){
string ipc_url = "/data/share/data/Street.uvf";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
28
29
|
switch(gi){
case 0:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
30
|
ipc_url = "rtsp://admin:admin@123456@192.168.60.176:554/cam/realmonitor?channel=1&subtype=0";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
31
32
|
break;
case 1:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
33
|
ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ==";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
34
35
|
break;
case 2:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
36
|
ipc_url = "rtsp://admin:ad123456@192.168.10.166:554/cam/realmonitor?channel=1&subtype=0";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
37
38
|
break;
case 3:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
39
40
|
ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ==";
// ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ==";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
41
42
|
break;
case 4:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
43
|
ipc_url = "/data/share/data/Street.uvf";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
44
45
|
break;
case 5:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
46
|
ipc_url = "/data/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
47
48
|
break;
case 6:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
49
|
ipc_url = "/data/share/data/不带头盔2.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
50
51
|
break;
case 7:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
52
|
ipc_url = "/data/share/data/hczr1.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
53
54
|
break;
case 8:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
55
|
ipc_url = "/data/share/data/燕高路口高点_CVR_2015-12-30_09-00-00_2015-12-30.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
56
57
|
break;
case 9:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
58
59
|
// ipc_url = "/opt/share/data/1-00000002d55_h265.mp4";
ipc_url = "/data/share/data/duan1.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
60
61
|
break;
case 10:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
62
|
ipc_url = "/data/share/data/gs1-00000001.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
63
64
|
break;
case 11:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
65
|
ipc_url = "/data/share/data/98.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
66
67
|
break;
case 12:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
68
|
ipc_url = "/data/share/data/AV_12345_1_20230108110849847_D_1673147329847729.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
69
70
|
break;
case 13:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
71
|
ipc_url = "/data/share/data/nx_1-00000002.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
72
73
|
break;
case 14:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
74
|
ipc_url = "/data/share/data/nx1-0000001.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
75
76
|
break;
case 15:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
77
|
ipc_url = "/data/share/data/nx1-00000002.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
78
79
|
break;
case 16:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
80
|
ipc_url = "/data/share/data/Street.uvf";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
81
82
|
break;
case 17:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
83
|
ipc_url = "/data/share/data/xiancun.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
84
85
|
break;
case 18:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
86
|
ipc_url = "rtsp://192.168.60.146:8554/w_1_out";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
87
88
|
break;
case 19:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
89
|
ipc_url = "/data/share/data/42_44.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
90
91
|
break;
case 20:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
92
|
ipc_url = "/data/share/data/37_70.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
93
94
|
break;
case 21:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
95
|
ipc_url = "/data/share/data/192_25.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
96
97
|
break;
case 22:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
98
|
ipc_url = "/data/share/data/31_4.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
99
100
|
break;
case 23:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
101
|
ipc_url = "/data/share/data/146_192.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
102
103
|
break;
case 24:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
104
|
ipc_url = "/data/share/data/146_187.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
105
106
107
|
break;
case 25:
// 公安内网
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
108
|
ipc_url = "rtsp://192.168.51.200:8554/320202202308231001001002";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
109
110
111
|
break;
case 26:
// FFmpeg生成的解码错误数据流
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
112
|
ipc_url = "rtsp://192.168.10.4:8554/street";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
113
114
|
break;
case 27:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
115
|
ipc_url = "/data/share/data/Street_4k_265.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
116
117
|
break;
case 28:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
118
|
ipc_url = "http://192.168.60.179:10016/公安局老桥头_CVR15F89410_1465819864_1B.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
119
120
|
break;
case 29:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
121
|
ipc_url = "http://192.168.60.179:10016/不带头盔2.mp4";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
122
123
|
break;
case 30:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
124
|
ipc_url = "/data/share/data/149_45.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
125
126
|
break;
case 31:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
127
|
ipc_url = "/data/share/data/146_88.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
128
129
|
break;
case 32:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
130
|
ipc_url = "/data/share/data/141_74.avi";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
131
132
|
break;
default:
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
133
|
ipc_url = "/data/share/data/Street.uvf";
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
134
135
|
break;
}
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
136
|
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
137
|
return ipc_url;
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
138
139
|
}
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
140
|
static int nTaskId = 0;
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
141
|
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
142
|
string createTask(void *handle, int gi, bool bFlag = true){
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
143
144
|
task_param tparam;
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
145
|
tparam.ipc_url = get_ipc_url(gi);
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
146
147
148
149
|
if (bFlag){
nTaskId = gi;
}
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
150
151
|
std::string task_id_str = "test_task_id_" + std::to_string(nTaskId);
tparam.task_id = task_id_str.c_str();
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
152
153
|
nTaskId++;
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
154
155
|
tparam.result_folder_little = "./res"; //目标快照抠图保存地址
tparam.result_folder = "./res"; //目标快照大图保存地址
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
156
157
158
159
160
161
|
const int result_code = add_task(handle, tparam);
if (result_code != 0)
printf("[Error]: ");
printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code);
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
162
163
164
|
return task_id_str;
}
|
ffd1e48a
Hu Chunming
实现结果回调,完成第一版
|
165
166
|
void show_result(ObjectData obj)
{
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
167
|
printf("%s %d \n", obj.task_id.c_str(), obj.task_frame_count);
|
e721ea0f
Hu Chunming
删除无用的三方库
|
168
169
|
printf("%d %d (%d,%d,%d,%d) %lf \n", obj.index, obj.object_id, obj.left, obj.top, obj.right, obj.bottom, obj.confidence);
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
170
171
172
173
174
175
|
cv::Mat image = cv::imread(obj.ori_pic_path);
cv::Rect rc(obj.left, obj.top,obj.right - obj.left, obj.bottom - obj.top);
const cv::Scalar color(0, 0, 255);
cv::rectangle(image, rc, color);
|
e721ea0f
Hu Chunming
删除无用的三方库
|
176
177
|
if (obj.index == 0)
{// person
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
178
179
180
181
182
183
184
185
186
187
188
189
|
for (size_t i = 0; i < HP_ATTRI_SIZE; i++)
{
auto hp_cls = obj.hp_cls[i];
printf("(%d, %f) ", hp_cls.res_index, hp_cls.res_prob);
}
printf("\n");
for (size_t i = 0; i < HUMANREID_FEATURE_SIZE; i++)
{
auto hp_cls = obj.hp_feature[i];
printf("%f ", obj.hp_feature[i]);
}
printf("\n");
|
e721ea0f
Hu Chunming
删除无用的三方库
|
190
191
192
|
}
else if (obj.index >= 4 && obj.index <= 8)
{// vehicle
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
|
printf("vehicle color:%d prob:%f \n", obj.vehicle_color_index, obj.vehicle_color_prob);
for (size_t i = 0; i < obj.vec_vpd_cls.size(); i++)
{
auto info = obj.vec_vpd_cls[i];
printf("%d %f (%d, %d, %d, %d) \n", info.index, info.confidence, info.left_, info.top_, info.width_, info.height_);
cv::Rect rc(info.left_, info.top_, info.width_, info.height_);
const cv::Scalar color(0, 255, 255);
cv::rectangle(image, rc, color);
}
auto& plate_info = obj.vehicle_plate;
printf("plate : (%d, %d, %d, %d) %f \n", plate_info.left_, plate_info.top_, plate_info.width_, plate_info.height_, plate_info.detect_score );
cv::Rect rc(plate_info.left_, plate_info.top_, plate_info.width_, plate_info.height_);
const cv::Scalar color(0, 255, 0);
cv::rectangle(image, rc, color);
for (size_t i = 0; i < 8; i++)
{
printf("%s:%f ", plate_info.recg[i].character, plate_info.recg[i].maxprob);
}
printf("\n");
printf("num_score: %f \n", plate_info.num_score);
printf("type: %d \n", plate_info.type);
printf("state:%d %f\n", plate_info.state, plate_info.state_score);
|
e721ea0f
Hu Chunming
删除无用的三方库
|
217
218
|
}
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
219
220
221
|
string result_path = "./res/result/" + obj.task_id + "_" + to_string(obj.object_id) + ".jpg";
cv::imwrite(result_path, image);
image.release();
|
ffd1e48a
Hu Chunming
实现结果回调,完成第一版
|
222
|
}
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
223
224
225
226
|
void test_gpu(int gpuID){
tsl_aiplatform_param vptParam;
vptParam.gpuid = gpuID;
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
227
228
229
230
231
232
233
234
|
vptParam.models_dir = ".";
vptParam.log_days = 1;
vptParam.log_level = AI_LOG_LEVEL_TRACE;
// vptParam.log_level = AI_LOG_LEVEL_DEBUG;
vptParam.log_mem = 64 * 1024 * 1024; // 64MB.
vptParam.log_path = "logs/main.log";
|
ffd1e48a
Hu Chunming
实现结果回调,完成第一版
|
235
236
|
vptParam.result_cbk = show_result;
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
237
238
239
240
241
242
243
244
245
|
void *handle;
int flag = tsl_aiplatform_init(&handle, vptParam);
if (0 != flag) {
printf("Init Failed! Error Code: %d\n", flag);
return;
} else {
printf("Init Success\n");
}
|
1de90182
Hu Chunming
修复特征坐标跟原图坐标不相符的问题
|
246
247
|
CreateResultFolder("./res/result", "");
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
248
249
250
251
252
253
254
255
|
// createTask(handle, algor_vec2, 19, false);
// createTask(handle, algor_vec2, 20, false);
// createTask(handle, algor_vec2, 21, false);
// createTask(handle, algor_vec2, 22, false);
// createTask(handle, algor_vec2, 23, false);
// createTask(handle, algor_vec2, 24, false);
// createTask(handle, algor_vec2, 30, false);
// createTask(handle, algor_vec2, 31, false);
|
881ac79d
Hu Chunming
代码调通,结果正常输出
|
256
|
createTask(handle, 4, false);
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
257
258
259
260
261
262
|
while (getchar() != 'q');
tsl_aiplatform_release(&handle);
}
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
int main(int argc, char *argv[]) {
printf("new test\n");
// if (argc < 4) {
// fprintf(stderr, "./xxx 0 2 10 1 ## [start_ai_id, end_ai_id) repeat_num gpu_id\n");
// return -1;
// }
// //! load params.
// int start_id = atoi(argv[1]);
// int end_id = atoi(argv[2]);
// int repeat_num = atoi(argv[3]);
// int gpuID = atoi(argv[4]);
test_gpu(0);
// test_gpu(1);
// test_gpu(2);
// test_gpu(3);
|
6fdcb6a5
Hu Chunming
初次提交,代码大体完成编写,完善中
|
282
283
284
285
286
|
printf("Done.\n");
return 0;
}
|