From 881ac79d6dbfbeb00569cab01b06110b745938e8 Mon Sep 17 00:00:00 2001 From: cmhu <2657262686@qq.com> Date: Tue, 25 Mar 2025 18:14:56 +0800 Subject: [PATCH] 代码调通,结果正常输出 --- .vscode/launch.json | 26 ++++++++++++++++++++++++++ .vscode/settings.json | 6 ++++++ build/demo/Makefile | 6 +++--- build/src/Makefile | 5 ++--- src/ai_engine_module/HumanFeature.cpp | 4 ++++ src/ai_engine_module/HumanParsing.cpp | 8 +++++--- src/ai_engine_module/VPDProcess.cpp | 7 +++++-- src/ai_engine_module/VPTProcess.cpp | 1 + src/ai_engine_module/VehicleColor.cpp | 8 +++++--- src/ai_engine_module/VehiclePlate.cpp | 9 ++++++--- src/ai_platform/FeatureAnalysis.h | 1 + src/ai_platform/header.h | 5 ++--- src/ai_platform/mvpt.cpp | 37 ++++++++++++++++++------------------- src/ai_platform/mvpt_process_assist.cpp | 2 +- src/ai_platform/mvpt_process_assist.h | 2 +- src/ai_platform/task_manager.cpp | 15 ++++++++++++++- src/ai_platform/task_manager.h | 9 --------- src/decoder/dvpp/DvppDecoder.cpp | 6 +++--- src/decoder/dvpp/DvppSnapshot.cpp | 2 +- src/decoder/dvpp/VpcUtils.cpp | 2 +- src/decoder/interface/interface_headers.h | 6 ------ src/demo/demo.cpp | 1318 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/reprocessing_module/snapshot_reprocessing.cpp | 5 +++-- src/util/vpc_util.cpp | 37 ++++++++++++++++++------------------- src/util/vpc_util.h | 3 ++- 25 files changed, 183 insertions(+), 1347 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..2a1de78 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/bin/mvpt_dq_demo", + "args": [ + "/mnt/data/cmhu/data/Street.uvf" + ], + "stopAtEntry": false, + "cwd": "${workspaceFolder}/bin", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] + } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..99e638a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "*.ipp": "cpp", + "ratio": "cpp" + } +} \ No newline at end of file diff --git a/build/demo/Makefile b/build/demo/Makefile index 9d2ccca..41ace10 100755 --- a/build/demo/Makefile +++ b/build/demo/Makefile @@ -1,12 +1,12 @@ XX = g++ -PROJECT_ROOT= /home/cmhu/vpt_ascend_arm +PROJECT_ROOT= /home/cmhu/mvpt_dq_ascend_arm DEPEND_DIR = $(PROJECT_ROOT)/bin SRC_ROOT = $(PROJECT_ROOT)/src -TARGET= $(PROJECT_ROOT)/bin/vpt_proj +TARGET= $(PROJECT_ROOT)/bin/mvpt_dq_demo THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty 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 \ -I $(FFMPEG_ROOT)/include \ -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\ +LIBS= -L $(DEPEND_DIR) -lmvpt_dq_ascend_arm -latlaslic -lsycheck -lhp -lhuman_reid -lvcolor -lvpr_det -lvpd_process -lvpt_det_vdec \ -L $(OPENCV_ROOT)/lib -lopencv_world\ -L $(JSON_ROOT)/lib -ljsoncpp \ -L $(RABBITMQ_CLIENT_ROOT)/lib/aarch64-linux-gnu -lrabbitmq \ diff --git a/build/src/Makefile b/build/src/Makefile index ea1f4e0..950cb86 100755 --- a/build/src/Makefile +++ b/build/src/Makefile @@ -19,8 +19,7 @@ BOOST_ROOT = $(THIRDPARTY_ROOT)/boost_1_81_0/release JRTP_ROOT = $(THIRDPARTY_ROOT)/gb28181_3rd/jrtp_export -DEFS = -DENABLE_DVPP_INTERFACE -DWITH_FACE_DET_SS -DPOST_USE_RABBITMQ -DUSE_VILLAGE -# DEFS = -DENABLE_DVPP_INTERFACE -DUSE_VILLAGE +DEFS = -DENABLE_DVPP_INTERFACE include_dir=-I/usr/local/Ascend/ascend-toolkit/latest/include \ -I $(SRC_ROOT)/common \ @@ -35,7 +34,7 @@ include_dir=-I/usr/local/Ascend/ascend-toolkit/latest/include \ LIBS= -L $(SPDLOG_ROOT)/lib -l:libspdlog.a \ - -L $(DEPEND_DIR) -lvpt_det_vdec -lsycheck \ + -L $(DEPEND_DIR) -lvpt_det_vdec -latlaslic -lsycheck -lhp -lhuman_reid -lvcolor -lvpr_det -lvpd_process \ -L $(OPENCV_ROOT)/lib -lopencv_world\ -L $(JSON_ROOT)/lib -l:libjsoncpp.a \ -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\ diff --git a/src/ai_engine_module/HumanFeature.cpp b/src/ai_engine_module/HumanFeature.cpp index 6487e60..bb083cf 100644 --- a/src/ai_engine_module/HumanFeature.cpp +++ b/src/ai_engine_module/HumanFeature.cpp @@ -37,6 +37,7 @@ int HumanFeature::init(int dev_id, string model_dir){ } vector HumanFeature::process(vector vec_gpuMem) { + int batchsize = vec_gpuMem.size(); vector batch_img; @@ -60,6 +61,8 @@ vector HumanFeature::process(vector vec_gpuMem) { int ret = SY_SUCCESS; do { + ret = aclrtSetCurrentContext(m_algorthim_ctx); + ret = humanreid_batch(m_handle, batch_img.data(), batchsize, feature); if (SY_SUCCESS != ret) { printf("humanFeature process failed!"); @@ -95,5 +98,6 @@ void HumanFeature::release(){ } if(m_algorthim_ctx){ aclrtDestroyContext(m_algorthim_ctx); + m_algorthim_ctx = nullptr; } } \ No newline at end of file diff --git a/src/ai_engine_module/HumanParsing.cpp b/src/ai_engine_module/HumanParsing.cpp index 39c83ba..f7e0973 100644 --- a/src/ai_engine_module/HumanParsing.cpp +++ b/src/ai_engine_module/HumanParsing.cpp @@ -46,15 +46,16 @@ vector HumanParsing::process(vector vec_gpuMem) sy_img img; img.w_ = mem->getWidth(); - img.h_ = mem->getHeight(); - img.c_ = mem->getChannel(); + img.h_ = mem->getHeight(); img.data_ = mem->getMem(); batch_img.push_back(img); } + int ret = aclrtSetCurrentContext(m_algorthim_ctx); + vector vec_result; vec_result.resize(batchsize); - int ret = hp_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); + ret = hp_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); if (SY_SUCCESS != ret) { printf("HumanCarParse process failed!"); return vec_result; @@ -70,5 +71,6 @@ void HumanParsing::release(){ } if(m_algorthim_ctx){ aclrtDestroyContext(m_algorthim_ctx); + m_algorthim_ctx = nullptr; } } \ No newline at end of file diff --git a/src/ai_engine_module/VPDProcess.cpp b/src/ai_engine_module/VPDProcess.cpp index d871a13..e86a94c 100644 --- a/src/ai_engine_module/VPDProcess.cpp +++ b/src/ai_engine_module/VPDProcess.cpp @@ -38,7 +38,9 @@ int VPDProcess::init(int dev_id, string model_dir){ return 0; } -vector VPDProcess::process(vector vec_gpuMem) { +vector VPDProcess::process(vector vec_gpuMem) +{ + int ret = aclrtSetCurrentContext(m_algorthim_ctx); vector vec_res; @@ -61,7 +63,7 @@ vector VPDProcess::process(vector vec_gpuMem) { results[b].vpd_res = new vpd_info[OBJ_MAX_COUNT]; } - int ret = vpd_process(m_handle, batch_img.data(), batchsize, results); + ret = vpd_process(m_handle, batch_img.data(), batchsize, results); if (SY_SUCCESS != ret) { printf("vpd detection process failed!"); return vec_res; @@ -102,5 +104,6 @@ void VPDProcess::release(){ } if(m_algorthim_ctx){ aclrtDestroyContext(m_algorthim_ctx); + m_algorthim_ctx = nullptr; } } \ No newline at end of file diff --git a/src/ai_engine_module/VPTProcess.cpp b/src/ai_engine_module/VPTProcess.cpp index 184bafa..8531a89 100755 --- a/src/ai_engine_module/VPTProcess.cpp +++ b/src/ai_engine_module/VPTProcess.cpp @@ -196,6 +196,7 @@ void VPTProcess::release(){ } if(m_algorthim_ctx){ aclrtDestroyContext(m_algorthim_ctx); + m_algorthim_ctx = nullptr; } } diff --git a/src/ai_engine_module/VehicleColor.cpp b/src/ai_engine_module/VehicleColor.cpp index e182b07..d0f4f78 100644 --- a/src/ai_engine_module/VehicleColor.cpp +++ b/src/ai_engine_module/VehicleColor.cpp @@ -38,6 +38,8 @@ int VehicleColor::init(int dev_id, string model_dir){ } vector VehicleColor::process(vector vec_gpuMem) { + + int ret = aclrtSetCurrentContext(m_algorthim_ctx); int batchsize = vec_gpuMem.size(); @@ -47,8 +49,7 @@ vector VehicleColor::process(vector vec_gpuMe sy_img img; img.w_ = mem->getWidth(); - img.h_ = mem->getHeight(); - img.c_ = mem->getChannel(); + img.h_ = mem->getHeight(); img.data_ = mem->getMem(); batch_img.push_back(img); } @@ -58,7 +59,7 @@ vector VehicleColor::process(vector vec_gpuMe vector vec_result; vec_result.resize(batchsize); - int ret = vc_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); + ret = vc_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); if (SY_SUCCESS != ret) { printf("vehicleColorClassification process failed!"); return vec_vc_res; @@ -81,5 +82,6 @@ void VehicleColor::release(){ } if(m_algorthim_ctx){ aclrtDestroyContext(m_algorthim_ctx); + m_algorthim_ctx = nullptr; } } \ No newline at end of file diff --git a/src/ai_engine_module/VehiclePlate.cpp b/src/ai_engine_module/VehiclePlate.cpp index 96686b9..3aaeb30 100644 --- a/src/ai_engine_module/VehiclePlate.cpp +++ b/src/ai_engine_module/VehiclePlate.cpp @@ -47,8 +47,10 @@ int VehiclePlate::init(int dev_id, string model_dir){ return 0; } -vector VehiclePlate::process(vector vec_gpuMem) { - // 每个 DeviceMemory 只包含一辆车 +vector VehiclePlate::process(vector vec_gpuMem) +{ // 每个 DeviceMemory 只包含一辆车 + + int ret = aclrtSetCurrentContext(m_algorthim_ctx); vector vec_res; @@ -68,7 +70,7 @@ vector VehiclePlate::process(vector vec_gpuMe vector vec_result; vec_result.resize(batchsize); - int ret = vpdr_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); + ret = vpdr_batch(m_handle, batch_img.data(), batchsize, vec_result.data()); if (SY_SUCCESS != ret) { printf("vpr detection process failed!"); return vec_res; @@ -101,5 +103,6 @@ void VehiclePlate::release(){ } if(m_algorthim_ctx){ aclrtDestroyContext(m_algorthim_ctx); + m_algorthim_ctx = nullptr; } } \ No newline at end of file diff --git a/src/ai_platform/FeatureAnalysis.h b/src/ai_platform/FeatureAnalysis.h index 9fc3f7f..dc4fc4b 100644 --- a/src/ai_platform/FeatureAnalysis.h +++ b/src/ai_platform/FeatureAnalysis.h @@ -34,5 +34,6 @@ private: VehicleColor m_vehicle_color; VehiclePlate m_vehicle_plate; VPDProcess m_vpd; + int m_dev_id{0}; }; \ No newline at end of file diff --git a/src/ai_platform/header.h b/src/ai_platform/header.h index ce43aee..fcd51a4 100755 --- a/src/ai_platform/header.h +++ b/src/ai_platform/header.h @@ -122,9 +122,8 @@ typedef struct ObjectData { #define __TASK_PARAM__ typedef struct task_param { - const char *ipc_url; //rtsp流地址 - const char *task_id; //外部传入任务id - int dec_type; + string ipc_url; //rtsp流地址 + string task_id; //外部传入任务id int skip_frame{0}; string result_folder_little; //目标快照抠图保存地址 diff --git a/src/ai_platform/mvpt.cpp b/src/ai_platform/mvpt.cpp index a9da98f..50e4b8c 100755 --- a/src/ai_platform/mvpt.cpp +++ b/src/ai_platform/mvpt.cpp @@ -100,8 +100,6 @@ int CMultiSourceProcess::InitAlgorthim(tsl_aiplatform_param vptParam){ vparam.threshold = 0.4; vparam.model_dir = models_dir; - aclrtSetDevice(m_devId); - int ret = vpt_process.init(vparam); if (ret < 0){ return ret; @@ -156,7 +154,7 @@ int CMultiSourceProcess::GetTaskStatus(const string taskID) { bool CMultiSourceProcess::AddTask(task_param _cur_task_param) { - const char* task_id = _cur_task_param.task_id; + string task_id = _cur_task_param.task_id; decode_cbk_userdata* userPtr = new decode_cbk_userdata; userPtr->task_id = task_id; @@ -394,10 +392,6 @@ bool CMultiSourceProcess::finish_task(const string taskID, const bool delete_sna int CMultiSourceProcess::algorthim_process_thread(){ LOG_INFO("algorthim_process_thread start..."); - ACL_CALL(aclrtSetDevice(m_devId), ACL_SUCCESS, 1); - aclrtContext ctx; - ACL_CALL(aclrtCreateContext(&ctx, m_devId), ACL_SUCCESS, 1); - while (true){ #ifndef AUTHORIZATION if (!CheckTime()) { //时间限制 @@ -443,7 +437,6 @@ int CMultiSourceProcess::algorthim_process_thread(){ continue; } - aclrtSetCurrentContext(ctx); // auto record_t1 = std::chrono::system_clock::now(); auto vptprocess1 = std::chrono::system_clock::now(); algorthim_vpt(vec_gpuMem); @@ -466,8 +459,6 @@ int CMultiSourceProcess::algorthim_process_thread(){ vector().swap(vec_gpuMem); // free. } - aclrtDestroyContext(ctx); - aclrtResetDevice(m_devId); LOG_INFO("algorthim_process_thread exit."); return 0; @@ -537,7 +528,7 @@ void CMultiSourceProcess::vehicle_locus_finished(const OBJ_KEY obj_key) { auto it = _total_snapshot_info.find(obj_key); if (it == _total_snapshot_info.end()) { - LOG_WARN("object not found: {}, {}", obj_key.video_id, obj_key.obj_id); + // LOG_WARN("object not found: {}, {}", obj_key.video_id, obj_key.obj_id); return; } @@ -548,6 +539,20 @@ void CMultiSourceProcess::vehicle_locus_finished(const OBJ_KEY obj_key) { string result_folder = info->result_folder + "/snapshot";//todo string result_folder_little = info->result_folder_little + "/snapshot_lite"; + if (!result_folder.empty()) { + CreateResultFolder(result_folder.c_str(), ""); + } else { + LOG_ERROR("result_folder is empty!"); + } + + if (!result_folder_little.empty()) { + CreateResultFolder(result_folder_little.c_str(), ""); + } else { + LOG_ERROR("result_folder_little is empty!"); + } + + LOG_DEBUG("update task_id {} obj_id {}", obj_key.video_id, obj_key.obj_id); + std::string cur_timestamp_ms = std::to_string(helpers::timer::get_cur_time_ms()); // 原图 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) { { // todo 回调函数抛出结果给上层 } - - - LOG_DEBUG("仅删除记录,显存会在保存线程中删除"); - // 仅删除记录,显存会在保存线程中删除 + m_snapshot_reprocessing->release_finished_locus_snapshot(obj_key.video_id, obj_key.obj_id, true); } @@ -607,9 +609,6 @@ bool CMultiSourceProcess::save_obj_pic(ObjectInfo& res_obj) } } while (0); - VPCUtil::vpc_img_release(res_obj.ori_img_info); - VPCUtil::vpc_img_release(res_obj.obj_img_info); - return bSaved; } @@ -622,7 +621,7 @@ bool CMultiSourceProcess::CheckTime() { nYear = info->tm_year + 1900; nMonth = info->tm_mon + 1; nDay = info->tm_mday; - if (nYear == 2024 && nMonth <= 12) + if (nYear == 2025 && nMonth <= 12) { return true; } diff --git a/src/ai_platform/mvpt_process_assist.cpp b/src/ai_platform/mvpt_process_assist.cpp index b821659..7c14ca5 100755 --- a/src/ai_platform/mvpt_process_assist.cpp +++ b/src/ai_platform/mvpt_process_assist.cpp @@ -162,7 +162,7 @@ int CreateDir(char *pszDir) } -void CreateResultFolder(char* resultFolder, const char* jointFolder) +void CreateResultFolder(const char* resultFolder, const char* jointFolder) { if (strlen(resultFolder) > 240) //?too long { diff --git a/src/ai_platform/mvpt_process_assist.h b/src/ai_platform/mvpt_process_assist.h index 27309d3..8561498 100755 --- a/src/ai_platform/mvpt_process_assist.h +++ b/src/ai_platform/mvpt_process_assist.h @@ -24,7 +24,7 @@ using namespace std; int CreateDir(char *pszDir); -void CreateResultFolder(char* resultFolder, const char* jointFolder); +void CreateResultFolder(const char* resultFolder, const char* jointFolder); //bool sy_legal_pos(bitset flags, int left, int top, int right, int bottom, int imgHeight, int imgWidth); bool LegalArea(int maxArea, int lastArea, int left, int top, int right, int bottom); bool LegalMinArea(int width, int height, sy_rect min_box); diff --git a/src/ai_platform/task_manager.cpp b/src/ai_platform/task_manager.cpp index 582414f..1d0f8da 100644 --- a/src/ai_platform/task_manager.cpp +++ b/src/ai_platform/task_manager.cpp @@ -15,7 +15,7 @@ task_manager::task_manager(/* args */) task_manager::~task_manager() { - task_info_map.clear(); + Release(); } bool task_manager::AddTask(const task_param& task_param, FFDecConfig& cfg) { @@ -106,6 +106,11 @@ bool task_manager::FinishTask(const string& task_id){ if(it == task_info_map.end()) { return false; } + + TaskInfo& info = task_info_map[task_id]; + info.dec->close(); + delete info.dec; + info.dec = nullptr; task_info_map.erase(task_id); @@ -171,6 +176,14 @@ int task_manager::GetRunningTaskCount() { } void task_manager::Release() { + for (auto it = task_info_map.begin(); it != task_info_map.end(); it++) + { + TaskInfo& info = it->second; + info.dec->close(); + delete info.dec; + info.dec = nullptr; + } + task_info_map.clear(); } diff --git a/src/ai_platform/task_manager.h b/src/ai_platform/task_manager.h index 3011310..08f2734 100644 --- a/src/ai_platform/task_manager.h +++ b/src/ai_platform/task_manager.h @@ -23,15 +23,6 @@ typedef struct TaskInfo string result_folder_little; //目标快照抠图保存地址 string result_folder; //目标快照大图保存地址 - TaskInfo(){} - - ~TaskInfo(){ - if(dec){ - dec->close(); - delete dec; - dec = nullptr; - } - } } TaskInfo; class task_manager diff --git a/src/decoder/dvpp/DvppDecoder.cpp b/src/decoder/dvpp/DvppDecoder.cpp index 23bd616..f4c8cd1 100644 --- a/src/decoder/dvpp/DvppDecoder.cpp +++ b/src/decoder/dvpp/DvppDecoder.cpp @@ -534,8 +534,8 @@ void DvppDecoder::read_thread() { CHECK_AND_BREAK(aclvdecSetChannelDescThreadId(vdecChannelDesc, report_thread), "aclvdecSetChannelDescThreadId failed"); CHECK_AND_BREAK(aclvdecSetChannelDescCallback(vdecChannelDesc, VdecCallback), "aclvdecSetChannelDescCallback failed"); CHECK_AND_BREAK(aclvdecSetChannelDescEnType(vdecChannelDesc, m_enType), "aclvdecSetChannelDescEnType failed"); - // CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_YUV_SEMIPLANAR_420), "aclvdecSetChannelDescOutPicFormat failed"); - CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_BGR_888), "aclvdecSetChannelDescOutPicFormat failed"); + CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_YUV_SEMIPLANAR_420), "aclvdecSetChannelDescOutPicFormat failed"); + // CHECK_AND_BREAK(aclvdecSetChannelDescOutPicFormat(vdecChannelDesc, PIXEL_FORMAT_BGR_888), "aclvdecSetChannelDescOutPicFormat failed"); CHECK_AND_BREAK(aclvdecCreateChannel(vdecChannelDesc), "aclvdecCreateChannel failed"); AVPacket* pkt = av_packet_alloc(); @@ -880,7 +880,7 @@ void DvppDecoder::doVdppVdecCallBack(acldvppStreamDesc *input, acldvppPicDesc *o mem->setFrameNb(frame_nb); } } else { - 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); + mem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, m_dec_name, to_string(m_dvpp_deviceId), false, frame_nb, (unsigned char *)outputDataDev); } if(mem != nullptr){ diff --git a/src/decoder/dvpp/DvppSnapshot.cpp b/src/decoder/dvpp/DvppSnapshot.cpp index 0fa16d2..b1eaa23 100644 --- a/src/decoder/dvpp/DvppSnapshot.cpp +++ b/src/decoder/dvpp/DvppSnapshot.cpp @@ -684,7 +684,7 @@ void DvppSnapshot::doVdppVdecCallBack(acldvppStreamDesc *input, acldvppPicDesc * mem->setFrameNb(frame_nb); } } else { - 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); + mem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, m_dec_name, to_string(m_dvpp_deviceId), false, frame_nb, (unsigned char *)outputDataDev); } if(mem != nullptr){ diff --git a/src/decoder/dvpp/VpcUtils.cpp b/src/decoder/dvpp/VpcUtils.cpp index 0b67ced..dd54a8f 100644 --- a/src/decoder/dvpp/VpcUtils.cpp +++ b/src/decoder/dvpp/VpcUtils.cpp @@ -539,7 +539,7 @@ vector VpcUtils::crop_batch(DvppDataMemory* devMem, const vecto uint32_t height_stride = acldvppGetPicDescHeightStride(vpcOutputDesc); acldvppPixelFormat fmt = acldvppGetPicDescFormat(vpcOutputDesc); - DvppDataMemory* rgbMem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, devMem->getId(), devMem->getDeviceId(), false, devMem->getFrameNb(), (unsigned char *)outputDataDev, false); + DvppDataMemory* rgbMem = new DvppDataMemory(width, width_stride, height, height_stride, outputSize, devMem->getId(), devMem->getDeviceId(), false, devMem->getFrameNb(), (unsigned char *)outputDataDev); vec_img_info.push_back(rgbMem); } diff --git a/src/decoder/interface/interface_headers.h b/src/decoder/interface/interface_headers.h index b65d415..cc8bdb6 100644 --- a/src/decoder/interface/interface_headers.h +++ b/src/decoder/interface/interface_headers.h @@ -25,8 +25,6 @@ typedef void(*POST_DECODE_CALLBACK)(const void * userPtr, DeviceMemory* devFrame typedef void(*DECODE_FINISHED_CALLBACK)(const void* userPtr); -typedef bool(*DECODE_REQUEST_STREAM_CALLBACK)(const char* deviceId); - struct FFDecConfig{ string uri; // 视频地址 void * postDecArg {nullptr}; @@ -38,10 +36,6 @@ struct FFDecConfig{ int skip_frame{1}; // 跳帧数 string dec_name; bool resize{false}; // 是否resize到1920,1080 - bool auto_road_parse{true} ; // 外部需要的 - - int port; // gb28181接收数据的端口号 - DECODE_REQUEST_STREAM_CALLBACK request_stream_cbk; // gb28181请求流 }; enum DECODER_TYPE{ diff --git a/src/demo/demo.cpp b/src/demo/demo.cpp index bff0afb..b481781 100755 --- a/src/demo/demo.cpp +++ b/src/demo/demo.cpp @@ -8,899 +8,6 @@ using namespace std; -#ifdef POST_USE_RABBITMQ - -void init_mq_conn(void *handle) { - 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}) { - rabbitmq_conn_params_t mq_conn_params; - mq_conn_params.port = 5672; - - strcpy(mq_conn_params.ip, "192.168.60.126"); - strcpy(mq_conn_params.uname, "admin"); - strcpy(mq_conn_params.passwd, "123456"); - strcpy(mq_conn_params.vhost, "/"); - strcpy(mq_conn_params.exchange, "topExchange"); - strcpy(mq_conn_params.exchange_type, "topic"); - - // mq_conn_params.port = 5673; - // strcpy(mq_conn_params.ip, "192.168.10.187"); - // strcpy(mq_conn_params.uname, "admin"); - // strcpy(mq_conn_params.passwd, "admin123456"); - // strcpy(mq_conn_params.vhost, "/"); - // strcpy(mq_conn_params.exchange, "topExchange"); - // strcpy(mq_conn_params.exchange_type, "topic"); - - switch (key) { - case mq_type_t::ALARM_MQ: { - strcpy(mq_conn_params.queue, "topic.queue.alarm"); - strcpy(mq_conn_params.routing_key, "topic.queue.alarm.key"); - } break; - case mq_type_t::GET_TASK_MQ: { - strcpy(mq_conn_params.queue, "tsl.test.queue.get"); - strcpy(mq_conn_params.routing_key, "tsl.test.queue.get.key"); - } break; - case mq_type_t::HEART_BEAT_MQ: { - strcpy(mq_conn_params.queue, "tsl.test.queue.hb"); - strcpy(mq_conn_params.routing_key, "tsl.test.queue.hb.key"); - } break; - case mq_type_t::SCREENSHORT_TASK_MQ: { - strcpy(mq_conn_params.queue, "video.screenshort.queue.get"); - strcpy(mq_conn_params.routing_key, "video.screenshort.queue.key"); - } break; - case mq_type_t::TIMING_SCREENSHORT_TASK_MQ: { - strcpy(mq_conn_params.queue, "video.timingscreenshort.queue.get"); - strcpy(mq_conn_params.routing_key, "video.timingscreenshort.queue.key"); - } break; - } - - mq_conn_params.durable_exchange = true; - mq_conn_params.durable_queue = true; - - if (0 != add_mq_conn(handle, key, mq_conn_params)) // 队列走接口创建 - fprintf(stderr, "ip is %s port is %d\n", mq_conn_params.ip, mq_conn_params.port); - } -} - -#endif // #ifdef POST_USE_RABBITMQ - -void set_task_params(task_param &tparam, const unsigned &idx, const algorithm_type_t &algor_type) { - auto algor_init_params = new algor_init_config_param_t; - - switch (algor_type) { - - case algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - // basic_params->algor_valid_rect.top_ = 0; - // basic_params->algor_valid_rect.left_ = 0; - // basic_params->algor_valid_rect.width_ = 1920; - // basic_params->algor_valid_rect.height_ = 1080; - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_nohelmet"; - basic_params->result_folder_little = "res/motor_nohelmet_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->hs_count_threshold = 2; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - // basic_params->algor_valid_rect.top_ = 0; - // basic_params->algor_valid_rect.left_ = 0; - // basic_params->algor_valid_rect.width_ = 1920; - // basic_params->algor_valid_rect.height_ = 1080; - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_overman"; - basic_params->result_folder_little = "res/motor_overman_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::TRICYCLE_MANNED: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->hs_count_threshold = 1; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/tricycle_manned"; - basic_params->result_folder_little = "res/tricycle_manned_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::TRUCK_MANNED: { - auto algor_params = new algor_config_param_manned_incident; - { - // algor_params->m = 10; - // algor_params->n = 8; - algor_params->m = 5; - algor_params->n = 5; - algor_params->hs_count_threshold = 1; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/truck_manned"; - basic_params->result_folder_little = "res/truck_manned_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 75; - algor_params->obj_min_width = 51; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_usephone"; - basic_params->result_folder_little = "res/motor_usephone_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_VEHICLE_REFIT: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 75; - algor_params->obj_min_width = 51; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_refit"; - basic_params->result_folder_little = "res/motor_refit_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::PERSON_RUNNING_REDLIGHTS: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->hs_count_threshold = 1; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/person_runred"; - basic_params->result_folder_little = "res/person_runred_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->hs_count_threshold = 0; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_runred"; - basic_params->result_folder_little = "res/motor_runred_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::PERSON_IN_VEHICLELANE: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/person_vehiclelane"; - basic_params->result_folder_little = "res/person_vehiclelane_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_IN_VEHICLELANE: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_vehiclelane"; - basic_params->result_folder_little = "res/motor_vehiclelane_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_CEOSSPARKLINE: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_crossparkline"; - basic_params->result_folder_little = "res/motor_crossparkline_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::PERSON_CROSS: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/person_cross"; - basic_params->result_folder_little = "res/person_cross_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_WRONGDIRECTION: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 6; - algor_params->obj_min_width = 32; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/motor_wrongdirection"; - basic_params->result_folder_little = "res/motor_wrongdirection_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::VEHICLE_WRONGDIRECTION: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 5; - algor_params->n = 5; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 60; - algor_params->obj_min_width = 60; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/vehicle_wrongdirection"; - basic_params->result_folder_little = "res/vehicle_wrongdirection_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::VEHICLE_NOTGIVEWAY: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 40; - algor_params->obj_min_width = 40; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/vehicle_notgiveway"; - basic_params->result_folder_little = "res/vehicle_notgiveway_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 40; - algor_params->obj_min_width = 40; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/vehicle_solid_turnaround"; - basic_params->result_folder_little = "res/vehicle_solid_turnaround_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::VEHICLE_NOTDECELERATION: { - auto algor_params = new algor_config_param_manned_incident; - { - algor_params->m = 10; - algor_params->n = 8; - algor_params->obj_confidence_threshold = 0.5f; - algor_params->obj_min_height = 40; - algor_params->obj_min_width = 40; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->video_folder = "res/video_recode"; - basic_params->result_folder = "res/vehicle_not_deceleration"; - basic_params->result_folder_little = "res/vehicle_not_deceleration_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - - case algorithm_type_t::FACE_SNAPSHOT: { - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - - basic_params->result_folder = "res/face"; - basic_params->result_folder_little = "res/face_little"; - } - auto algor_params = new algor_config_param_snapshot; - { algor_params->threshold = 0.5f; } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::HUMAN_SNAPSHOT: { - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - - basic_params->result_folder = "res/human"; - basic_params->result_folder_little = "res/human_little"; - } - auto algor_params = new algor_config_param_snapshot; - { algor_params->threshold = 0.5f; } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::PEDESTRIAN_FALL: { - auto algor_params = new algor_config_param_pedestrian_fall; - { algor_params->threshold = 0.7f; } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - - basic_params->result_folder = "res/fall"; - basic_params->result_folder_little = "res/fall_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::PEDESTRIAN_FIGHT: { - auto algor_params = new algor_config_param_pedestrian_fight; - { - algor_params->threshold = 0.7f; - algor_params->iou_threshold = 0.1f; - } - - auto basic_params = new algor_basic_config_param_t; - { - - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/fight"; - basic_params->result_folder_little = "res/fight_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::HUMAN_GATHER: { - - auto algor_params = new algor_config_param_human_gather; - { - algor_params->frame_stride = 1; - // algor_params->human_count_threshold = 3; - algor_params->human_count_threshold = 1; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/gather"; - basic_params->result_folder_little = "res/gather_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NO_REFLECTIVE_CLOTHING: { - auto algor_params = new algor_config_param_no_reflective_clothing; - { - algor_params->conf_threshold = 0.3f; - algor_params->m = 10; - algor_params->n = 6; - algor_params->pedestrian_confidence_threshold = 0.3f; - algor_params->pedestrian_min_height = 0; - algor_params->pedestrian_min_width = 0; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/no_reflective_clothing"; - basic_params->result_folder_little = "res/no_reflective_clothing_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NO_SAFETY_HELMET: { - auto algor_params = new algor_config_param_no_safety_helmet; - { - algor_params->conf_threshold = 0.3f; - algor_params->m = 10; - algor_params->n = 6; - algor_params->pedestrian_confidence_threshold = 0.3f; - algor_params->pedestrian_min_height = 0; - algor_params->pedestrian_min_width = 0; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/no_safety_helmet"; - basic_params->result_folder_little = "res/no_safety_helmet_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::CALL_PHONE_DET: { - auto algor_params = new algor_config_param_call_phone; - { - algor_params->conf_threshold = 0.3f; - algor_params->m = 2; - algor_params->n = 1; - algor_params->pedestrian_confidence_threshold = 0.1f; - algor_params->pedestrian_min_height = 0; - algor_params->pedestrian_min_width = 0; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/call_phone"; - basic_params->result_folder_little = "res/call_phone_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::SMOKING_DET: { - auto algor_params = new algor_config_param_smoking; - { - algor_params->conf_threshold = 0.3f; - algor_params->m = 10; - algor_params->n = 1; - algor_params->pedestrian_confidence_threshold = 0.3f; - algor_params->pedestrian_min_height = 0; - algor_params->pedestrian_min_width = 0; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/smoking"; - basic_params->result_folder_little = "res/smoking_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::VEHICLE_SNAPSHOT: { - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/vehicle"; - basic_params->result_folder_little = "res/vehicle_little"; - } - - auto algor_params = new algor_config_param_snapshot; - algor_params->threshold = 0.5f; - algor_params->snap_frame_interval = 5; - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT: { - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/nonmotor"; - basic_params->result_folder_little = "res/nonmotor_little"; - } - - auto algor_params = new algor_config_param_snapshot; - { algor_params->threshold = 0.5f; } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::TAKEAWAY_MEMBER_CLASSIFICATION: { - auto algor_params = new algor_config_param_takeaway_member_classification; - { - algor_params->m = 10; - algor_params->n = 2; - algor_params->threshold = 0.7f; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/takeaway"; - basic_params->result_folder_little = "res/takeaway_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::PEDESTRIAN_RETROGRADE: { - // 578 1300 600 - auto algor_params = new algor_config_param_pedestrian_retrograde; - { - algor_params->conf_threshold = 0.5f; - algor_params->minmum_height = 10; - algor_params->minmum_width = 10; - algor_params->direction = 0; - - algor_params->px1 = 578; - algor_params->py1 = 600; - - algor_params->px2 = 1300; - algor_params->py2 = 600; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/pedestrian_retrograde"; - basic_params->result_folder_little = "res/pedestrian_retrograde_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - - } break; - - case algorithm_type_t::VEHICLE_RETROGRADE: { - // 578 1300 600 - auto algor_params = new algor_config_param_pedestrian_retrograde; - { - algor_params->conf_threshold = 0.5f; - algor_params->minmum_height = 10; - algor_params->minmum_width = 10; - algor_params->direction = 0; - - algor_params->px1 = 578; - algor_params->py1 = 600; - - algor_params->px2 = 1300; - algor_params->py2 = 600; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/vehicle_retrograde"; - basic_params->result_folder_little = "res/vehicle_retrograde_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - - } break; - - case algorithm_type_t::PEDESTRIAN_TRESPASS: { - // 578 1300 600 - auto algor_params = new algor_config_param_pedestrian_trespass; - { - algor_params->conf_threshold = 0.5f; - algor_params->minmum_height = 64; - algor_params->minmum_width = 32; - algor_params->points_count = 4; - - algor_params->points[0].x_ = 200; - algor_params->points[0].y_ = 200; - - algor_params->points[1].x_ = 600; - algor_params->points[1].y_ = 200; - - algor_params->points[2].x_ = 600; - algor_params->points[2].y_ = 500; - - algor_params->points[3].x_ = 200; - algor_params->points[3].y_ = 500; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/pedestrian_trespass"; - basic_params->result_folder_little = "res/pedestrian_trespass_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - - } break; - - case algorithm_type_t::VEHICLE_TRESPASS: { - // 578 1300 600 - auto algor_params = new algor_config_param_vehicle_trespass; - { - algor_params->conf_threshold = 0.5f; - algor_params->minmum_height = 64; - algor_params->minmum_width = 64; - algor_params->points_count = 4; - - algor_params->points[0].x_ = 500; - algor_params->points[0].y_ = 500; - - algor_params->points[1].x_ = 1500; - algor_params->points[1].y_ = 500; - - algor_params->points[2].x_ = 1500; - algor_params->points[2].y_ = 900; - - algor_params->points[3].x_ = 500; - algor_params->points[3].y_ = 900; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - basic_params->algor_valid_rect.width_ = 1920; - basic_params->algor_valid_rect.height_ = 1080; - basic_params->result_folder = "res/vehicle_trespass"; - basic_params->result_folder_little = "res/vehicle_trespass_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - - } break; - - case algorithm_type_t::VIDEO_SNAPSHOT: { - auto basic_params = new algor_basic_config_param_t; - { basic_params->result_folder = "res/video_snapshot"; } - algor_init_params->basic_param = basic_params; - } break; - - - case algorithm_type_t::ROAD_WORK_DET: { - - auto algor_params = new algor_config_param_road_work; - { - algor_params->frame_stride = 5; - algor_params->rblock_count_threshold = 3; - // algor_params->frame_stride = 1; - // algor_params->rblock_count_threshold = 1; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->algor_valid_rect.top_ = 0; - basic_params->algor_valid_rect.left_ = 0; - // basic_params->algor_valid_rect.width_ = 1920; - // basic_params->algor_valid_rect.height_ = 1080; - basic_params->algor_valid_rect.width_ = 2560; - basic_params->algor_valid_rect.height_ = 1440; - basic_params->result_folder = "res/road_work"; - basic_params->result_folder_little = "res/road_work_little"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - case algorithm_type_t::VIDEO_TIMING_SNAPSHOT: { - - auto algor_params = new algor_config_param_road_work; - { - algor_params->frame_stride = 1; - } - - auto basic_params = new algor_basic_config_param_t; - { - basic_params->result_folder = "res/video_timing_snapshot"; - } - - algor_init_params->algor_param = algor_params; - algor_init_params->basic_param = basic_params; - } break; - - default: { - if (algor_init_params != nullptr) { - delete algor_init_params; - algor_init_params = nullptr; - } - return; - } break; - } - - tparam.algor_config_params[idx].algor_type = algor_type; - tparam.algor_config_params[idx].algor_init_config_param = algor_init_params; - -} static long long get_cur_time(){ chrono::time_point tpMicro @@ -908,285 +15,162 @@ static long long get_cur_time(){ return tpMicro.time_since_epoch().count(); } -static int nTaskId = 0; - -string createTask(void *handle, std::vector algor_vec, int gi, bool bFlag = true){ - task_param tparam; - +string get_ipc_url(int gi){ + string ipc_url = "/data/share/data/Street.uvf"; switch(gi){ case 0: - tparam.ipc_url = "rtsp://admin:admin@123456@192.168.60.176:554/cam/realmonitor?channel=1&subtype=0"; + ipc_url = "rtsp://admin:admin@123456@192.168.60.176:554/cam/realmonitor?channel=1&subtype=0"; break; case 1: - tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; + ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; break; case 2: - tparam.ipc_url = "rtsp://admin:ad123456@192.168.10.166:554/cam/realmonitor?channel=1&subtype=0"; + ipc_url = "rtsp://admin:ad123456@192.168.10.166:554/cam/realmonitor?channel=1&subtype=0"; break; case 3: - tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ=="; - // tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; + ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ=="; + // ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; break; case 4: - tparam.ipc_url = "/data/share/data/Street.uvf"; + ipc_url = "/data/share/data/Street.uvf"; break; case 5: - tparam.ipc_url = "/data/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; + ipc_url = "/data/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; break; case 6: - tparam.ipc_url = "/data/share/data/不带头盔2.mp4"; + ipc_url = "/data/share/data/不带头盔2.mp4"; break; case 7: - tparam.ipc_url = "/data/share/data/hczr1.mp4"; + ipc_url = "/data/share/data/hczr1.mp4"; break; case 8: - tparam.ipc_url = "/data/share/data/燕高路口高点_CVR_2015-12-30_09-00-00_2015-12-30.mp4"; + ipc_url = "/data/share/data/燕高路口高点_CVR_2015-12-30_09-00-00_2015-12-30.mp4"; break; case 9: - // tparam.ipc_url = "/opt/share/data/1-00000002d55_h265.mp4"; - tparam.ipc_url = "/data/share/data/duan1.mp4"; + // ipc_url = "/opt/share/data/1-00000002d55_h265.mp4"; + ipc_url = "/data/share/data/duan1.mp4"; break; case 10: - tparam.ipc_url = "/data/share/data/gs1-00000001.mp4"; + ipc_url = "/data/share/data/gs1-00000001.mp4"; break; case 11: - tparam.ipc_url = "/data/share/data/98.mp4"; + ipc_url = "/data/share/data/98.mp4"; break; case 12: - tparam.ipc_url = "/data/share/data/AV_12345_1_20230108110849847_D_1673147329847729.mp4"; + ipc_url = "/data/share/data/AV_12345_1_20230108110849847_D_1673147329847729.mp4"; break; case 13: - tparam.ipc_url = "/data/share/data/nx_1-00000002.mp4"; + ipc_url = "/data/share/data/nx_1-00000002.mp4"; break; case 14: - tparam.ipc_url = "/data/share/data/nx1-0000001.mp4"; + ipc_url = "/data/share/data/nx1-0000001.mp4"; break; case 15: - tparam.ipc_url = "/data/share/data/nx1-00000002.mp4"; + ipc_url = "/data/share/data/nx1-00000002.mp4"; break; case 16: - tparam.ipc_url = "/data/share/data/Street.uvf"; + ipc_url = "/data/share/data/Street.uvf"; break; case 17: - tparam.ipc_url = "/data/share/data/xiancun.mp4"; + ipc_url = "/data/share/data/xiancun.mp4"; break; case 18: - tparam.ipc_url = "rtsp://192.168.60.146:8554/w_1_out"; + ipc_url = "rtsp://192.168.60.146:8554/w_1_out"; break; case 19: - tparam.ipc_url = "/data/share/data/42_44.avi"; + ipc_url = "/data/share/data/42_44.avi"; break; case 20: - tparam.ipc_url = "/data/share/data/37_70.avi"; + ipc_url = "/data/share/data/37_70.avi"; break; case 21: - tparam.ipc_url = "/data/share/data/192_25.avi"; + ipc_url = "/data/share/data/192_25.avi"; break; case 22: - tparam.ipc_url = "/data/share/data/31_4.avi"; + ipc_url = "/data/share/data/31_4.avi"; break; case 23: - tparam.ipc_url = "/data/share/data/146_192.avi"; + ipc_url = "/data/share/data/146_192.avi"; break; case 24: - tparam.ipc_url = "/data/share/data/146_187.mp4"; + ipc_url = "/data/share/data/146_187.mp4"; break; case 25: // 公安内网 - tparam.ipc_url = "rtsp://192.168.51.200:8554/320202202308231001001002"; + ipc_url = "rtsp://192.168.51.200:8554/320202202308231001001002"; break; case 26: // FFmpeg生成的解码错误数据流 - tparam.ipc_url = "rtsp://192.168.10.4:8554/street"; + ipc_url = "rtsp://192.168.10.4:8554/street"; break; case 27: - tparam.ipc_url = "/data/share/data/Street_4k_265.mp4"; + ipc_url = "/data/share/data/Street_4k_265.mp4"; break; case 28: - tparam.ipc_url = "http://192.168.60.179:10016/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; + ipc_url = "http://192.168.60.179:10016/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; break; case 29: - tparam.ipc_url = "http://192.168.60.179:10016/不带头盔2.mp4"; + ipc_url = "http://192.168.60.179:10016/不带头盔2.mp4"; break; case 30: - tparam.ipc_url = "/data/share/data/149_45.avi"; + ipc_url = "/data/share/data/149_45.avi"; break; case 31: - tparam.ipc_url = "/data/share/data/146_88.avi"; + ipc_url = "/data/share/data/146_88.avi"; break; case 32: - tparam.ipc_url = "/data/share/data/141_74.avi"; + ipc_url = "/data/share/data/141_74.avi"; break; default: - tparam.ipc_url = "/opt/share/data/Street.uvf"; + ipc_url = "/data/share/data/Street.uvf"; break; } - - tparam.algor_counts = algor_vec.size(); - tparam.dec_type = 2; - - if (bFlag){ - nTaskId = gi; - } - - std::string task_id_str = "test_task_id_" + std::to_string(nTaskId); - tparam.task_id = task_id_str.c_str(); - - nTaskId++; - - tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; - - for (size_t idx = 0; idx < algor_vec.size(); ++idx) - set_task_params(tparam, idx, algor_vec.at(idx)); - - const int result_code = add_task(handle, tparam); - if (result_code != 0) - printf("[Error]: "); - printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); - - - // 释放参数 - for (size_t idx = 0; idx < algor_vec.size(); ++idx) { - if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VIDEO_TIMING_SNAPSHOT) { - algor_config_param_road_work* algor_param = (algor_config_param_road_work*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; - delete algor_param; - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; - delete basic_param; - - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; - delete config_param; - } else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; - delete algor_param; - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; - delete basic_param; - - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; - delete config_param; - }else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; - delete algor_param; - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; - delete basic_param; - - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; - delete config_param; - } - } - delete[] tparam.algor_config_params; - return task_id_str; + return ipc_url; } +static int nTaskId = 0; -string createTask_dvpp28181(void *handle, std::vector algor_vec, int gi, bool bFlag = true){ +string createTask(void *handle, int gi, bool bFlag = true){ task_param tparam; - switch(gi){ - case 0: - tparam.ipc_url = "34020000001310004065"; - break; - case 1: - tparam.ipc_url = "34020000001310000001"; - break; - case 2: - tparam.ipc_url = "34020000001320000166"; - break; - case 3: - tparam.ipc_url = "32120200002160000077"; - break; - case 4: - tparam.ipc_url = "34020000001320000207"; - break; - case 5: - tparam.ipc_url = "34020000001310000176"; - break; - default: - tparam.ipc_url = "34020000001310004065"; - break; - } - - tparam.algor_counts = algor_vec.size(); - tparam.dec_type = 3; - tparam.protocal = 0; + tparam.ipc_url = get_ipc_url(gi); if (bFlag){ nTaskId = gi; } - std::string task_id_str = "test_task_id_" + std::to_string(nTaskId); tparam.task_id = task_id_str.c_str(); - nTaskId++; - tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; - - for (size_t idx = 0; idx < algor_vec.size(); ++idx) - set_task_params(tparam, idx, algor_vec.at(idx)); + tparam.result_folder_little = "./res"; //目标快照抠图保存地址 + tparam.result_folder = "./res"; //目标快照大图保存地址 const int result_code = add_task(handle, tparam); if (result_code != 0) printf("[Error]: "); printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); - - // 释放参数 - for (size_t idx = 0; idx < algor_vec.size(); ++idx) { - if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VIDEO_TIMING_SNAPSHOT) { - algor_config_param_road_work* algor_param = (algor_config_param_road_work*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; - delete algor_param; - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; - delete basic_param; - - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; - delete config_param; - } else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; - delete algor_param; - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; - delete basic_param; - - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; - delete config_param; - } else if(tparam.algor_config_params[idx].algor_type == algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND) { - algor_config_param_manned_incident* algor_param = (algor_config_param_manned_incident*)tparam.algor_config_params[idx].algor_init_config_param->algor_param; - delete algor_param; - algor_basic_config_param_t* basic_param = (algor_basic_config_param_t*)tparam.algor_config_params[idx].algor_init_config_param->basic_param; - delete basic_param; - - algor_init_config_param_t* config_param = tparam.algor_config_params[idx].algor_init_config_param; - delete config_param; - } - } - delete[] tparam.algor_config_params; - return task_id_str; } -void test_snapshot(void *handle){ - task_param tparam; - tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; - - tparam.algor_counts = 1; - tparam.dec_type = 2; - std::string task_id_str = "test_task_id_default" ; - tparam.task_id = task_id_str.c_str(); +// void test_snapshot(void *handle){ +// task_param tparam; +// tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; +// std::string task_id_str = "test_task_id_default" ; +// tparam.task_id = task_id_str.c_str(); - tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; - set_task_params(tparam, 0, algorithm_type_t::VIDEO_SNAPSHOT); - - const int result_code = screenshot_task(handle, tparam); - if (result_code != 0) - printf("[Error]: "); - printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); -} +// const int result_code = screenshot_task(handle, tparam); +// if (result_code != 0) +// printf("[Error]: "); +// printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); +// } void test_gpu(int gpuID){ tsl_aiplatform_param vptParam; vptParam.gpuid = gpuID; - vptParam.trt_serialize_file = ""; vptParam.models_dir = "."; vptParam.log_days = 1; @@ -1204,46 +188,6 @@ void test_gpu(int gpuID){ printf("Init Success\n"); } -#ifdef POST_USE_RABBITMQ - init_mq_conn(handle); -#endif // #ifdef POST_USE_RABBITMQ - - std::vector 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, - 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 - , 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}; - - - std::vector 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, - 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, - 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, - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND, algorithm_type_t::VEHICLE_NOTDECELERATION}; - // std::vector 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, - // algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS}; - std::vector algor_vec3 = {algorithm_type_t::PERSON_CROSS, algorithm_type_t::NONMOTOR_WRONGDIRECTION, algorithm_type_t::VEHICLE_WRONGDIRECTION, algorithm_type_t::VEHICLE_NOTGIVEWAY, - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND}; - - - // int repeat_num = 1000; - // createTask(handle, algor_vec2, 0, false); - // createTask(handle, algor_vec2, 2, false); - // while(repeat_num--) { - // printf("============================:%d\n",repeat_num); - // vector task_ids; - // for (int i = 4; i < 10; i ++) { - // string task_id = createTask(handle, algor_vec2, i, false); - // task_ids.push_back(task_id); - // } - - // // test_snapshot(handle); - // sleep(60); //60s - // close_all_task(handle); - // for (auto& task_id : task_ids) { - // finish_task(handle, (char*)task_id.data(), 0); - // sleep(5); - // } - - // } - // createTask(handle, algor_vec2, 19, false); // createTask(handle, algor_vec2, 20, false); // createTask(handle, algor_vec2, 21, false); @@ -1252,164 +196,13 @@ void test_gpu(int gpuID){ // createTask(handle, algor_vec2, 24, false); // createTask(handle, algor_vec2, 30, false); // createTask(handle, algor_vec2, 31, false); - createTask(handle, algor_vec2, 32, false); - - // int task_index = 0; - // while (true) - // { - // int task_count = count_running_task(handle); - // if (task_count < 1) - // { - // // if (task_index > 7) - // // { - // // task_index = 0; - // // break; - // // } - - // createTask(handle, algor_vec2, 19, false); - // task_index++; - // // createTask(handle, algor_vec2, 29, false); - // // task_index++; - // } - - // std::this_thread::sleep_for(std::chrono::seconds(5)); - // } - - - - // char ch = 'a'; - // while (ch != 'q') { - // ch = getchar(); - // switch (ch) - // { - // case 'a': - // createTask(handle, algor_vec2, 28, false); - // break; - // case 'c': - // close_all_task(handle); - // break; - // default: - // break; - // } - - // } - - // finish_task(handle, (char*)task_id.data(), 0); - - // finish_task(handle, (char*)task_id1.data(), 0); + createTask(handle, 4, false); while (getchar() != 'q'); tsl_aiplatform_release(&handle); } -void test_dvpp28181(int gpuID) { - tsl_aiplatform_param vptParam; - vptParam.gpuid = gpuID; - vptParam.sip_server_port = 15080; - vptParam.trt_serialize_file = ""; - vptParam.models_dir = "."; - - vptParam.log_days = 1; - vptParam.log_level = AI_LOG_LEVEL_TRACE; - // vptParam.log_level = AI_LOG_LEVEL_DEBUG; - vptParam.log_mem = 64 * 1024 * 1024; // 64MB. - vptParam.log_path = "logs/main.log"; - - void *handle; - int flag = tsl_aiplatform_init(&handle, vptParam); - if (0 != flag) { - printf("Init Failed! Error Code: %d\n", flag); - return; - } else { - printf("Init Success\n"); - } - -#ifdef POST_USE_RABBITMQ -init_mq_conn(handle); -#endif // #ifdef POST_USE_RABBITMQ - - std::vector 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, - 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 - , 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}; - - - std::vector 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, - 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, - 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, - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND, algorithm_type_t::VEHICLE_NOTDECELERATION}; - // std::vector 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, - // algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS}; - std::vector algor_vec3 = {algorithm_type_t::PERSON_CROSS, algorithm_type_t::NONMOTOR_WRONGDIRECTION, algorithm_type_t::VEHICLE_WRONGDIRECTION, algorithm_type_t::VEHICLE_NOTGIVEWAY, - algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND}; - - - - int status = -1; - while (true) - { - status = get_task_status(handle,"34020000001320000207"); - if (status == 0) - { - createTask_dvpp28181(handle, algor_vec, 4, false); - } - - status = get_task_status(handle,"34020000001310000176"); - if (status == 0) - { - createTask_dvpp28181(handle, algor_vec, 5, false); - } - - std::this_thread::sleep_for(std::chrono::seconds(5)); - } - - - -char ch = 'a'; -while (ch != 'q') { - ch = getchar(); - switch (ch) - { - case '0': - createTask_dvpp28181(handle, algor_vec, 0, false); - break; - case '1': - createTask_dvpp28181(handle, algor_vec, 1, false); - break; - case '2': - createTask_dvpp28181(handle, algor_vec, 2, false); - break; - case '3': - createTask_dvpp28181(handle, algor_vec, 3, false); - break; - case '4': - createTask_dvpp28181(handle, algor_vec, 4, false); - break; - case '5': - createTask_dvpp28181(handle, algor_vec, 5, false); - break; - case '6': - createTask(handle, algor_vec2, 2, false); - break; - case '7': - createTask(handle, algor_vec2, 0, false); - break; - case 'c': - close_all_task(handle); - break; - default: - break; - } - -} - - // finish_task(handle, (char*)task_id.data(), 0); - - // finish_task(handle, (char*)task_id1.data(), 0); - - tsl_aiplatform_release(&handle); -} - int main(int argc, char *argv[]) { printf("new test\n"); @@ -1429,7 +222,6 @@ int main(int argc, char *argv[]) { // test_gpu(2); // test_gpu(3); - // test_dvpp28181(0); printf("Done.\n"); diff --git a/src/reprocessing_module/snapshot_reprocessing.cpp b/src/reprocessing_module/snapshot_reprocessing.cpp index aecca1e..6e3b030 100755 --- a/src/reprocessing_module/snapshot_reprocessing.cpp +++ b/src/reprocessing_module/snapshot_reprocessing.cpp @@ -110,6 +110,8 @@ void snapshot_reprocessing::update_bestsnapshot(vector vec_devMem continue; } + LOG_DEBUG("add task_id {} obj_id {}", task_id, obj_info.id); + /* 存入当前抠图目标参数 flags用于判断目标从画面什么位置出现 方便之后排除出画面边缘的快照图 */ total_snapshot_info[new_obj].index.count++; 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 /* 删除指定快照 清空资源占用(使用场景:任务结束删除该路任务所有缓存快照;目标轨迹结束,分析保存完,删除该目标快照缓存)*/ void snapshot_reprocessing::release_finished_locus_snapshot(const string taskid, const int obj_id, bool bRelease) { - LOG_DEBUG("[info] task_id {} delete obj_id {}", taskid, obj_id); //221026 + LOG_DEBUG("task_id {} delete obj_id {}", taskid, obj_id); //221026 if (obj_id != -1) { OBJ_KEY cur_key = { taskid , obj_id }; @@ -249,5 +251,4 @@ void snapshot_reprocessing::release_finished_locus_snapshot(const string taskid, } else ss++; } - return; } \ No newline at end of file diff --git a/src/util/vpc_util.cpp b/src/util/vpc_util.cpp index 673d663..8bca82c 100755 --- a/src/util/vpc_util.cpp +++ b/src/util/vpc_util.cpp @@ -18,6 +18,13 @@ #include "../decoder/interface/DeviceMemory.hpp" #include "../common/logger.hpp" +#define ALIGN_UP(num, align) (((num) + (align) - 1) & ~((align) - 1)) +#define ALIGN_UP2(num) ALIGN_UP(num, 2) +#define ALIGN_UP16(num) ALIGN_UP(num, 16) +#define ALIGN_UP64(num) ALIGN_UP(num, 64) //230316added +#define ALIGN_UP128(num) ALIGN_UP(num, 128) + + static uint32_t AlignSize(uint32_t origSize, uint32_t alignment){ if (alignment == 0) { return 0; @@ -35,6 +42,10 @@ void VPCUtil::release() ret = acldvppDestroyChannel(dvppChannelDesc_); ret = acldvppDestroyChannelDesc(dvppChannelDesc_); + if (stream_ != nullptr) { + aclrtDestroyStream(stream_); + } + if (context_ != nullptr) { ret = aclrtDestroyContext(context_); if (ret != ACL_SUCCESS) { @@ -141,8 +152,6 @@ vpc_img_info VPCUtil::crop(DeviceMemory *devMem, video_object_info obj) { acldvppSetPicDescHeightStride(vpcOutputDesc_, cropSizeHeight); acldvppSetPicDescSize(vpcOutputDesc_, vpcOutBufferSize_); - aclrtStream stream_; - aclrtCreateStream(&stream_); bool bRet = false; do { @@ -166,10 +175,6 @@ vpc_img_info VPCUtil::crop(DeviceMemory *devMem, video_object_info obj) { bRet = true; } while (0); - - if (stream_ != nullptr) { - aclrtDestroyStream(stream_); - } acldvppDestroyPicDesc(vpcInputDesc_); @@ -197,6 +202,8 @@ int VPCUtil::init(int32_t devId){ aclrtSetDevice(deviceId_); aclrtCreateContext(&context_, deviceId_); + aclrtCreateStream(&stream_); + // channel 准备 dvppChannelDesc_ = acldvppCreateChannelDesc(); ret = acldvppCreateChannel(dvppChannelDesc_); @@ -218,7 +225,6 @@ vector VPCUtil::crop_batch(DeviceMemory *devMem, vector VPCUtil::crop_batch(DeviceMemory *devMem, vector VPCUtil::crop_batch(DeviceMemory *devMem, vector VPCUtil::crop_batch(DeviceMemory *devMem, vector