Commit 881ac79d6dbfbeb00569cab01b06110b745938e8
1 parent
3ca1c1d4
代码调通,结果正常输出
Showing
25 changed files
with
183 additions
and
1347 deletions
.vscode/launch.json
0 → 100644
1 | +{ | |
2 | + "version": "0.2.0", | |
3 | + "configurations": [ | |
4 | + { | |
5 | + "name": "test", | |
6 | + "type": "cppdbg", | |
7 | + "request": "launch", | |
8 | + "program": "${workspaceFolder}/bin/mvpt_dq_demo", | |
9 | + "args": [ | |
10 | + "/mnt/data/cmhu/data/Street.uvf" | |
11 | + ], | |
12 | + "stopAtEntry": false, | |
13 | + "cwd": "${workspaceFolder}/bin", | |
14 | + "environment": [], | |
15 | + "externalConsole": false, | |
16 | + "MIMode": "gdb", | |
17 | + "setupCommands": [ | |
18 | + { | |
19 | + "description": "Enable pretty-printing for gdb", | |
20 | + "text": "-enable-pretty-printing", | |
21 | + "ignoreFailures": true | |
22 | + } | |
23 | + ] | |
24 | + } | |
25 | + ] | |
26 | + } | |
0 | 27 | \ No newline at end of file | ... | ... |
.vscode/settings.json
0 → 100644
build/demo/Makefile
1 | 1 | XX = g++ |
2 | 2 | |
3 | 3 | |
4 | -PROJECT_ROOT= /home/cmhu/vpt_ascend_arm | |
4 | +PROJECT_ROOT= /home/cmhu/mvpt_dq_ascend_arm | |
5 | 5 | |
6 | 6 | DEPEND_DIR = $(PROJECT_ROOT)/bin |
7 | 7 | SRC_ROOT = $(PROJECT_ROOT)/src |
8 | 8 | |
9 | -TARGET= $(PROJECT_ROOT)/bin/vpt_proj | |
9 | +TARGET= $(PROJECT_ROOT)/bin/mvpt_dq_demo | |
10 | 10 | |
11 | 11 | THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty |
12 | 12 | SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release |
... | ... | @@ -25,7 +25,7 @@ include_dir=-I/usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/include \ |
25 | 25 | -I $(FFMPEG_ROOT)/include \ |
26 | 26 | |
27 | 27 | |
28 | -LIBS= -L $(DEPEND_DIR) -lvpt_det_vdec -lsycheck -lface_det_vdec -lhs_tri_process -lhs_truck_process -lhs_motor_process -lphone_motor_det -lhcp_vdec -lmotor_rainshed_vdec -ltraffic_light_vdec -lvehicle_pose_vdec -lroad_seg_vdec -lroad_3clsseg_vdec -latlaslic -lvpt_ascend\ | |
28 | +LIBS= -L $(DEPEND_DIR) -lmvpt_dq_ascend_arm -latlaslic -lsycheck -lhp -lhuman_reid -lvcolor -lvpr_det -lvpd_process -lvpt_det_vdec \ | |
29 | 29 | -L $(OPENCV_ROOT)/lib -lopencv_world\ |
30 | 30 | -L $(JSON_ROOT)/lib -ljsoncpp \ |
31 | 31 | -L $(RABBITMQ_CLIENT_ROOT)/lib/aarch64-linux-gnu -lrabbitmq \ | ... | ... |
build/src/Makefile
... | ... | @@ -19,8 +19,7 @@ BOOST_ROOT = $(THIRDPARTY_ROOT)/boost_1_81_0/release |
19 | 19 | |
20 | 20 | JRTP_ROOT = $(THIRDPARTY_ROOT)/gb28181_3rd/jrtp_export |
21 | 21 | |
22 | -DEFS = -DENABLE_DVPP_INTERFACE -DWITH_FACE_DET_SS -DPOST_USE_RABBITMQ -DUSE_VILLAGE | |
23 | -# DEFS = -DENABLE_DVPP_INTERFACE -DUSE_VILLAGE | |
22 | +DEFS = -DENABLE_DVPP_INTERFACE | |
24 | 23 | |
25 | 24 | include_dir=-I/usr/local/Ascend/ascend-toolkit/latest/include \ |
26 | 25 | -I $(SRC_ROOT)/common \ |
... | ... | @@ -35,7 +34,7 @@ include_dir=-I/usr/local/Ascend/ascend-toolkit/latest/include \ |
35 | 34 | |
36 | 35 | |
37 | 36 | LIBS= -L $(SPDLOG_ROOT)/lib -l:libspdlog.a \ |
38 | - -L $(DEPEND_DIR) -lvpt_det_vdec -lsycheck \ | |
37 | + -L $(DEPEND_DIR) -lvpt_det_vdec -latlaslic -lsycheck -lhp -lhuman_reid -lvcolor -lvpr_det -lvpd_process \ | |
39 | 38 | -L $(OPENCV_ROOT)/lib -lopencv_world\ |
40 | 39 | -L $(JSON_ROOT)/lib -l:libjsoncpp.a \ |
41 | 40 | -L $(FFMPEG_ROOT)/lib -l:libavformat.a -l:libavcodec.a -l:libswscale.a -l:libavutil.a -l:libavfilter.a -l:libswresample.a -l:libavdevice.a -l:libx264.a\ | ... | ... |
src/ai_engine_module/HumanFeature.cpp
... | ... | @@ -37,6 +37,7 @@ int HumanFeature::init(int dev_id, string model_dir){ |
37 | 37 | } |
38 | 38 | |
39 | 39 | vector<HFResult> HumanFeature::process(vector<DeviceMemory*> vec_gpuMem) { |
40 | + | |
40 | 41 | int batchsize = vec_gpuMem.size(); |
41 | 42 | |
42 | 43 | vector<sy_img> batch_img; |
... | ... | @@ -60,6 +61,8 @@ vector<HFResult> HumanFeature::process(vector<DeviceMemory*> vec_gpuMem) { |
60 | 61 | int ret = SY_SUCCESS; |
61 | 62 | do |
62 | 63 | { |
64 | + ret = aclrtSetCurrentContext(m_algorthim_ctx); | |
65 | + | |
63 | 66 | ret = humanreid_batch(m_handle, batch_img.data(), batchsize, feature); |
64 | 67 | if (SY_SUCCESS != ret) { |
65 | 68 | printf("humanFeature process failed!"); |
... | ... | @@ -95,5 +98,6 @@ void HumanFeature::release(){ |
95 | 98 | } |
96 | 99 | if(m_algorthim_ctx){ |
97 | 100 | aclrtDestroyContext(m_algorthim_ctx); |
101 | + m_algorthim_ctx = nullptr; | |
98 | 102 | } |
99 | 103 | } |
100 | 104 | \ No newline at end of file | ... | ... |
src/ai_engine_module/HumanParsing.cpp
... | ... | @@ -46,15 +46,16 @@ vector<hp_analysis_res> HumanParsing::process(vector<DeviceMemory*> vec_gpuMem) |
46 | 46 | |
47 | 47 | sy_img img; |
48 | 48 | img.w_ = mem->getWidth(); |
49 | - img.h_ = mem->getHeight(); | |
50 | - img.c_ = mem->getChannel(); | |
49 | + img.h_ = mem->getHeight(); | |
51 | 50 | img.data_ = mem->getMem(); |
52 | 51 | batch_img.push_back(img); |
53 | 52 | } |
54 | 53 | |
54 | + int ret = aclrtSetCurrentContext(m_algorthim_ctx); | |
55 | + | |
55 | 56 | vector<hp_analysis_res> vec_result; |
56 | 57 | vec_result.resize(batchsize); |
57 | - int ret = hp_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); | |
58 | + ret = hp_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); | |
58 | 59 | if (SY_SUCCESS != ret) { |
59 | 60 | printf("HumanCarParse process failed!"); |
60 | 61 | return vec_result; |
... | ... | @@ -70,5 +71,6 @@ void HumanParsing::release(){ |
70 | 71 | } |
71 | 72 | if(m_algorthim_ctx){ |
72 | 73 | aclrtDestroyContext(m_algorthim_ctx); |
74 | + m_algorthim_ctx = nullptr; | |
73 | 75 | } |
74 | 76 | } |
75 | 77 | \ No newline at end of file | ... | ... |
src/ai_engine_module/VPDProcess.cpp
... | ... | @@ -38,7 +38,9 @@ int VPDProcess::init(int dev_id, string model_dir){ |
38 | 38 | return 0; |
39 | 39 | } |
40 | 40 | |
41 | -vector<VPDResult> VPDProcess::process(vector<DeviceMemory*> vec_gpuMem) { | |
41 | +vector<VPDResult> VPDProcess::process(vector<DeviceMemory*> vec_gpuMem) | |
42 | +{ | |
43 | + int ret = aclrtSetCurrentContext(m_algorthim_ctx); | |
42 | 44 | |
43 | 45 | vector<VPDResult> vec_res; |
44 | 46 | |
... | ... | @@ -61,7 +63,7 @@ vector<VPDResult> VPDProcess::process(vector<DeviceMemory*> vec_gpuMem) { |
61 | 63 | results[b].vpd_res = new vpd_info[OBJ_MAX_COUNT]; |
62 | 64 | } |
63 | 65 | |
64 | - int ret = vpd_process(m_handle, batch_img.data(), batchsize, results); | |
66 | + ret = vpd_process(m_handle, batch_img.data(), batchsize, results); | |
65 | 67 | if (SY_SUCCESS != ret) { |
66 | 68 | printf("vpd detection process failed!"); |
67 | 69 | return vec_res; |
... | ... | @@ -102,5 +104,6 @@ void VPDProcess::release(){ |
102 | 104 | } |
103 | 105 | if(m_algorthim_ctx){ |
104 | 106 | aclrtDestroyContext(m_algorthim_ctx); |
107 | + m_algorthim_ctx = nullptr; | |
105 | 108 | } |
106 | 109 | } |
107 | 110 | \ No newline at end of file | ... | ... |
src/ai_engine_module/VPTProcess.cpp
src/ai_engine_module/VehicleColor.cpp
... | ... | @@ -38,6 +38,8 @@ int VehicleColor::init(int dev_id, string model_dir){ |
38 | 38 | } |
39 | 39 | |
40 | 40 | vector<VehicleColorResult> VehicleColor::process(vector<DeviceMemory*> vec_gpuMem) { |
41 | + | |
42 | + int ret = aclrtSetCurrentContext(m_algorthim_ctx); | |
41 | 43 | |
42 | 44 | int batchsize = vec_gpuMem.size(); |
43 | 45 | |
... | ... | @@ -47,8 +49,7 @@ vector<VehicleColorResult> VehicleColor::process(vector<DeviceMemory*> vec_gpuMe |
47 | 49 | |
48 | 50 | sy_img img; |
49 | 51 | img.w_ = mem->getWidth(); |
50 | - img.h_ = mem->getHeight(); | |
51 | - img.c_ = mem->getChannel(); | |
52 | + img.h_ = mem->getHeight(); | |
52 | 53 | img.data_ = mem->getMem(); |
53 | 54 | batch_img.push_back(img); |
54 | 55 | } |
... | ... | @@ -58,7 +59,7 @@ vector<VehicleColorResult> VehicleColor::process(vector<DeviceMemory*> vec_gpuMe |
58 | 59 | vector<vc_result> vec_result; |
59 | 60 | vec_result.resize(batchsize); |
60 | 61 | |
61 | - int ret = vc_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); | |
62 | + ret = vc_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); | |
62 | 63 | if (SY_SUCCESS != ret) { |
63 | 64 | printf("vehicleColorClassification process failed!"); |
64 | 65 | return vec_vc_res; |
... | ... | @@ -81,5 +82,6 @@ void VehicleColor::release(){ |
81 | 82 | } |
82 | 83 | if(m_algorthim_ctx){ |
83 | 84 | aclrtDestroyContext(m_algorthim_ctx); |
85 | + m_algorthim_ctx = nullptr; | |
84 | 86 | } |
85 | 87 | } |
86 | 88 | \ No newline at end of file | ... | ... |
src/ai_engine_module/VehiclePlate.cpp
... | ... | @@ -47,8 +47,10 @@ int VehiclePlate::init(int dev_id, string model_dir){ |
47 | 47 | return 0; |
48 | 48 | } |
49 | 49 | |
50 | -vector<VehiclePlateResult> VehiclePlate::process(vector<DeviceMemory*> vec_gpuMem) { | |
51 | - // 每个 DeviceMemory 只包含一辆车 | |
50 | +vector<VehiclePlateResult> VehiclePlate::process(vector<DeviceMemory*> vec_gpuMem) | |
51 | +{ // 每个 DeviceMemory 只包含一辆车 | |
52 | + | |
53 | + int ret = aclrtSetCurrentContext(m_algorthim_ctx); | |
52 | 54 | |
53 | 55 | vector<VehiclePlateResult> vec_res; |
54 | 56 | |
... | ... | @@ -68,7 +70,7 @@ vector<VehiclePlateResult> VehiclePlate::process(vector<DeviceMemory*> vec_gpuMe |
68 | 70 | |
69 | 71 | vector<vplates_result> vec_result; |
70 | 72 | vec_result.resize(batchsize); |
71 | - int ret = vpdr_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); | |
73 | + ret = vpdr_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); | |
72 | 74 | if (SY_SUCCESS != ret) { |
73 | 75 | printf("vpr detection process failed!"); |
74 | 76 | return vec_res; |
... | ... | @@ -101,5 +103,6 @@ void VehiclePlate::release(){ |
101 | 103 | } |
102 | 104 | if(m_algorthim_ctx){ |
103 | 105 | aclrtDestroyContext(m_algorthim_ctx); |
106 | + m_algorthim_ctx = nullptr; | |
104 | 107 | } |
105 | 108 | } |
106 | 109 | \ No newline at end of file | ... | ... |
src/ai_platform/FeatureAnalysis.h
src/ai_platform/header.h
... | ... | @@ -122,9 +122,8 @@ typedef struct ObjectData { |
122 | 122 | #define __TASK_PARAM__ |
123 | 123 | |
124 | 124 | typedef struct task_param { |
125 | - const char *ipc_url; //rtsp流地址 | |
126 | - const char *task_id; //外部传入任务id | |
127 | - int dec_type; | |
125 | + string ipc_url; //rtsp流地址 | |
126 | + string task_id; //外部传入任务id | |
128 | 127 | int skip_frame{0}; |
129 | 128 | |
130 | 129 | string result_folder_little; //目标快照抠图保存地址 | ... | ... |
src/ai_platform/mvpt.cpp
... | ... | @@ -100,8 +100,6 @@ int CMultiSourceProcess::InitAlgorthim(tsl_aiplatform_param vptParam){ |
100 | 100 | vparam.threshold = 0.4; |
101 | 101 | vparam.model_dir = models_dir; |
102 | 102 | |
103 | - aclrtSetDevice(m_devId); | |
104 | - | |
105 | 103 | int ret = vpt_process.init(vparam); |
106 | 104 | if (ret < 0){ |
107 | 105 | return ret; |
... | ... | @@ -156,7 +154,7 @@ int CMultiSourceProcess::GetTaskStatus(const string taskID) { |
156 | 154 | |
157 | 155 | bool CMultiSourceProcess::AddTask(task_param _cur_task_param) |
158 | 156 | { |
159 | - const char* task_id = _cur_task_param.task_id; | |
157 | + string task_id = _cur_task_param.task_id; | |
160 | 158 | |
161 | 159 | decode_cbk_userdata* userPtr = new decode_cbk_userdata; |
162 | 160 | userPtr->task_id = task_id; |
... | ... | @@ -394,10 +392,6 @@ bool CMultiSourceProcess::finish_task(const string taskID, const bool delete_sna |
394 | 392 | int CMultiSourceProcess::algorthim_process_thread(){ |
395 | 393 | LOG_INFO("algorthim_process_thread start..."); |
396 | 394 | |
397 | - ACL_CALL(aclrtSetDevice(m_devId), ACL_SUCCESS, 1); | |
398 | - aclrtContext ctx; | |
399 | - ACL_CALL(aclrtCreateContext(&ctx, m_devId), ACL_SUCCESS, 1); | |
400 | - | |
401 | 395 | while (true){ |
402 | 396 | #ifndef AUTHORIZATION |
403 | 397 | if (!CheckTime()) { //时间限制 |
... | ... | @@ -443,7 +437,6 @@ int CMultiSourceProcess::algorthim_process_thread(){ |
443 | 437 | continue; |
444 | 438 | } |
445 | 439 | |
446 | - aclrtSetCurrentContext(ctx); | |
447 | 440 | // auto record_t1 = std::chrono::system_clock::now(); |
448 | 441 | auto vptprocess1 = std::chrono::system_clock::now(); |
449 | 442 | algorthim_vpt(vec_gpuMem); |
... | ... | @@ -466,8 +459,6 @@ int CMultiSourceProcess::algorthim_process_thread(){ |
466 | 459 | vector<DeviceMemory*>().swap(vec_gpuMem); // free. |
467 | 460 | } |
468 | 461 | |
469 | - aclrtDestroyContext(ctx); | |
470 | - aclrtResetDevice(m_devId); | |
471 | 462 | LOG_INFO("algorthim_process_thread exit."); |
472 | 463 | |
473 | 464 | return 0; |
... | ... | @@ -537,7 +528,7 @@ void CMultiSourceProcess::vehicle_locus_finished(const OBJ_KEY obj_key) { |
537 | 528 | |
538 | 529 | auto it = _total_snapshot_info.find(obj_key); |
539 | 530 | if (it == _total_snapshot_info.end()) { |
540 | - LOG_WARN("object not found: {}, {}", obj_key.video_id, obj_key.obj_id); | |
531 | + // LOG_WARN("object not found: {}, {}", obj_key.video_id, obj_key.obj_id); | |
541 | 532 | return; |
542 | 533 | } |
543 | 534 | |
... | ... | @@ -548,6 +539,20 @@ void CMultiSourceProcess::vehicle_locus_finished(const OBJ_KEY obj_key) { |
548 | 539 | string result_folder = info->result_folder + "/snapshot";//todo |
549 | 540 | string result_folder_little = info->result_folder_little + "/snapshot_lite"; |
550 | 541 | |
542 | + if (!result_folder.empty()) { | |
543 | + CreateResultFolder(result_folder.c_str(), ""); | |
544 | + } else { | |
545 | + LOG_ERROR("result_folder is empty!"); | |
546 | + } | |
547 | + | |
548 | + if (!result_folder_little.empty()) { | |
549 | + CreateResultFolder(result_folder_little.c_str(), ""); | |
550 | + } else { | |
551 | + LOG_ERROR("result_folder_little is empty!"); | |
552 | + } | |
553 | + | |
554 | + LOG_DEBUG("update task_id {} obj_id {}", obj_key.video_id, obj_key.obj_id); | |
555 | + | |
551 | 556 | std::string cur_timestamp_ms = std::to_string(helpers::timer::get_cur_time_ms()); |
552 | 557 | // 原图 |
553 | 558 | std::string ori_pic_path = result_folder + helpers::os::sep + obj_key.video_id + "_" + std::to_string(obj_key.obj_id) + "_" + cur_timestamp_ms + ".jpg"; |
... | ... | @@ -575,10 +580,7 @@ void CMultiSourceProcess::vehicle_locus_finished(const OBJ_KEY obj_key) { |
575 | 580 | { |
576 | 581 | // todo 回调函数抛出结果给上层 |
577 | 582 | } |
578 | - | |
579 | - | |
580 | - LOG_DEBUG("仅删除记录,显存会在保存线程中删除"); | |
581 | - // 仅删除记录,显存会在保存线程中删除 | |
583 | + | |
582 | 584 | m_snapshot_reprocessing->release_finished_locus_snapshot(obj_key.video_id, obj_key.obj_id, true); |
583 | 585 | |
584 | 586 | } |
... | ... | @@ -607,9 +609,6 @@ bool CMultiSourceProcess::save_obj_pic(ObjectInfo& res_obj) |
607 | 609 | } |
608 | 610 | } while (0); |
609 | 611 | |
610 | - VPCUtil::vpc_img_release(res_obj.ori_img_info); | |
611 | - VPCUtil::vpc_img_release(res_obj.obj_img_info); | |
612 | - | |
613 | 612 | return bSaved; |
614 | 613 | } |
615 | 614 | |
... | ... | @@ -622,7 +621,7 @@ bool CMultiSourceProcess::CheckTime() { |
622 | 621 | nYear = info->tm_year + 1900; |
623 | 622 | nMonth = info->tm_mon + 1; |
624 | 623 | nDay = info->tm_mday; |
625 | - if (nYear == 2024 && nMonth <= 12) | |
624 | + if (nYear == 2025 && nMonth <= 12) | |
626 | 625 | { |
627 | 626 | return true; |
628 | 627 | } | ... | ... |
src/ai_platform/mvpt_process_assist.cpp
... | ... | @@ -162,7 +162,7 @@ int CreateDir(char *pszDir) |
162 | 162 | } |
163 | 163 | |
164 | 164 | |
165 | -void CreateResultFolder(char* resultFolder, const char* jointFolder) | |
165 | +void CreateResultFolder(const char* resultFolder, const char* jointFolder) | |
166 | 166 | { |
167 | 167 | if (strlen(resultFolder) > 240) //?too long |
168 | 168 | { | ... | ... |
src/ai_platform/mvpt_process_assist.h
... | ... | @@ -24,7 +24,7 @@ using namespace std; |
24 | 24 | |
25 | 25 | |
26 | 26 | int CreateDir(char *pszDir); |
27 | -void CreateResultFolder(char* resultFolder, const char* jointFolder); | |
27 | +void CreateResultFolder(const char* resultFolder, const char* jointFolder); | |
28 | 28 | //bool sy_legal_pos(bitset<EDGESIZE> flags, int left, int top, int right, int bottom, int imgHeight, int imgWidth); |
29 | 29 | bool LegalArea(int maxArea, int lastArea, int left, int top, int right, int bottom); |
30 | 30 | bool LegalMinArea(int width, int height, sy_rect min_box); | ... | ... |
src/ai_platform/task_manager.cpp
... | ... | @@ -15,7 +15,7 @@ task_manager::task_manager(/* args */) |
15 | 15 | |
16 | 16 | task_manager::~task_manager() |
17 | 17 | { |
18 | - task_info_map.clear(); | |
18 | + Release(); | |
19 | 19 | } |
20 | 20 | |
21 | 21 | bool task_manager::AddTask(const task_param& task_param, FFDecConfig& cfg) { |
... | ... | @@ -106,6 +106,11 @@ bool task_manager::FinishTask(const string& task_id){ |
106 | 106 | if(it == task_info_map.end()) { |
107 | 107 | return false; |
108 | 108 | } |
109 | + | |
110 | + TaskInfo& info = task_info_map[task_id]; | |
111 | + info.dec->close(); | |
112 | + delete info.dec; | |
113 | + info.dec = nullptr; | |
109 | 114 | |
110 | 115 | task_info_map.erase(task_id); |
111 | 116 | |
... | ... | @@ -171,6 +176,14 @@ int task_manager::GetRunningTaskCount() { |
171 | 176 | } |
172 | 177 | |
173 | 178 | void task_manager::Release() { |
179 | + for (auto it = task_info_map.begin(); it != task_info_map.end(); it++) | |
180 | + { | |
181 | + TaskInfo& info = it->second; | |
182 | + info.dec->close(); | |
183 | + delete info.dec; | |
184 | + info.dec = nullptr; | |
185 | + } | |
186 | + | |
174 | 187 | task_info_map.clear(); |
175 | 188 | } |
176 | 189 | ... | ... |
src/ai_platform/task_manager.h
... | ... | @@ -23,15 +23,6 @@ typedef struct TaskInfo |
23 | 23 | string result_folder_little; //目标快照抠图保存地址 |
24 | 24 | string result_folder; //目标快照大图保存地址 |
25 | 25 | |
26 | - TaskInfo(){} | |
27 | - | |
28 | - ~TaskInfo(){ | |
29 | - if(dec){ | |
30 | - dec->close(); | |
31 | - delete dec; | |
32 | - dec = nullptr; | |
33 | - } | |
34 | - } | |
35 | 26 | } TaskInfo; |
36 | 27 | |
37 | 28 | class task_manager | ... | ... |
src/decoder/dvpp/DvppDecoder.cpp
... | ... | @@ -534,8 +534,8 @@ void DvppDecoder::read_thread() { |
534 | 534 | CHECK_AND_BREAK(aclvdecSetChannelDescThreadId(vdecChannelDesc, report_thread), "aclvdecSetChannelDescThreadId failed"); |
535 | 535 | CHECK_AND_BREAK(aclvdecSetChannelDescCallback(vdecChannelDesc, VdecCallback), "aclvdecSetChannelDescCallback failed"); |
536 | 536 | CHECK_AND_BREAK(aclvdecSetChannelDescEnType(vdecChannelDesc, m_enType), "aclvdecSetChannelDescEnType failed"); |
537 | - // CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_YUV_SEMIPLANAR_420), "aclvdecSetChannelDescOutPicFormat failed"); | |
538 | - CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_BGR_888), "aclvdecSetChannelDescOutPicFormat failed"); | |
537 | + CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_YUV_SEMIPLANAR_420), "aclvdecSetChannelDescOutPicFormat failed"); | |
538 | + // CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_BGR_888), "aclvdecSetChannelDescOutPicFormat failed"); | |
539 | 539 | CHECK_AND_BREAK(aclvdecCreateChannel(vdecChannelDesc), "aclvdecCreateChannel failed"); |
540 | 540 | |
541 | 541 | AVPacket* pkt = av_packet_alloc(); |
... | ... | @@ -880,7 +880,7 @@ void DvppDecoder::doVdppVdecCallBack(acldvppStreamDesc *input, acldvppPicDesc *o |
880 | 880 | mem->setFrameNb(frame_nb); |
881 | 881 | } |
882 | 882 | } else { |
883 | - mem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, m_dec_name, to_string(m_dvpp_deviceId), false, frame_nb, (unsigned char *)outputDataDev, m_cfg.auto_road_parse); | |
883 | + mem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, m_dec_name, to_string(m_dvpp_deviceId), false, frame_nb, (unsigned char *)outputDataDev); | |
884 | 884 | } |
885 | 885 | |
886 | 886 | if(mem != nullptr){ | ... | ... |
src/decoder/dvpp/DvppSnapshot.cpp
... | ... | @@ -684,7 +684,7 @@ void DvppSnapshot::doVdppVdecCallBack(acldvppStreamDesc *input, acldvppPicDesc * |
684 | 684 | mem->setFrameNb(frame_nb); |
685 | 685 | } |
686 | 686 | } else { |
687 | - mem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, m_dec_name, to_string(m_dvpp_deviceId), false, frame_nb, (unsigned char *)outputDataDev, m_cfg.auto_road_parse); | |
687 | + mem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, m_dec_name, to_string(m_dvpp_deviceId), false, frame_nb, (unsigned char *)outputDataDev); | |
688 | 688 | } |
689 | 689 | |
690 | 690 | if(mem != nullptr){ | ... | ... |
src/decoder/dvpp/VpcUtils.cpp
... | ... | @@ -539,7 +539,7 @@ vector<DvppDataMemory*> VpcUtils::crop_batch(DvppDataMemory* devMem, const vecto |
539 | 539 | uint32_t height_stride = acldvppGetPicDescHeightStride(vpcOutputDesc); |
540 | 540 | acldvppPixelFormat fmt = acldvppGetPicDescFormat(vpcOutputDesc); |
541 | 541 | |
542 | - DvppDataMemory* rgbMem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, devMem->getId(), devMem->getDeviceId(), false, devMem->getFrameNb(), (unsigned char *)outputDataDev, false); | |
542 | + DvppDataMemory* rgbMem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, devMem->getId(), devMem->getDeviceId(), false, devMem->getFrameNb(), (unsigned char *)outputDataDev); | |
543 | 543 | |
544 | 544 | vec_img_info.push_back(rgbMem); |
545 | 545 | } | ... | ... |
src/decoder/interface/interface_headers.h
... | ... | @@ -25,8 +25,6 @@ typedef void(*POST_DECODE_CALLBACK)(const void * userPtr, DeviceMemory* devFrame |
25 | 25 | |
26 | 26 | typedef void(*DECODE_FINISHED_CALLBACK)(const void* userPtr); |
27 | 27 | |
28 | -typedef bool(*DECODE_REQUEST_STREAM_CALLBACK)(const char* deviceId); | |
29 | - | |
30 | 28 | struct FFDecConfig{ |
31 | 29 | string uri; // 视频地址 |
32 | 30 | void * postDecArg {nullptr}; |
... | ... | @@ -38,10 +36,6 @@ struct FFDecConfig{ |
38 | 36 | int skip_frame{1}; // 跳帧数 |
39 | 37 | string dec_name; |
40 | 38 | bool resize{false}; // 是否resize到1920,1080 |
41 | - bool auto_road_parse{true} ; // 外部需要的 | |
42 | - | |
43 | - int port; // gb28181接收数据的端口号 | |
44 | - DECODE_REQUEST_STREAM_CALLBACK request_stream_cbk; // gb28181请求流 | |
45 | 39 | }; |
46 | 40 | |
47 | 41 | enum DECODER_TYPE{ | ... | ... |
src/demo/demo.cpp
... | ... | @@ -8,899 +8,6 @@ |
8 | 8 | |
9 | 9 | using namespace std; |
10 | 10 | |
11 | -#ifdef POST_USE_RABBITMQ | |
12 | - | |
13 | -void init_mq_conn(void *handle) { | |
14 | - for (auto key : {mq_type_t::ALARM_MQ, mq_type_t::GET_TASK_MQ, mq_type_t::HEART_BEAT_MQ, mq_type_t::SCREENSHORT_TASK_MQ, mq_type_t::TIMING_SCREENSHORT_TASK_MQ}) { | |
15 | - rabbitmq_conn_params_t mq_conn_params; | |
16 | - mq_conn_params.port = 5672; | |
17 | - | |
18 | - strcpy(mq_conn_params.ip, "192.168.60.126"); | |
19 | - strcpy(mq_conn_params.uname, "admin"); | |
20 | - strcpy(mq_conn_params.passwd, "123456"); | |
21 | - strcpy(mq_conn_params.vhost, "/"); | |
22 | - strcpy(mq_conn_params.exchange, "topExchange"); | |
23 | - strcpy(mq_conn_params.exchange_type, "topic"); | |
24 | - | |
25 | - // mq_conn_params.port = 5673; | |
26 | - // strcpy(mq_conn_params.ip, "192.168.10.187"); | |
27 | - // strcpy(mq_conn_params.uname, "admin"); | |
28 | - // strcpy(mq_conn_params.passwd, "admin123456"); | |
29 | - // strcpy(mq_conn_params.vhost, "/"); | |
30 | - // strcpy(mq_conn_params.exchange, "topExchange"); | |
31 | - // strcpy(mq_conn_params.exchange_type, "topic"); | |
32 | - | |
33 | - switch (key) { | |
34 | - case mq_type_t::ALARM_MQ: { | |
35 | - strcpy(mq_conn_params.queue, "topic.queue.alarm"); | |
36 | - strcpy(mq_conn_params.routing_key, "topic.queue.alarm.key"); | |
37 | - } break; | |
38 | - case mq_type_t::GET_TASK_MQ: { | |
39 | - strcpy(mq_conn_params.queue, "tsl.test.queue.get"); | |
40 | - strcpy(mq_conn_params.routing_key, "tsl.test.queue.get.key"); | |
41 | - } break; | |
42 | - case mq_type_t::HEART_BEAT_MQ: { | |
43 | - strcpy(mq_conn_params.queue, "tsl.test.queue.hb"); | |
44 | - strcpy(mq_conn_params.routing_key, "tsl.test.queue.hb.key"); | |
45 | - } break; | |
46 | - case mq_type_t::SCREENSHORT_TASK_MQ: { | |
47 | - strcpy(mq_conn_params.queue, "video.screenshort.queue.get"); | |
48 | - strcpy(mq_conn_params.routing_key, "video.screenshort.queue.key"); | |
49 | - } break; | |
50 | - case mq_type_t::TIMING_SCREENSHORT_TASK_MQ: { | |
51 | - strcpy(mq_conn_params.queue, "video.timingscreenshort.queue.get"); | |
52 | - strcpy(mq_conn_params.routing_key, "video.timingscreenshort.queue.key"); | |
53 | - } break; | |
54 | - } | |
55 | - | |
56 | - mq_conn_params.durable_exchange = true; | |
57 | - mq_conn_params.durable_queue = true; | |
58 | - | |
59 | - if (0 != add_mq_conn(handle, key, mq_conn_params)) // 队列走接口创建 | |
60 | - fprintf(stderr, "ip is %s port is %d\n", mq_conn_params.ip, mq_conn_params.port); | |
61 | - } | |
62 | -} | |
63 | - | |
64 | -#endif // #ifdef POST_USE_RABBITMQ | |
65 | - | |
66 | -void set_task_params(task_param &tparam, const unsigned &idx, const algorithm_type_t &algor_type) { | |
67 | - auto algor_init_params = new algor_init_config_param_t; | |
68 | - | |
69 | - switch (algor_type) { | |
70 | - | |
71 | - case algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET: { | |
72 | - auto algor_params = new algor_config_param_manned_incident; | |
73 | - { | |
74 | - algor_params->m = 10; | |
75 | - algor_params->n = 8; | |
76 | - algor_params->obj_confidence_threshold = 0.5f; | |
77 | - algor_params->obj_min_height = 6; | |
78 | - algor_params->obj_min_width = 32; | |
79 | - } | |
80 | - | |
81 | - auto basic_params = new algor_basic_config_param_t; | |
82 | - { | |
83 | - // basic_params->algor_valid_rect.top_ = 0; | |
84 | - // basic_params->algor_valid_rect.left_ = 0; | |
85 | - // basic_params->algor_valid_rect.width_ = 1920; | |
86 | - // basic_params->algor_valid_rect.height_ = 1080; | |
87 | - basic_params->video_folder = "res/video_recode"; | |
88 | - basic_params->result_folder = "res/motor_nohelmet"; | |
89 | - basic_params->result_folder_little = "res/motor_nohelmet_little"; | |
90 | - } | |
91 | - | |
92 | - algor_init_params->algor_param = algor_params; | |
93 | - algor_init_params->basic_param = basic_params; | |
94 | - } break; | |
95 | - | |
96 | - case algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN: { | |
97 | - auto algor_params = new algor_config_param_manned_incident; | |
98 | - { | |
99 | - algor_params->m = 10; | |
100 | - algor_params->n = 8; | |
101 | - algor_params->hs_count_threshold = 2; | |
102 | - algor_params->obj_confidence_threshold = 0.5f; | |
103 | - algor_params->obj_min_height = 6; | |
104 | - algor_params->obj_min_width = 32; | |
105 | - } | |
106 | - | |
107 | - auto basic_params = new algor_basic_config_param_t; | |
108 | - { | |
109 | - // basic_params->algor_valid_rect.top_ = 0; | |
110 | - // basic_params->algor_valid_rect.left_ = 0; | |
111 | - // basic_params->algor_valid_rect.width_ = 1920; | |
112 | - // basic_params->algor_valid_rect.height_ = 1080; | |
113 | - basic_params->video_folder = "res/video_recode"; | |
114 | - basic_params->result_folder = "res/motor_overman"; | |
115 | - basic_params->result_folder_little = "res/motor_overman_little"; | |
116 | - } | |
117 | - | |
118 | - algor_init_params->algor_param = algor_params; | |
119 | - algor_init_params->basic_param = basic_params; | |
120 | - } break; | |
121 | - | |
122 | - case algorithm_type_t::TRICYCLE_MANNED: { | |
123 | - auto algor_params = new algor_config_param_manned_incident; | |
124 | - { | |
125 | - algor_params->m = 10; | |
126 | - algor_params->n = 8; | |
127 | - algor_params->hs_count_threshold = 1; | |
128 | - algor_params->obj_confidence_threshold = 0.5f; | |
129 | - algor_params->obj_min_height = 6; | |
130 | - algor_params->obj_min_width = 32; | |
131 | - } | |
132 | - | |
133 | - auto basic_params = new algor_basic_config_param_t; | |
134 | - { | |
135 | - basic_params->video_folder = "res/video_recode"; | |
136 | - basic_params->result_folder = "res/tricycle_manned"; | |
137 | - basic_params->result_folder_little = "res/tricycle_manned_little"; | |
138 | - } | |
139 | - | |
140 | - algor_init_params->algor_param = algor_params; | |
141 | - algor_init_params->basic_param = basic_params; | |
142 | - } break; | |
143 | - | |
144 | - case algorithm_type_t::TRUCK_MANNED: { | |
145 | - auto algor_params = new algor_config_param_manned_incident; | |
146 | - { | |
147 | - // algor_params->m = 10; | |
148 | - // algor_params->n = 8; | |
149 | - algor_params->m = 5; | |
150 | - algor_params->n = 5; | |
151 | - algor_params->hs_count_threshold = 1; | |
152 | - algor_params->obj_confidence_threshold = 0.5f; | |
153 | - algor_params->obj_min_height = 6; | |
154 | - algor_params->obj_min_width = 32; | |
155 | - } | |
156 | - | |
157 | - auto basic_params = new algor_basic_config_param_t; | |
158 | - { | |
159 | - basic_params->video_folder = "res/video_recode"; | |
160 | - basic_params->result_folder = "res/truck_manned"; | |
161 | - basic_params->result_folder_little = "res/truck_manned_little"; | |
162 | - } | |
163 | - | |
164 | - algor_init_params->algor_param = algor_params; | |
165 | - algor_init_params->basic_param = basic_params; | |
166 | - } break; | |
167 | - | |
168 | - case algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE: { | |
169 | - auto algor_params = new algor_config_param_manned_incident; | |
170 | - { | |
171 | - algor_params->m = 10; | |
172 | - algor_params->n = 8; | |
173 | - algor_params->obj_confidence_threshold = 0.5f; | |
174 | - algor_params->obj_min_height = 75; | |
175 | - algor_params->obj_min_width = 51; | |
176 | - } | |
177 | - | |
178 | - auto basic_params = new algor_basic_config_param_t; | |
179 | - { | |
180 | - basic_params->video_folder = "res/video_recode"; | |
181 | - basic_params->result_folder = "res/motor_usephone"; | |
182 | - basic_params->result_folder_little = "res/motor_usephone_little"; | |
183 | - } | |
184 | - | |
185 | - algor_init_params->algor_param = algor_params; | |
186 | - algor_init_params->basic_param = basic_params; | |
187 | - } break; | |
188 | - | |
189 | - case algorithm_type_t::NONMOTOR_VEHICLE_REFIT: { | |
190 | - auto algor_params = new algor_config_param_manned_incident; | |
191 | - { | |
192 | - algor_params->m = 10; | |
193 | - algor_params->n = 8; | |
194 | - algor_params->obj_confidence_threshold = 0.5f; | |
195 | - algor_params->obj_min_height = 75; | |
196 | - algor_params->obj_min_width = 51; | |
197 | - } | |
198 | - | |
199 | - auto basic_params = new algor_basic_config_param_t; | |
200 | - { | |
201 | - basic_params->video_folder = "res/video_recode"; | |
202 | - basic_params->result_folder = "res/motor_refit"; | |
203 | - basic_params->result_folder_little = "res/motor_refit_little"; | |
204 | - } | |
205 | - | |
206 | - algor_init_params->algor_param = algor_params; | |
207 | - algor_init_params->basic_param = basic_params; | |
208 | - } break; | |
209 | - | |
210 | - case algorithm_type_t::PERSON_RUNNING_REDLIGHTS: { | |
211 | - auto algor_params = new algor_config_param_manned_incident; | |
212 | - { | |
213 | - algor_params->m = 10; | |
214 | - algor_params->n = 8; | |
215 | - algor_params->hs_count_threshold = 1; | |
216 | - algor_params->obj_confidence_threshold = 0.5f; | |
217 | - algor_params->obj_min_height = 6; | |
218 | - algor_params->obj_min_width = 32; | |
219 | - } | |
220 | - | |
221 | - auto basic_params = new algor_basic_config_param_t; | |
222 | - { | |
223 | - basic_params->video_folder = "res/video_recode"; | |
224 | - basic_params->result_folder = "res/person_runred"; | |
225 | - basic_params->result_folder_little = "res/person_runred_little"; | |
226 | - } | |
227 | - | |
228 | - algor_init_params->algor_param = algor_params; | |
229 | - algor_init_params->basic_param = basic_params; | |
230 | - } break; | |
231 | - | |
232 | - case algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS: { | |
233 | - auto algor_params = new algor_config_param_manned_incident; | |
234 | - { | |
235 | - algor_params->m = 10; | |
236 | - algor_params->n = 8; | |
237 | - algor_params->hs_count_threshold = 0; | |
238 | - algor_params->obj_confidence_threshold = 0.5f; | |
239 | - algor_params->obj_min_height = 6; | |
240 | - algor_params->obj_min_width = 32; | |
241 | - } | |
242 | - | |
243 | - auto basic_params = new algor_basic_config_param_t; | |
244 | - { | |
245 | - basic_params->video_folder = "res/video_recode"; | |
246 | - basic_params->result_folder = "res/motor_runred"; | |
247 | - basic_params->result_folder_little = "res/motor_runred_little"; | |
248 | - } | |
249 | - | |
250 | - algor_init_params->algor_param = algor_params; | |
251 | - algor_init_params->basic_param = basic_params; | |
252 | - } break; | |
253 | - | |
254 | - case algorithm_type_t::PERSON_IN_VEHICLELANE: { | |
255 | - auto algor_params = new algor_config_param_manned_incident; | |
256 | - { | |
257 | - algor_params->m = 10; | |
258 | - algor_params->n = 8; | |
259 | - algor_params->obj_confidence_threshold = 0.5f; | |
260 | - algor_params->obj_min_height = 6; | |
261 | - algor_params->obj_min_width = 32; | |
262 | - } | |
263 | - | |
264 | - auto basic_params = new algor_basic_config_param_t; | |
265 | - { | |
266 | - basic_params->video_folder = "res/video_recode"; | |
267 | - basic_params->result_folder = "res/person_vehiclelane"; | |
268 | - basic_params->result_folder_little = "res/person_vehiclelane_little"; | |
269 | - } | |
270 | - | |
271 | - algor_init_params->algor_param = algor_params; | |
272 | - algor_init_params->basic_param = basic_params; | |
273 | - } break; | |
274 | - | |
275 | - case algorithm_type_t::NONMOTOR_IN_VEHICLELANE: { | |
276 | - auto algor_params = new algor_config_param_manned_incident; | |
277 | - { | |
278 | - algor_params->m = 10; | |
279 | - algor_params->n = 8; | |
280 | - algor_params->obj_confidence_threshold = 0.5f; | |
281 | - algor_params->obj_min_height = 6; | |
282 | - algor_params->obj_min_width = 32; | |
283 | - } | |
284 | - | |
285 | - auto basic_params = new algor_basic_config_param_t; | |
286 | - { | |
287 | - basic_params->video_folder = "res/video_recode"; | |
288 | - basic_params->result_folder = "res/motor_vehiclelane"; | |
289 | - basic_params->result_folder_little = "res/motor_vehiclelane_little"; | |
290 | - } | |
291 | - | |
292 | - algor_init_params->algor_param = algor_params; | |
293 | - algor_init_params->basic_param = basic_params; | |
294 | - } break; | |
295 | - | |
296 | - case algorithm_type_t::NONMOTOR_CEOSSPARKLINE: { | |
297 | - auto algor_params = new algor_config_param_manned_incident; | |
298 | - { | |
299 | - algor_params->m = 10; | |
300 | - algor_params->n = 8; | |
301 | - algor_params->obj_confidence_threshold = 0.5f; | |
302 | - algor_params->obj_min_height = 6; | |
303 | - algor_params->obj_min_width = 32; | |
304 | - } | |
305 | - | |
306 | - auto basic_params = new algor_basic_config_param_t; | |
307 | - { | |
308 | - basic_params->video_folder = "res/video_recode"; | |
309 | - basic_params->result_folder = "res/motor_crossparkline"; | |
310 | - basic_params->result_folder_little = "res/motor_crossparkline_little"; | |
311 | - } | |
312 | - | |
313 | - algor_init_params->algor_param = algor_params; | |
314 | - algor_init_params->basic_param = basic_params; | |
315 | - } break; | |
316 | - | |
317 | - case algorithm_type_t::PERSON_CROSS: { | |
318 | - auto algor_params = new algor_config_param_manned_incident; | |
319 | - { | |
320 | - algor_params->m = 10; | |
321 | - algor_params->n = 8; | |
322 | - algor_params->obj_confidence_threshold = 0.5f; | |
323 | - algor_params->obj_min_height = 6; | |
324 | - algor_params->obj_min_width = 32; | |
325 | - } | |
326 | - | |
327 | - auto basic_params = new algor_basic_config_param_t; | |
328 | - { | |
329 | - basic_params->video_folder = "res/video_recode"; | |
330 | - basic_params->result_folder = "res/person_cross"; | |
331 | - basic_params->result_folder_little = "res/person_cross_little"; | |
332 | - } | |
333 | - | |
334 | - algor_init_params->algor_param = algor_params; | |
335 | - algor_init_params->basic_param = basic_params; | |
336 | - } break; | |
337 | - | |
338 | - case algorithm_type_t::NONMOTOR_WRONGDIRECTION: { | |
339 | - auto algor_params = new algor_config_param_manned_incident; | |
340 | - { | |
341 | - algor_params->m = 10; | |
342 | - algor_params->n = 8; | |
343 | - algor_params->obj_confidence_threshold = 0.5f; | |
344 | - algor_params->obj_min_height = 6; | |
345 | - algor_params->obj_min_width = 32; | |
346 | - } | |
347 | - | |
348 | - auto basic_params = new algor_basic_config_param_t; | |
349 | - { | |
350 | - basic_params->video_folder = "res/video_recode"; | |
351 | - basic_params->result_folder = "res/motor_wrongdirection"; | |
352 | - basic_params->result_folder_little = "res/motor_wrongdirection_little"; | |
353 | - } | |
354 | - | |
355 | - algor_init_params->algor_param = algor_params; | |
356 | - algor_init_params->basic_param = basic_params; | |
357 | - } break; | |
358 | - | |
359 | - case algorithm_type_t::VEHICLE_WRONGDIRECTION: { | |
360 | - auto algor_params = new algor_config_param_manned_incident; | |
361 | - { | |
362 | - algor_params->m = 5; | |
363 | - algor_params->n = 5; | |
364 | - algor_params->obj_confidence_threshold = 0.5f; | |
365 | - algor_params->obj_min_height = 60; | |
366 | - algor_params->obj_min_width = 60; | |
367 | - } | |
368 | - | |
369 | - auto basic_params = new algor_basic_config_param_t; | |
370 | - { | |
371 | - basic_params->video_folder = "res/video_recode"; | |
372 | - basic_params->result_folder = "res/vehicle_wrongdirection"; | |
373 | - basic_params->result_folder_little = "res/vehicle_wrongdirection_little"; | |
374 | - } | |
375 | - | |
376 | - algor_init_params->algor_param = algor_params; | |
377 | - algor_init_params->basic_param = basic_params; | |
378 | - } break; | |
379 | - | |
380 | - case algorithm_type_t::VEHICLE_NOTGIVEWAY: { | |
381 | - auto algor_params = new algor_config_param_manned_incident; | |
382 | - { | |
383 | - algor_params->m = 10; | |
384 | - algor_params->n = 8; | |
385 | - algor_params->obj_confidence_threshold = 0.5f; | |
386 | - algor_params->obj_min_height = 40; | |
387 | - algor_params->obj_min_width = 40; | |
388 | - } | |
389 | - | |
390 | - auto basic_params = new algor_basic_config_param_t; | |
391 | - { | |
392 | - basic_params->video_folder = "res/video_recode"; | |
393 | - basic_params->result_folder = "res/vehicle_notgiveway"; | |
394 | - basic_params->result_folder_little = "res/vehicle_notgiveway_little"; | |
395 | - } | |
396 | - | |
397 | - algor_init_params->algor_param = algor_params; | |
398 | - algor_init_params->basic_param = basic_params; | |
399 | - } break; | |
400 | - | |
401 | - case algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND: { | |
402 | - auto algor_params = new algor_config_param_manned_incident; | |
403 | - { | |
404 | - algor_params->m = 10; | |
405 | - algor_params->n = 8; | |
406 | - algor_params->obj_confidence_threshold = 0.5f; | |
407 | - algor_params->obj_min_height = 40; | |
408 | - algor_params->obj_min_width = 40; | |
409 | - } | |
410 | - | |
411 | - auto basic_params = new algor_basic_config_param_t; | |
412 | - { | |
413 | - basic_params->video_folder = "res/video_recode"; | |
414 | - basic_params->result_folder = "res/vehicle_solid_turnaround"; | |
415 | - basic_params->result_folder_little = "res/vehicle_solid_turnaround_little"; | |
416 | - } | |
417 | - | |
418 | - algor_init_params->algor_param = algor_params; | |
419 | - algor_init_params->basic_param = basic_params; | |
420 | - } break; | |
421 | - | |
422 | - case algorithm_type_t::VEHICLE_NOTDECELERATION: { | |
423 | - auto algor_params = new algor_config_param_manned_incident; | |
424 | - { | |
425 | - algor_params->m = 10; | |
426 | - algor_params->n = 8; | |
427 | - algor_params->obj_confidence_threshold = 0.5f; | |
428 | - algor_params->obj_min_height = 40; | |
429 | - algor_params->obj_min_width = 40; | |
430 | - } | |
431 | - | |
432 | - auto basic_params = new algor_basic_config_param_t; | |
433 | - { | |
434 | - basic_params->video_folder = "res/video_recode"; | |
435 | - basic_params->result_folder = "res/vehicle_not_deceleration"; | |
436 | - basic_params->result_folder_little = "res/vehicle_not_deceleration_little"; | |
437 | - } | |
438 | - | |
439 | - algor_init_params->algor_param = algor_params; | |
440 | - algor_init_params->basic_param = basic_params; | |
441 | - } break; | |
442 | - | |
443 | - | |
444 | - case algorithm_type_t::FACE_SNAPSHOT: { | |
445 | - auto basic_params = new algor_basic_config_param_t; | |
446 | - { | |
447 | - basic_params->algor_valid_rect.top_ = 0; | |
448 | - basic_params->algor_valid_rect.left_ = 0; | |
449 | - basic_params->algor_valid_rect.width_ = 1920; | |
450 | - basic_params->algor_valid_rect.height_ = 1080; | |
451 | - | |
452 | - basic_params->result_folder = "res/face"; | |
453 | - basic_params->result_folder_little = "res/face_little"; | |
454 | - } | |
455 | - auto algor_params = new algor_config_param_snapshot; | |
456 | - { algor_params->threshold = 0.5f; } | |
457 | - | |
458 | - algor_init_params->algor_param = algor_params; | |
459 | - algor_init_params->basic_param = basic_params; | |
460 | - } break; | |
461 | - | |
462 | - case algorithm_type_t::HUMAN_SNAPSHOT: { | |
463 | - auto basic_params = new algor_basic_config_param_t; | |
464 | - { | |
465 | - basic_params->algor_valid_rect.top_ = 0; | |
466 | - basic_params->algor_valid_rect.left_ = 0; | |
467 | - basic_params->algor_valid_rect.width_ = 1920; | |
468 | - basic_params->algor_valid_rect.height_ = 1080; | |
469 | - | |
470 | - basic_params->result_folder = "res/human"; | |
471 | - basic_params->result_folder_little = "res/human_little"; | |
472 | - } | |
473 | - auto algor_params = new algor_config_param_snapshot; | |
474 | - { algor_params->threshold = 0.5f; } | |
475 | - | |
476 | - algor_init_params->algor_param = algor_params; | |
477 | - algor_init_params->basic_param = basic_params; | |
478 | - } break; | |
479 | - | |
480 | - case algorithm_type_t::PEDESTRIAN_FALL: { | |
481 | - auto algor_params = new algor_config_param_pedestrian_fall; | |
482 | - { algor_params->threshold = 0.7f; } | |
483 | - | |
484 | - auto basic_params = new algor_basic_config_param_t; | |
485 | - { | |
486 | - basic_params->algor_valid_rect.top_ = 0; | |
487 | - basic_params->algor_valid_rect.left_ = 0; | |
488 | - basic_params->algor_valid_rect.width_ = 1920; | |
489 | - basic_params->algor_valid_rect.height_ = 1080; | |
490 | - | |
491 | - basic_params->result_folder = "res/fall"; | |
492 | - basic_params->result_folder_little = "res/fall_little"; | |
493 | - } | |
494 | - | |
495 | - algor_init_params->algor_param = algor_params; | |
496 | - algor_init_params->basic_param = basic_params; | |
497 | - } break; | |
498 | - | |
499 | - case algorithm_type_t::PEDESTRIAN_FIGHT: { | |
500 | - auto algor_params = new algor_config_param_pedestrian_fight; | |
501 | - { | |
502 | - algor_params->threshold = 0.7f; | |
503 | - algor_params->iou_threshold = 0.1f; | |
504 | - } | |
505 | - | |
506 | - auto basic_params = new algor_basic_config_param_t; | |
507 | - { | |
508 | - | |
509 | - basic_params->algor_valid_rect.top_ = 0; | |
510 | - basic_params->algor_valid_rect.left_ = 0; | |
511 | - basic_params->algor_valid_rect.width_ = 1920; | |
512 | - basic_params->algor_valid_rect.height_ = 1080; | |
513 | - basic_params->result_folder = "res/fight"; | |
514 | - basic_params->result_folder_little = "res/fight_little"; | |
515 | - } | |
516 | - | |
517 | - algor_init_params->algor_param = algor_params; | |
518 | - algor_init_params->basic_param = basic_params; | |
519 | - } break; | |
520 | - | |
521 | - case algorithm_type_t::HUMAN_GATHER: { | |
522 | - | |
523 | - auto algor_params = new algor_config_param_human_gather; | |
524 | - { | |
525 | - algor_params->frame_stride = 1; | |
526 | - // algor_params->human_count_threshold = 3; | |
527 | - algor_params->human_count_threshold = 1; | |
528 | - } | |
529 | - | |
530 | - auto basic_params = new algor_basic_config_param_t; | |
531 | - { | |
532 | - basic_params->algor_valid_rect.top_ = 0; | |
533 | - basic_params->algor_valid_rect.left_ = 0; | |
534 | - basic_params->algor_valid_rect.width_ = 1920; | |
535 | - basic_params->algor_valid_rect.height_ = 1080; | |
536 | - basic_params->result_folder = "res/gather"; | |
537 | - basic_params->result_folder_little = "res/gather_little"; | |
538 | - } | |
539 | - | |
540 | - algor_init_params->algor_param = algor_params; | |
541 | - algor_init_params->basic_param = basic_params; | |
542 | - } break; | |
543 | - | |
544 | - case algorithm_type_t::NO_REFLECTIVE_CLOTHING: { | |
545 | - auto algor_params = new algor_config_param_no_reflective_clothing; | |
546 | - { | |
547 | - algor_params->conf_threshold = 0.3f; | |
548 | - algor_params->m = 10; | |
549 | - algor_params->n = 6; | |
550 | - algor_params->pedestrian_confidence_threshold = 0.3f; | |
551 | - algor_params->pedestrian_min_height = 0; | |
552 | - algor_params->pedestrian_min_width = 0; | |
553 | - } | |
554 | - | |
555 | - auto basic_params = new algor_basic_config_param_t; | |
556 | - { | |
557 | - basic_params->algor_valid_rect.top_ = 0; | |
558 | - basic_params->algor_valid_rect.left_ = 0; | |
559 | - basic_params->algor_valid_rect.width_ = 1920; | |
560 | - basic_params->algor_valid_rect.height_ = 1080; | |
561 | - basic_params->result_folder = "res/no_reflective_clothing"; | |
562 | - basic_params->result_folder_little = "res/no_reflective_clothing_little"; | |
563 | - } | |
564 | - | |
565 | - algor_init_params->algor_param = algor_params; | |
566 | - algor_init_params->basic_param = basic_params; | |
567 | - } break; | |
568 | - | |
569 | - case algorithm_type_t::NO_SAFETY_HELMET: { | |
570 | - auto algor_params = new algor_config_param_no_safety_helmet; | |
571 | - { | |
572 | - algor_params->conf_threshold = 0.3f; | |
573 | - algor_params->m = 10; | |
574 | - algor_params->n = 6; | |
575 | - algor_params->pedestrian_confidence_threshold = 0.3f; | |
576 | - algor_params->pedestrian_min_height = 0; | |
577 | - algor_params->pedestrian_min_width = 0; | |
578 | - } | |
579 | - | |
580 | - auto basic_params = new algor_basic_config_param_t; | |
581 | - { | |
582 | - basic_params->algor_valid_rect.top_ = 0; | |
583 | - basic_params->algor_valid_rect.left_ = 0; | |
584 | - basic_params->algor_valid_rect.width_ = 1920; | |
585 | - basic_params->algor_valid_rect.height_ = 1080; | |
586 | - basic_params->result_folder = "res/no_safety_helmet"; | |
587 | - basic_params->result_folder_little = "res/no_safety_helmet_little"; | |
588 | - } | |
589 | - | |
590 | - algor_init_params->algor_param = algor_params; | |
591 | - algor_init_params->basic_param = basic_params; | |
592 | - } break; | |
593 | - | |
594 | - case algorithm_type_t::CALL_PHONE_DET: { | |
595 | - auto algor_params = new algor_config_param_call_phone; | |
596 | - { | |
597 | - algor_params->conf_threshold = 0.3f; | |
598 | - algor_params->m = 2; | |
599 | - algor_params->n = 1; | |
600 | - algor_params->pedestrian_confidence_threshold = 0.1f; | |
601 | - algor_params->pedestrian_min_height = 0; | |
602 | - algor_params->pedestrian_min_width = 0; | |
603 | - } | |
604 | - | |
605 | - auto basic_params = new algor_basic_config_param_t; | |
606 | - { | |
607 | - basic_params->algor_valid_rect.top_ = 0; | |
608 | - basic_params->algor_valid_rect.left_ = 0; | |
609 | - basic_params->algor_valid_rect.width_ = 1920; | |
610 | - basic_params->algor_valid_rect.height_ = 1080; | |
611 | - basic_params->result_folder = "res/call_phone"; | |
612 | - basic_params->result_folder_little = "res/call_phone_little"; | |
613 | - } | |
614 | - | |
615 | - algor_init_params->algor_param = algor_params; | |
616 | - algor_init_params->basic_param = basic_params; | |
617 | - } break; | |
618 | - | |
619 | - case algorithm_type_t::SMOKING_DET: { | |
620 | - auto algor_params = new algor_config_param_smoking; | |
621 | - { | |
622 | - algor_params->conf_threshold = 0.3f; | |
623 | - algor_params->m = 10; | |
624 | - algor_params->n = 1; | |
625 | - algor_params->pedestrian_confidence_threshold = 0.3f; | |
626 | - algor_params->pedestrian_min_height = 0; | |
627 | - algor_params->pedestrian_min_width = 0; | |
628 | - } | |
629 | - | |
630 | - auto basic_params = new algor_basic_config_param_t; | |
631 | - { | |
632 | - basic_params->algor_valid_rect.top_ = 0; | |
633 | - basic_params->algor_valid_rect.left_ = 0; | |
634 | - basic_params->algor_valid_rect.width_ = 1920; | |
635 | - basic_params->algor_valid_rect.height_ = 1080; | |
636 | - basic_params->result_folder = "res/smoking"; | |
637 | - basic_params->result_folder_little = "res/smoking_little"; | |
638 | - } | |
639 | - | |
640 | - algor_init_params->algor_param = algor_params; | |
641 | - algor_init_params->basic_param = basic_params; | |
642 | - } break; | |
643 | - | |
644 | - case algorithm_type_t::VEHICLE_SNAPSHOT: { | |
645 | - | |
646 | - auto basic_params = new algor_basic_config_param_t; | |
647 | - { | |
648 | - basic_params->algor_valid_rect.top_ = 0; | |
649 | - basic_params->algor_valid_rect.left_ = 0; | |
650 | - basic_params->algor_valid_rect.width_ = 1920; | |
651 | - basic_params->algor_valid_rect.height_ = 1080; | |
652 | - basic_params->result_folder = "res/vehicle"; | |
653 | - basic_params->result_folder_little = "res/vehicle_little"; | |
654 | - } | |
655 | - | |
656 | - auto algor_params = new algor_config_param_snapshot; | |
657 | - algor_params->threshold = 0.5f; | |
658 | - algor_params->snap_frame_interval = 5; | |
659 | - | |
660 | - algor_init_params->algor_param = algor_params; | |
661 | - algor_init_params->basic_param = basic_params; | |
662 | - } break; | |
663 | - | |
664 | - case algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT: { | |
665 | - | |
666 | - auto basic_params = new algor_basic_config_param_t; | |
667 | - { | |
668 | - basic_params->algor_valid_rect.top_ = 0; | |
669 | - basic_params->algor_valid_rect.left_ = 0; | |
670 | - basic_params->algor_valid_rect.width_ = 1920; | |
671 | - basic_params->algor_valid_rect.height_ = 1080; | |
672 | - basic_params->result_folder = "res/nonmotor"; | |
673 | - basic_params->result_folder_little = "res/nonmotor_little"; | |
674 | - } | |
675 | - | |
676 | - auto algor_params = new algor_config_param_snapshot; | |
677 | - { algor_params->threshold = 0.5f; } | |
678 | - | |
679 | - algor_init_params->algor_param = algor_params; | |
680 | - algor_init_params->basic_param = basic_params; | |
681 | - } break; | |
682 | - | |
683 | - case algorithm_type_t::TAKEAWAY_MEMBER_CLASSIFICATION: { | |
684 | - auto algor_params = new algor_config_param_takeaway_member_classification; | |
685 | - { | |
686 | - algor_params->m = 10; | |
687 | - algor_params->n = 2; | |
688 | - algor_params->threshold = 0.7f; | |
689 | - } | |
690 | - | |
691 | - auto basic_params = new algor_basic_config_param_t; | |
692 | - { | |
693 | - basic_params->algor_valid_rect.top_ = 0; | |
694 | - basic_params->algor_valid_rect.left_ = 0; | |
695 | - basic_params->algor_valid_rect.width_ = 1920; | |
696 | - basic_params->algor_valid_rect.height_ = 1080; | |
697 | - basic_params->result_folder = "res/takeaway"; | |
698 | - basic_params->result_folder_little = "res/takeaway_little"; | |
699 | - } | |
700 | - | |
701 | - algor_init_params->algor_param = algor_params; | |
702 | - algor_init_params->basic_param = basic_params; | |
703 | - } break; | |
704 | - | |
705 | - case algorithm_type_t::PEDESTRIAN_RETROGRADE: { | |
706 | - // 578 1300 600 | |
707 | - auto algor_params = new algor_config_param_pedestrian_retrograde; | |
708 | - { | |
709 | - algor_params->conf_threshold = 0.5f; | |
710 | - algor_params->minmum_height = 10; | |
711 | - algor_params->minmum_width = 10; | |
712 | - algor_params->direction = 0; | |
713 | - | |
714 | - algor_params->px1 = 578; | |
715 | - algor_params->py1 = 600; | |
716 | - | |
717 | - algor_params->px2 = 1300; | |
718 | - algor_params->py2 = 600; | |
719 | - } | |
720 | - | |
721 | - auto basic_params = new algor_basic_config_param_t; | |
722 | - { | |
723 | - basic_params->algor_valid_rect.top_ = 0; | |
724 | - basic_params->algor_valid_rect.left_ = 0; | |
725 | - basic_params->algor_valid_rect.width_ = 1920; | |
726 | - basic_params->algor_valid_rect.height_ = 1080; | |
727 | - basic_params->result_folder = "res/pedestrian_retrograde"; | |
728 | - basic_params->result_folder_little = "res/pedestrian_retrograde_little"; | |
729 | - } | |
730 | - | |
731 | - algor_init_params->algor_param = algor_params; | |
732 | - algor_init_params->basic_param = basic_params; | |
733 | - | |
734 | - } break; | |
735 | - | |
736 | - case algorithm_type_t::VEHICLE_RETROGRADE: { | |
737 | - // 578 1300 600 | |
738 | - auto algor_params = new algor_config_param_pedestrian_retrograde; | |
739 | - { | |
740 | - algor_params->conf_threshold = 0.5f; | |
741 | - algor_params->minmum_height = 10; | |
742 | - algor_params->minmum_width = 10; | |
743 | - algor_params->direction = 0; | |
744 | - | |
745 | - algor_params->px1 = 578; | |
746 | - algor_params->py1 = 600; | |
747 | - | |
748 | - algor_params->px2 = 1300; | |
749 | - algor_params->py2 = 600; | |
750 | - } | |
751 | - | |
752 | - auto basic_params = new algor_basic_config_param_t; | |
753 | - { | |
754 | - basic_params->algor_valid_rect.top_ = 0; | |
755 | - | |
756 | - basic_params->algor_valid_rect.left_ = 0; | |
757 | - basic_params->algor_valid_rect.width_ = 1920; | |
758 | - basic_params->algor_valid_rect.height_ = 1080; | |
759 | - basic_params->result_folder = "res/vehicle_retrograde"; | |
760 | - basic_params->result_folder_little = "res/vehicle_retrograde_little"; | |
761 | - } | |
762 | - | |
763 | - algor_init_params->algor_param = algor_params; | |
764 | - algor_init_params->basic_param = basic_params; | |
765 | - | |
766 | - } break; | |
767 | - | |
768 | - case algorithm_type_t::PEDESTRIAN_TRESPASS: { | |
769 | - // 578 1300 600 | |
770 | - auto algor_params = new algor_config_param_pedestrian_trespass; | |
771 | - { | |
772 | - algor_params->conf_threshold = 0.5f; | |
773 | - algor_params->minmum_height = 64; | |
774 | - algor_params->minmum_width = 32; | |
775 | - algor_params->points_count = 4; | |
776 | - | |
777 | - algor_params->points[0].x_ = 200; | |
778 | - algor_params->points[0].y_ = 200; | |
779 | - | |
780 | - algor_params->points[1].x_ = 600; | |
781 | - algor_params->points[1].y_ = 200; | |
782 | - | |
783 | - algor_params->points[2].x_ = 600; | |
784 | - algor_params->points[2].y_ = 500; | |
785 | - | |
786 | - algor_params->points[3].x_ = 200; | |
787 | - algor_params->points[3].y_ = 500; | |
788 | - } | |
789 | - | |
790 | - auto basic_params = new algor_basic_config_param_t; | |
791 | - { | |
792 | - basic_params->algor_valid_rect.top_ = 0; | |
793 | - basic_params->algor_valid_rect.left_ = 0; | |
794 | - basic_params->algor_valid_rect.width_ = 1920; | |
795 | - basic_params->algor_valid_rect.height_ = 1080; | |
796 | - basic_params->result_folder = "res/pedestrian_trespass"; | |
797 | - basic_params->result_folder_little = "res/pedestrian_trespass_little"; | |
798 | - } | |
799 | - | |
800 | - algor_init_params->algor_param = algor_params; | |
801 | - algor_init_params->basic_param = basic_params; | |
802 | - | |
803 | - } break; | |
804 | - | |
805 | - case algorithm_type_t::VEHICLE_TRESPASS: { | |
806 | - // 578 1300 600 | |
807 | - auto algor_params = new algor_config_param_vehicle_trespass; | |
808 | - { | |
809 | - algor_params->conf_threshold = 0.5f; | |
810 | - algor_params->minmum_height = 64; | |
811 | - algor_params->minmum_width = 64; | |
812 | - algor_params->points_count = 4; | |
813 | - | |
814 | - algor_params->points[0].x_ = 500; | |
815 | - algor_params->points[0].y_ = 500; | |
816 | - | |
817 | - algor_params->points[1].x_ = 1500; | |
818 | - algor_params->points[1].y_ = 500; | |
819 | - | |
820 | - algor_params->points[2].x_ = 1500; | |
821 | - algor_params->points[2].y_ = 900; | |
822 | - | |
823 | - algor_params->points[3].x_ = 500; | |
824 | - algor_params->points[3].y_ = 900; | |
825 | - } | |
826 | - | |
827 | - auto basic_params = new algor_basic_config_param_t; | |
828 | - { | |
829 | - basic_params->algor_valid_rect.top_ = 0; | |
830 | - basic_params->algor_valid_rect.left_ = 0; | |
831 | - basic_params->algor_valid_rect.width_ = 1920; | |
832 | - basic_params->algor_valid_rect.height_ = 1080; | |
833 | - basic_params->result_folder = "res/vehicle_trespass"; | |
834 | - basic_params->result_folder_little = "res/vehicle_trespass_little"; | |
835 | - } | |
836 | - | |
837 | - algor_init_params->algor_param = algor_params; | |
838 | - algor_init_params->basic_param = basic_params; | |
839 | - | |
840 | - } break; | |
841 | - | |
842 | - case algorithm_type_t::VIDEO_SNAPSHOT: { | |
843 | - auto basic_params = new algor_basic_config_param_t; | |
844 | - { basic_params->result_folder = "res/video_snapshot"; } | |
845 | - algor_init_params->basic_param = basic_params; | |
846 | - } break; | |
847 | - | |
848 | - | |
849 | - case algorithm_type_t::ROAD_WORK_DET: { | |
850 | - | |
851 | - auto algor_params = new algor_config_param_road_work; | |
852 | - { | |
853 | - algor_params->frame_stride = 5; | |
854 | - algor_params->rblock_count_threshold = 3; | |
855 | - // algor_params->frame_stride = 1; | |
856 | - // algor_params->rblock_count_threshold = 1; | |
857 | - } | |
858 | - | |
859 | - auto basic_params = new algor_basic_config_param_t; | |
860 | - { | |
861 | - basic_params->algor_valid_rect.top_ = 0; | |
862 | - basic_params->algor_valid_rect.left_ = 0; | |
863 | - // basic_params->algor_valid_rect.width_ = 1920; | |
864 | - // basic_params->algor_valid_rect.height_ = 1080; | |
865 | - basic_params->algor_valid_rect.width_ = 2560; | |
866 | - basic_params->algor_valid_rect.height_ = 1440; | |
867 | - basic_params->result_folder = "res/road_work"; | |
868 | - basic_params->result_folder_little = "res/road_work_little"; | |
869 | - } | |
870 | - | |
871 | - algor_init_params->algor_param = algor_params; | |
872 | - algor_init_params->basic_param = basic_params; | |
873 | - } break; | |
874 | - | |
875 | - case algorithm_type_t::VIDEO_TIMING_SNAPSHOT: { | |
876 | - | |
877 | - auto algor_params = new algor_config_param_road_work; | |
878 | - { | |
879 | - algor_params->frame_stride = 1; | |
880 | - } | |
881 | - | |
882 | - auto basic_params = new algor_basic_config_param_t; | |
883 | - { | |
884 | - basic_params->result_folder = "res/video_timing_snapshot"; | |
885 | - } | |
886 | - | |
887 | - algor_init_params->algor_param = algor_params; | |
888 | - algor_init_params->basic_param = basic_params; | |
889 | - } break; | |
890 | - | |
891 | - default: { | |
892 | - if (algor_init_params != nullptr) { | |
893 | - delete algor_init_params; | |
894 | - algor_init_params = nullptr; | |
895 | - } | |
896 | - return; | |
897 | - } break; | |
898 | - } | |
899 | - | |
900 | - tparam.algor_config_params[idx].algor_type = algor_type; | |
901 | - tparam.algor_config_params[idx].algor_init_config_param = algor_init_params; | |
902 | - | |
903 | -} | |
904 | 11 | |
905 | 12 | static long long get_cur_time(){ |
906 | 13 | chrono::time_point<chrono::system_clock, chrono::milliseconds> tpMicro |
... | ... | @@ -908,285 +15,162 @@ static long long get_cur_time(){ |
908 | 15 | return tpMicro.time_since_epoch().count(); |
909 | 16 | } |
910 | 17 | |
911 | -static int nTaskId = 0; | |
912 | - | |
913 | -string createTask(void *handle, std::vector<algorithm_type_t> algor_vec, int gi, bool bFlag = true){ | |
914 | - task_param tparam; | |
915 | - | |
18 | +string get_ipc_url(int gi){ | |
19 | + string ipc_url = "/data/share/data/Street.uvf"; | |
916 | 20 | switch(gi){ |
917 | 21 | case 0: |
918 | - tparam.ipc_url = "rtsp://admin:admin@123456@192.168.60.176:554/cam/realmonitor?channel=1&subtype=0"; | |
22 | + ipc_url = "rtsp://admin:admin@123456@192.168.60.176:554/cam/realmonitor?channel=1&subtype=0"; | |
919 | 23 | break; |
920 | 24 | case 1: |
921 | - tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; | |
25 | + ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; | |
922 | 26 | break; |
923 | 27 | case 2: |
924 | - tparam.ipc_url = "rtsp://admin:ad123456@192.168.10.166:554/cam/realmonitor?channel=1&subtype=0"; | |
28 | + ipc_url = "rtsp://admin:ad123456@192.168.10.166:554/cam/realmonitor?channel=1&subtype=0"; | |
925 | 29 | break; |
926 | 30 | case 3: |
927 | - tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ=="; | |
928 | - // tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; | |
31 | + ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ=="; | |
32 | + // ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; | |
929 | 33 | break; |
930 | 34 | case 4: |
931 | - tparam.ipc_url = "/data/share/data/Street.uvf"; | |
35 | + ipc_url = "/data/share/data/Street.uvf"; | |
932 | 36 | break; |
933 | 37 | case 5: |
934 | - tparam.ipc_url = "/data/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; | |
38 | + ipc_url = "/data/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; | |
935 | 39 | break; |
936 | 40 | case 6: |
937 | - tparam.ipc_url = "/data/share/data/不带头盔2.mp4"; | |
41 | + ipc_url = "/data/share/data/不带头盔2.mp4"; | |
938 | 42 | break; |
939 | 43 | case 7: |
940 | - tparam.ipc_url = "/data/share/data/hczr1.mp4"; | |
44 | + ipc_url = "/data/share/data/hczr1.mp4"; | |
941 | 45 | break; |
942 | 46 | case 8: |
943 | - tparam.ipc_url = "/data/share/data/燕高路口高点_CVR_2015-12-30_09-00-00_2015-12-30.mp4"; | |
47 | + ipc_url = "/data/share/data/燕高路口高点_CVR_2015-12-30_09-00-00_2015-12-30.mp4"; | |
944 | 48 | break; |
945 | 49 | case 9: |
946 | - // tparam.ipc_url = "/opt/share/data/1-00000002d55_h265.mp4"; | |
947 | - tparam.ipc_url = "/data/share/data/duan1.mp4"; | |
50 | + // ipc_url = "/opt/share/data/1-00000002d55_h265.mp4"; | |
51 | + ipc_url = "/data/share/data/duan1.mp4"; | |
948 | 52 | break; |
949 | 53 | case 10: |
950 | - tparam.ipc_url = "/data/share/data/gs1-00000001.mp4"; | |
54 | + ipc_url = "/data/share/data/gs1-00000001.mp4"; | |
951 | 55 | break; |
952 | 56 | case 11: |
953 | - tparam.ipc_url = "/data/share/data/98.mp4"; | |
57 | + ipc_url = "/data/share/data/98.mp4"; | |
954 | 58 | break; |
955 | 59 | case 12: |
956 | - tparam.ipc_url = "/data/share/data/AV_12345_1_20230108110849847_D_1673147329847729.mp4"; | |
60 | + ipc_url = "/data/share/data/AV_12345_1_20230108110849847_D_1673147329847729.mp4"; | |
957 | 61 | break; |
958 | 62 | case 13: |
959 | - tparam.ipc_url = "/data/share/data/nx_1-00000002.mp4"; | |
63 | + ipc_url = "/data/share/data/nx_1-00000002.mp4"; | |
960 | 64 | break; |
961 | 65 | case 14: |
962 | - tparam.ipc_url = "/data/share/data/nx1-0000001.mp4"; | |
66 | + ipc_url = "/data/share/data/nx1-0000001.mp4"; | |
963 | 67 | break; |
964 | 68 | case 15: |
965 | - tparam.ipc_url = "/data/share/data/nx1-00000002.mp4"; | |
69 | + ipc_url = "/data/share/data/nx1-00000002.mp4"; | |
966 | 70 | break; |
967 | 71 | case 16: |
968 | - tparam.ipc_url = "/data/share/data/Street.uvf"; | |
72 | + ipc_url = "/data/share/data/Street.uvf"; | |
969 | 73 | break; |
970 | 74 | case 17: |
971 | - tparam.ipc_url = "/data/share/data/xiancun.mp4"; | |
75 | + ipc_url = "/data/share/data/xiancun.mp4"; | |
972 | 76 | break; |
973 | 77 | case 18: |
974 | - tparam.ipc_url = "rtsp://192.168.60.146:8554/w_1_out"; | |
78 | + ipc_url = "rtsp://192.168.60.146:8554/w_1_out"; | |
975 | 79 | break; |
976 | 80 | case 19: |
977 | - tparam.ipc_url = "/data/share/data/42_44.avi"; | |
81 | + ipc_url = "/data/share/data/42_44.avi"; | |
978 | 82 | break; |
979 | 83 | case 20: |
980 | - tparam.ipc_url = "/data/share/data/37_70.avi"; | |
84 | + ipc_url = "/data/share/data/37_70.avi"; | |
981 | 85 | break; |
982 | 86 | case 21: |
983 | - tparam.ipc_url = "/data/share/data/192_25.avi"; | |
87 | + ipc_url = "/data/share/data/192_25.avi"; | |
984 | 88 | break; |
985 | 89 | case 22: |
986 | - tparam.ipc_url = "/data/share/data/31_4.avi"; | |
90 | + ipc_url = "/data/share/data/31_4.avi"; | |
987 | 91 | break; |
988 | 92 | case 23: |
989 | - tparam.ipc_url = "/data/share/data/146_192.avi"; | |
93 | + ipc_url = "/data/share/data/146_192.avi"; | |
990 | 94 | break; |
991 | 95 | case 24: |
992 | - tparam.ipc_url = "/data/share/data/146_187.mp4"; | |
96 | + ipc_url = "/data/share/data/146_187.mp4"; | |
993 | 97 | break; |
994 | 98 | case 25: |
995 | 99 | // 公安内网 |
996 | - tparam.ipc_url = "rtsp://192.168.51.200:8554/320202202308231001001002"; | |
100 | + ipc_url = "rtsp://192.168.51.200:8554/320202202308231001001002"; | |
997 | 101 | break; |
998 | 102 | case 26: |
999 | 103 | // FFmpeg生成的解码错误数据流 |
1000 | - tparam.ipc_url = "rtsp://192.168.10.4:8554/street"; | |
104 | + ipc_url = "rtsp://192.168.10.4:8554/street"; | |
1001 | 105 | break; |
1002 | 106 | case 27: |
1003 | - tparam.ipc_url = "/data/share/data/Street_4k_265.mp4"; | |
107 | + ipc_url = "/data/share/data/Street_4k_265.mp4"; | |
1004 | 108 | break; |
1005 | 109 | case 28: |
1006 | - tparam.ipc_url = "http://192.168.60.179:10016/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; | |
110 | + ipc_url = "http://192.168.60.179:10016/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; | |
1007 | 111 | break; |
1008 | 112 | case 29: |
1009 | - tparam.ipc_url = "http://192.168.60.179:10016/不带头盔2.mp4"; | |
113 | + ipc_url = "http://192.168.60.179:10016/不带头盔2.mp4"; | |
1010 | 114 | break; |
1011 | 115 | case 30: |
1012 | - tparam.ipc_url = "/data/share/data/149_45.avi"; | |
116 | + ipc_url = "/data/share/data/149_45.avi"; | |
1013 | 117 | break; |
1014 | 118 | case 31: |
1015 | - tparam.ipc_url = "/data/share/data/146_88.avi"; | |
119 | + ipc_url = "/data/share/data/146_88.avi"; | |
1016 | 120 | break; |
1017 | 121 | case 32: |
1018 | - tparam.ipc_url = "/data/share/data/141_74.avi"; | |
122 | + ipc_url = "/data/share/data/141_74.avi"; | |
1019 | 123 | break; |
1020 | 124 | default: |
1021 | - tparam.ipc_url = "/opt/share/data/Street.uvf"; | |
125 | + ipc_url = "/data/share/data/Street.uvf"; | |
1022 | 126 | break; |
1023 | 127 | } |
1024 | - | |
1025 | - tparam.algor_counts = algor_vec.size(); | |
1026 | - tparam.dec_type = 2; | |
1027 | - | |
1028 | - if (bFlag){ | |
1029 | - nTaskId = gi; | |
1030 | - } | |
1031 | - | |
1032 | - std::string task_id_str = "test_task_id_" + std::to_string(nTaskId); | |
1033 | - tparam.task_id = task_id_str.c_str(); | |
1034 | - | |
1035 | - nTaskId++; | |
1036 | - | |
1037 | - tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; | |
1038 | - | |
1039 | - for (size_t idx = 0; idx < algor_vec.size(); ++idx) | |
1040 | - set_task_params(tparam, idx, algor_vec.at(idx)); | |
1041 | - | |
1042 | - const int result_code = add_task(handle, tparam); | |
1043 | - if (result_code != 0) | |
1044 | - printf("[Error]: "); | |
1045 | - printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); | |
1046 | - | |
1047 | - | |
1048 | - // 释放参数 | |
1049 | - for (size_t idx = 0; idx < algor_vec.size(); ++idx) { | |
1050 | - if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VIDEO_TIMING_SNAPSHOT) { | |
1051 | - algor_config_param_road_work* algor_param = (algor_config_param_road_work*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; | |
1052 | - delete algor_param; | |
1053 | - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; | |
1054 | - delete basic_param; | |
1055 | - | |
1056 | - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; | |
1057 | - delete config_param; | |
1058 | - } else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { | |
1059 | - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; | |
1060 | - delete algor_param; | |
1061 | - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; | |
1062 | - delete basic_param; | |
1063 | - | |
1064 | - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; | |
1065 | - delete config_param; | |
1066 | - }else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { | |
1067 | - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; | |
1068 | - delete algor_param; | |
1069 | - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; | |
1070 | - delete basic_param; | |
1071 | - | |
1072 | - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; | |
1073 | - delete config_param; | |
1074 | - } | |
1075 | - } | |
1076 | - delete[] tparam.algor_config_params; | |
1077 | 128 | |
1078 | - return task_id_str; | |
129 | + return ipc_url; | |
1079 | 130 | } |
1080 | 131 | |
132 | +static int nTaskId = 0; | |
1081 | 133 | |
1082 | -string createTask_dvpp28181(void *handle, std::vector<algorithm_type_t> algor_vec, int gi, bool bFlag = true){ | |
134 | +string createTask(void *handle, int gi, bool bFlag = true){ | |
1083 | 135 | task_param tparam; |
1084 | 136 | |
1085 | - switch(gi){ | |
1086 | - case 0: | |
1087 | - tparam.ipc_url = "34020000001310004065"; | |
1088 | - break; | |
1089 | - case 1: | |
1090 | - tparam.ipc_url = "34020000001310000001"; | |
1091 | - break; | |
1092 | - case 2: | |
1093 | - tparam.ipc_url = "34020000001320000166"; | |
1094 | - break; | |
1095 | - case 3: | |
1096 | - tparam.ipc_url = "32120200002160000077"; | |
1097 | - break; | |
1098 | - case 4: | |
1099 | - tparam.ipc_url = "34020000001320000207"; | |
1100 | - break; | |
1101 | - case 5: | |
1102 | - tparam.ipc_url = "34020000001310000176"; | |
1103 | - break; | |
1104 | - default: | |
1105 | - tparam.ipc_url = "34020000001310004065"; | |
1106 | - break; | |
1107 | - } | |
1108 | - | |
1109 | - tparam.algor_counts = algor_vec.size(); | |
1110 | - tparam.dec_type = 3; | |
1111 | - tparam.protocal = 0; | |
137 | + tparam.ipc_url = get_ipc_url(gi); | |
1112 | 138 | |
1113 | 139 | if (bFlag){ |
1114 | 140 | nTaskId = gi; |
1115 | 141 | } |
1116 | - | |
1117 | 142 | std::string task_id_str = "test_task_id_" + std::to_string(nTaskId); |
1118 | 143 | tparam.task_id = task_id_str.c_str(); |
1119 | - | |
1120 | 144 | nTaskId++; |
1121 | 145 | |
1122 | - tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; | |
1123 | - | |
1124 | - for (size_t idx = 0; idx < algor_vec.size(); ++idx) | |
1125 | - set_task_params(tparam, idx, algor_vec.at(idx)); | |
146 | + tparam.result_folder_little = "./res"; //目标快照抠图保存地址 | |
147 | + tparam.result_folder = "./res"; //目标快照大图保存地址 | |
1126 | 148 | |
1127 | 149 | const int result_code = add_task(handle, tparam); |
1128 | 150 | if (result_code != 0) |
1129 | 151 | printf("[Error]: "); |
1130 | 152 | printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); |
1131 | 153 | |
1132 | - | |
1133 | - // 释放参数 | |
1134 | - for (size_t idx = 0; idx < algor_vec.size(); ++idx) { | |
1135 | - if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VIDEO_TIMING_SNAPSHOT) { | |
1136 | - algor_config_param_road_work* algor_param = (algor_config_param_road_work*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; | |
1137 | - delete algor_param; | |
1138 | - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; | |
1139 | - delete basic_param; | |
1140 | - | |
1141 | - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; | |
1142 | - delete config_param; | |
1143 | - } else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { | |
1144 | - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; | |
1145 | - delete algor_param; | |
1146 | - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; | |
1147 | - delete basic_param; | |
1148 | - | |
1149 | - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; | |
1150 | - delete config_param; | |
1151 | - } else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { | |
1152 | - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; | |
1153 | - delete algor_param; | |
1154 | - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; | |
1155 | - delete basic_param; | |
1156 | - | |
1157 | - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; | |
1158 | - delete config_param; | |
1159 | - } | |
1160 | - } | |
1161 | - delete[] tparam.algor_config_params; | |
1162 | - | |
1163 | 154 | return task_id_str; |
1164 | 155 | } |
1165 | 156 | |
1166 | -void test_snapshot(void *handle){ | |
1167 | - task_param tparam; | |
1168 | - tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; | |
1169 | - | |
1170 | - tparam.algor_counts = 1; | |
1171 | - tparam.dec_type = 2; | |
1172 | 157 | |
1173 | - std::string task_id_str = "test_task_id_default" ; | |
1174 | - tparam.task_id = task_id_str.c_str(); | |
158 | +// void test_snapshot(void *handle){ | |
159 | +// task_param tparam; | |
160 | +// tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; | |
161 | +// std::string task_id_str = "test_task_id_default" ; | |
162 | +// tparam.task_id = task_id_str.c_str(); | |
1175 | 163 | |
1176 | - tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; | |
1177 | 164 | |
1178 | - set_task_params(tparam, 0, algorithm_type_t::VIDEO_SNAPSHOT); | |
1179 | - | |
1180 | - const int result_code = screenshot_task(handle, tparam); | |
1181 | - if (result_code != 0) | |
1182 | - printf("[Error]: "); | |
1183 | - printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); | |
1184 | -} | |
165 | +// const int result_code = screenshot_task(handle, tparam); | |
166 | +// if (result_code != 0) | |
167 | +// printf("[Error]: "); | |
168 | +// printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); | |
169 | +// } | |
1185 | 170 | |
1186 | 171 | void test_gpu(int gpuID){ |
1187 | 172 | tsl_aiplatform_param vptParam; |
1188 | 173 | vptParam.gpuid = gpuID; |
1189 | - vptParam.trt_serialize_file = ""; | |
1190 | 174 | vptParam.models_dir = "."; |
1191 | 175 | |
1192 | 176 | vptParam.log_days = 1; |
... | ... | @@ -1204,46 +188,6 @@ void test_gpu(int gpuID){ |
1204 | 188 | printf("Init Success\n"); |
1205 | 189 | } |
1206 | 190 | |
1207 | -#ifdef POST_USE_RABBITMQ | |
1208 | - init_mq_conn(handle); | |
1209 | -#endif // #ifdef POST_USE_RABBITMQ | |
1210 | - | |
1211 | - std::vector<algorithm_type_t> algor_vec = {algorithm_type_t::FACE_SNAPSHOT, algorithm_type_t::HUMAN_SNAPSHOT,algorithm_type_t::ROAD_WORK_DET, algorithm_type_t::PEDESTRIAN_RETROGRADE, algorithm_type_t::VEHICLE_RETROGRADE, | |
1212 | - algorithm_type_t::PEDESTRIAN_TRESPASS, algorithm_type_t::VEHICLE_TRESPASS, algorithm_type_t::VEHICLE_SNAPSHOT, algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT, algorithm_type_t::VIDEO_TIMING_SNAPSHOT | |
1213 | - , algorithm_type_t::VIDEO_SNAPSHOT, algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED}; | |
1214 | - | |
1215 | - | |
1216 | - std::vector<algorithm_type_t> algor_vec2 = {algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED, algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE, | |
1217 | - algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS, algorithm_type_t::PERSON_IN_VEHICLELANE, algorithm_type_t::NONMOTOR_IN_VEHICLELANE, | |
1218 | - algorithm_type_t::NONMOTOR_CEOSSPARKLINE, algorithm_type_t::PERSON_CROSS, algorithm_type_t::NONMOTOR_WRONGDIRECTION, algorithm_type_t::VEHICLE_WRONGDIRECTION, algorithm_type_t::VEHICLE_NOTGIVEWAY, | |
1219 | - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND, algorithm_type_t::VEHICLE_NOTDECELERATION}; | |
1220 | - // std::vector<algorithm_type_t> algor_vec3 = {algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED, algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE, | |
1221 | - // algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS}; | |
1222 | - std::vector<algorithm_type_t> algor_vec3 = {algorithm_type_t::PERSON_CROSS, algorithm_type_t::NONMOTOR_WRONGDIRECTION, algorithm_type_t::VEHICLE_WRONGDIRECTION, algorithm_type_t::VEHICLE_NOTGIVEWAY, | |
1223 | - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND}; | |
1224 | - | |
1225 | - | |
1226 | - // int repeat_num = 1000; | |
1227 | - // createTask(handle, algor_vec2, 0, false); | |
1228 | - // createTask(handle, algor_vec2, 2, false); | |
1229 | - // while(repeat_num--) { | |
1230 | - // printf("============================:%d\n",repeat_num); | |
1231 | - // vector<string> task_ids; | |
1232 | - // for (int i = 4; i < 10; i ++) { | |
1233 | - // string task_id = createTask(handle, algor_vec2, i, false); | |
1234 | - // task_ids.push_back(task_id); | |
1235 | - // } | |
1236 | - | |
1237 | - // // test_snapshot(handle); | |
1238 | - // sleep(60); //60s | |
1239 | - // close_all_task(handle); | |
1240 | - // for (auto& task_id : task_ids) { | |
1241 | - // finish_task(handle, (char*)task_id.data(), 0); | |
1242 | - // sleep(5); | |
1243 | - // } | |
1244 | - | |
1245 | - // } | |
1246 | - | |
1247 | 191 | // createTask(handle, algor_vec2, 19, false); |
1248 | 192 | // createTask(handle, algor_vec2, 20, false); |
1249 | 193 | // createTask(handle, algor_vec2, 21, false); |
... | ... | @@ -1252,164 +196,13 @@ void test_gpu(int gpuID){ |
1252 | 196 | // createTask(handle, algor_vec2, 24, false); |
1253 | 197 | // createTask(handle, algor_vec2, 30, false); |
1254 | 198 | // createTask(handle, algor_vec2, 31, false); |
1255 | - createTask(handle, algor_vec2, 32, false); | |
1256 | - | |
1257 | - // int task_index = 0; | |
1258 | - // while (true) | |
1259 | - // { | |
1260 | - // int task_count = count_running_task(handle); | |
1261 | - // if (task_count < 1) | |
1262 | - // { | |
1263 | - // // if (task_index > 7) | |
1264 | - // // { | |
1265 | - // // task_index = 0; | |
1266 | - // // break; | |
1267 | - // // } | |
1268 | - | |
1269 | - // createTask(handle, algor_vec2, 19, false); | |
1270 | - // task_index++; | |
1271 | - // // createTask(handle, algor_vec2, 29, false); | |
1272 | - // // task_index++; | |
1273 | - // } | |
1274 | - | |
1275 | - // std::this_thread::sleep_for(std::chrono::seconds(5)); | |
1276 | - // } | |
1277 | - | |
1278 | - | |
1279 | - | |
1280 | - // char ch = 'a'; | |
1281 | - // while (ch != 'q') { | |
1282 | - // ch = getchar(); | |
1283 | - // switch (ch) | |
1284 | - // { | |
1285 | - // case 'a': | |
1286 | - // createTask(handle, algor_vec2, 28, false); | |
1287 | - // break; | |
1288 | - // case 'c': | |
1289 | - // close_all_task(handle); | |
1290 | - // break; | |
1291 | - // default: | |
1292 | - // break; | |
1293 | - // } | |
1294 | - | |
1295 | - // } | |
1296 | - | |
1297 | - // finish_task(handle, (char*)task_id.data(), 0); | |
1298 | - | |
1299 | - // finish_task(handle, (char*)task_id1.data(), 0); | |
199 | + createTask(handle, 4, false); | |
1300 | 200 | |
1301 | 201 | while (getchar() != 'q'); |
1302 | 202 | |
1303 | 203 | tsl_aiplatform_release(&handle); |
1304 | 204 | } |
1305 | 205 | |
1306 | -void test_dvpp28181(int gpuID) { | |
1307 | - tsl_aiplatform_param vptParam; | |
1308 | - vptParam.gpuid = gpuID; | |
1309 | - vptParam.sip_server_port = 15080; | |
1310 | - vptParam.trt_serialize_file = ""; | |
1311 | - vptParam.models_dir = "."; | |
1312 | - | |
1313 | - vptParam.log_days = 1; | |
1314 | - vptParam.log_level = AI_LOG_LEVEL_TRACE; | |
1315 | - // vptParam.log_level = AI_LOG_LEVEL_DEBUG; | |
1316 | - vptParam.log_mem = 64 * 1024 * 1024; // 64MB. | |
1317 | - vptParam.log_path = "logs/main.log"; | |
1318 | - | |
1319 | - void *handle; | |
1320 | - int flag = tsl_aiplatform_init(&handle, vptParam); | |
1321 | - if (0 != flag) { | |
1322 | - printf("Init Failed! Error Code: %d\n", flag); | |
1323 | - return; | |
1324 | - } else { | |
1325 | - printf("Init Success\n"); | |
1326 | - } | |
1327 | - | |
1328 | -#ifdef POST_USE_RABBITMQ | |
1329 | -init_mq_conn(handle); | |
1330 | -#endif // #ifdef POST_USE_RABBITMQ | |
1331 | - | |
1332 | - std::vector<algorithm_type_t> algor_vec = {algorithm_type_t::FACE_SNAPSHOT, algorithm_type_t::HUMAN_SNAPSHOT,algorithm_type_t::ROAD_WORK_DET, algorithm_type_t::PEDESTRIAN_RETROGRADE, algorithm_type_t::VEHICLE_RETROGRADE, | |
1333 | - algorithm_type_t::PEDESTRIAN_TRESPASS, algorithm_type_t::VEHICLE_TRESPASS, algorithm_type_t::VEHICLE_SNAPSHOT, algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT, algorithm_type_t::VIDEO_TIMING_SNAPSHOT | |
1334 | - , algorithm_type_t::VIDEO_SNAPSHOT, algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED}; | |
1335 | - | |
1336 | - | |
1337 | - std::vector<algorithm_type_t> algor_vec2 = {algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED, algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE, | |
1338 | - algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS, algorithm_type_t::PERSON_IN_VEHICLELANE, algorithm_type_t::NONMOTOR_IN_VEHICLELANE, | |
1339 | - algorithm_type_t::NONMOTOR_CEOSSPARKLINE, algorithm_type_t::PERSON_CROSS, algorithm_type_t::NONMOTOR_WRONGDIRECTION, algorithm_type_t::VEHICLE_WRONGDIRECTION, algorithm_type_t::VEHICLE_NOTGIVEWAY, | |
1340 | - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND, algorithm_type_t::VEHICLE_NOTDECELERATION}; | |
1341 | - // std::vector<algorithm_type_t> algor_vec3 = {algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED, algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE, | |
1342 | - // algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS}; | |
1343 | - std::vector<algorithm_type_t> algor_vec3 = {algorithm_type_t::PERSON_CROSS, algorithm_type_t::NONMOTOR_WRONGDIRECTION, algorithm_type_t::VEHICLE_WRONGDIRECTION, algorithm_type_t::VEHICLE_NOTGIVEWAY, | |
1344 | - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND}; | |
1345 | - | |
1346 | - | |
1347 | - | |
1348 | - int status = -1; | |
1349 | - while (true) | |
1350 | - { | |
1351 | - status = get_task_status(handle,"34020000001320000207"); | |
1352 | - if (status == 0) | |
1353 | - { | |
1354 | - createTask_dvpp28181(handle, algor_vec, 4, false); | |
1355 | - } | |
1356 | - | |
1357 | - status = get_task_status(handle,"34020000001310000176"); | |
1358 | - if (status == 0) | |
1359 | - { | |
1360 | - createTask_dvpp28181(handle, algor_vec, 5, false); | |
1361 | - } | |
1362 | - | |
1363 | - std::this_thread::sleep_for(std::chrono::seconds(5)); | |
1364 | - } | |
1365 | - | |
1366 | - | |
1367 | - | |
1368 | -char ch = 'a'; | |
1369 | -while (ch != 'q') { | |
1370 | - ch = getchar(); | |
1371 | - switch (ch) | |
1372 | - { | |
1373 | - case '0': | |
1374 | - createTask_dvpp28181(handle, algor_vec, 0, false); | |
1375 | - break; | |
1376 | - case '1': | |
1377 | - createTask_dvpp28181(handle, algor_vec, 1, false); | |
1378 | - break; | |
1379 | - case '2': | |
1380 | - createTask_dvpp28181(handle, algor_vec, 2, false); | |
1381 | - break; | |
1382 | - case '3': | |
1383 | - createTask_dvpp28181(handle, algor_vec, 3, false); | |
1384 | - break; | |
1385 | - case '4': | |
1386 | - createTask_dvpp28181(handle, algor_vec, 4, false); | |
1387 | - break; | |
1388 | - case '5': | |
1389 | - createTask_dvpp28181(handle, algor_vec, 5, false); | |
1390 | - break; | |
1391 | - case '6': | |
1392 | - createTask(handle, algor_vec2, 2, false); | |
1393 | - break; | |
1394 | - case '7': | |
1395 | - createTask(handle, algor_vec2, 0, false); | |
1396 | - break; | |
1397 | - case 'c': | |
1398 | - close_all_task(handle); | |
1399 | - break; | |
1400 | - default: | |
1401 | - break; | |
1402 | - } | |
1403 | - | |
1404 | -} | |
1405 | - | |
1406 | - // finish_task(handle, (char*)task_id.data(), 0); | |
1407 | - | |
1408 | - // finish_task(handle, (char*)task_id1.data(), 0); | |
1409 | - | |
1410 | - tsl_aiplatform_release(&handle); | |
1411 | -} | |
1412 | - | |
1413 | 206 | int main(int argc, char *argv[]) { |
1414 | 207 | printf("new test\n"); |
1415 | 208 | |
... | ... | @@ -1429,7 +222,6 @@ int main(int argc, char *argv[]) { |
1429 | 222 | // test_gpu(2); |
1430 | 223 | // test_gpu(3); |
1431 | 224 | |
1432 | - // test_dvpp28181(0); | |
1433 | 225 | |
1434 | 226 | printf("Done.\n"); |
1435 | 227 | ... | ... |
src/reprocessing_module/snapshot_reprocessing.cpp
... | ... | @@ -110,6 +110,8 @@ void snapshot_reprocessing::update_bestsnapshot(vector<DeviceMemory*> vec_devMem |
110 | 110 | continue; |
111 | 111 | } |
112 | 112 | |
113 | + LOG_DEBUG("add task_id {} obj_id {}", task_id, obj_info.id); | |
114 | + | |
113 | 115 | /* 存入当前抠图目标参数 flags用于判断目标从画面什么位置出现 方便之后排除出画面边缘的快照图 */ |
114 | 116 | total_snapshot_info[new_obj].index.count++; |
115 | 117 | total_snapshot_info[new_obj].index.index = cur_real_index; |
... | ... | @@ -217,7 +219,7 @@ bool snapshot_reprocessing::best_snapshot_judge_algor(const OBJ_KEY& obj_key, co |
217 | 219 | /* 删除指定快照 清空资源占用(使用场景:任务结束删除该路任务所有缓存快照;目标轨迹结束,分析保存完,删除该目标快照缓存)*/ |
218 | 220 | void snapshot_reprocessing::release_finished_locus_snapshot(const string taskid, const int obj_id, bool bRelease) |
219 | 221 | { |
220 | - LOG_DEBUG("[info] task_id {} delete obj_id {}", taskid, obj_id); //221026 | |
222 | + LOG_DEBUG("task_id {} delete obj_id {}", taskid, obj_id); //221026 | |
221 | 223 | if (obj_id != -1) |
222 | 224 | { |
223 | 225 | OBJ_KEY cur_key = { taskid , obj_id }; |
... | ... | @@ -249,5 +251,4 @@ void snapshot_reprocessing::release_finished_locus_snapshot(const string taskid, |
249 | 251 | } |
250 | 252 | else ss++; |
251 | 253 | } |
252 | - return; | |
253 | 254 | } |
254 | 255 | \ No newline at end of file | ... | ... |
src/util/vpc_util.cpp
... | ... | @@ -18,6 +18,13 @@ |
18 | 18 | #include "../decoder/interface/DeviceMemory.hpp" |
19 | 19 | #include "../common/logger.hpp" |
20 | 20 | |
21 | +#define ALIGN_UP(num, align) (((num) + (align) - 1) & ~((align) - 1)) | |
22 | +#define ALIGN_UP2(num) ALIGN_UP(num, 2) | |
23 | +#define ALIGN_UP16(num) ALIGN_UP(num, 16) | |
24 | +#define ALIGN_UP64(num) ALIGN_UP(num, 64) //230316added | |
25 | +#define ALIGN_UP128(num) ALIGN_UP(num, 128) | |
26 | + | |
27 | + | |
21 | 28 | static uint32_t AlignSize(uint32_t origSize, uint32_t alignment){ |
22 | 29 | if (alignment == 0) { |
23 | 30 | return 0; |
... | ... | @@ -35,6 +42,10 @@ void VPCUtil::release() |
35 | 42 | ret = acldvppDestroyChannel(dvppChannelDesc_); |
36 | 43 | ret = acldvppDestroyChannelDesc(dvppChannelDesc_); |
37 | 44 | |
45 | + if (stream_ != nullptr) { | |
46 | + aclrtDestroyStream(stream_); | |
47 | + } | |
48 | + | |
38 | 49 | if (context_ != nullptr) { |
39 | 50 | ret = aclrtDestroyContext(context_); |
40 | 51 | if (ret != ACL_SUCCESS) { |
... | ... | @@ -141,8 +152,6 @@ vpc_img_info VPCUtil::crop(DeviceMemory *devMem, video_object_info obj) { |
141 | 152 | acldvppSetPicDescHeightStride(vpcOutputDesc_, cropSizeHeight); |
142 | 153 | acldvppSetPicDescSize(vpcOutputDesc_, vpcOutBufferSize_); |
143 | 154 | |
144 | - aclrtStream stream_; | |
145 | - aclrtCreateStream(&stream_); | |
146 | 155 | bool bRet = false; |
147 | 156 | do |
148 | 157 | { |
... | ... | @@ -166,10 +175,6 @@ vpc_img_info VPCUtil::crop(DeviceMemory *devMem, video_object_info obj) { |
166 | 175 | |
167 | 176 | bRet = true; |
168 | 177 | } while (0); |
169 | - | |
170 | - if (stream_ != nullptr) { | |
171 | - aclrtDestroyStream(stream_); | |
172 | - } | |
173 | 178 | |
174 | 179 | acldvppDestroyPicDesc(vpcInputDesc_); |
175 | 180 | |
... | ... | @@ -197,6 +202,8 @@ int VPCUtil::init(int32_t devId){ |
197 | 202 | aclrtSetDevice(deviceId_); |
198 | 203 | aclrtCreateContext(&context_, deviceId_); |
199 | 204 | |
205 | + aclrtCreateStream(&stream_); | |
206 | + | |
200 | 207 | // channel 准备 |
201 | 208 | dvppChannelDesc_ = acldvppCreateChannelDesc(); |
202 | 209 | ret = acldvppCreateChannel(dvppChannelDesc_); |
... | ... | @@ -218,7 +225,6 @@ vector<vpc_img_info> VPCUtil::crop_batch(DeviceMemory *devMem, vector<video_obje |
218 | 225 | } |
219 | 226 | |
220 | 227 | aclError ret; |
221 | - aclrtSetDevice(deviceId_); | |
222 | 228 | ret = aclrtSetCurrentContext(context_); |
223 | 229 | |
224 | 230 | // 输入 |
... | ... | @@ -282,7 +288,7 @@ vector<vpc_img_info> VPCUtil::crop_batch(DeviceMemory *devMem, vector<video_obje |
282 | 288 | |
283 | 289 | cropAreas[i] = acldvppCreateRoiConfig(cropLeftOffset, cropRightOffset, cropTopOffset, cropBottomOffset); |
284 | 290 | |
285 | - uint32_t vpcOutBufferSize_ = cropSizeWidth * cropSizeHeight * 3 / 2; | |
291 | + uint32_t vpcOutBufferSize_ = ALIGN_UP64(cropSizeWidth) * ALIGN_UP16(cropSizeHeight) * 3 / 2; | |
286 | 292 | void *vpcBatchOutputBufferDev = nullptr; |
287 | 293 | auto ret = acldvppMalloc(&vpcBatchOutputBufferDev, vpcOutBufferSize_); |
288 | 294 | if (ret != ACL_SUCCESS) { |
... | ... | @@ -299,20 +305,18 @@ vector<vpc_img_info> VPCUtil::crop_batch(DeviceMemory *devMem, vector<video_obje |
299 | 305 | } |
300 | 306 | return vec_img_info; |
301 | 307 | } |
308 | + | |
302 | 309 | vecOutPtr_.push_back(vpcBatchOutputBufferDev); |
303 | 310 | vpcOutputDesc = acldvppGetPicDesc(outputBatchPicDesc_, i); |
304 | 311 | (void)acldvppSetPicDescData(vpcOutputDesc, vpcBatchOutputBufferDev); |
305 | 312 | (void)acldvppSetPicDescFormat(vpcOutputDesc, PIXEL_FORMAT_YUV_SEMIPLANAR_420); |
306 | 313 | (void)acldvppSetPicDescWidth(vpcOutputDesc, cropSizeWidth); |
307 | 314 | (void)acldvppSetPicDescHeight(vpcOutputDesc, cropSizeHeight); |
308 | - (void)acldvppSetPicDescWidthStride(vpcOutputDesc, cropSizeWidth); | |
309 | - (void)acldvppSetPicDescHeightStride(vpcOutputDesc, cropSizeHeight); | |
315 | + (void)acldvppSetPicDescWidthStride(vpcOutputDesc, ALIGN_UP64(cropSizeWidth)); | |
316 | + (void)acldvppSetPicDescHeightStride(vpcOutputDesc, ALIGN_UP16(cropSizeHeight)); | |
310 | 317 | (void)acldvppSetPicDescSize(vpcOutputDesc, vpcOutBufferSize_); |
311 | 318 | } |
312 | 319 | |
313 | - aclrtStream stream_; | |
314 | - aclrtCreateStream(&stream_); | |
315 | - | |
316 | 320 | bool bRet = false; |
317 | 321 | do { |
318 | 322 | uint32_t roiNums[] = { outputBatchSize_ }; |
... | ... | @@ -364,12 +368,6 @@ vector<vpc_img_info> VPCUtil::crop_batch(DeviceMemory *devMem, vector<video_obje |
364 | 368 | |
365 | 369 | bRet = true; |
366 | 370 | } while (0); |
367 | - | |
368 | - if (stream_ != nullptr) { | |
369 | - aclrtDestroyStream(stream_); | |
370 | - } | |
371 | - | |
372 | - aclrtSetCurrentContext(context_); | |
373 | 371 | |
374 | 372 | if (vpcInputBatchDesc_ != nullptr) { |
375 | 373 | (void)acldvppDestroyBatchPicDesc(vpcInputBatchDesc_); |
... | ... | @@ -452,6 +450,7 @@ void VPCUtil::vpc_img_release(vpc_img_info img_info){ |
452 | 450 | void *outputDataDev = acldvppGetPicDescData(img_info.pic_desc); |
453 | 451 | acldvppFree(outputDataDev); |
454 | 452 | acldvppDestroyPicDesc(img_info.pic_desc); |
453 | + img_info.pic_desc = nullptr; | |
455 | 454 | } |
456 | 455 | } |
457 | 456 | ... | ... |