From 4bcfa5f5853993021583b66a343805878bdb708d Mon Sep 17 00:00:00 2001 From: Hu Chunming <2657262686@qq.com> Date: Wed, 6 Aug 2025 16:05:54 +0800 Subject: [PATCH] 代码优化 --- src/ai_engine_module/face_det_ai_engine.cpp | 35 ++++++++++++++++++++++++++++++++--- src/ai_engine_module/face_det_ai_engine.h | 2 +- src/ai_platform/MultiSourceProcess.cpp | 32 ++------------------------------ 3 files changed, 35 insertions(+), 34 deletions(-) diff --git a/src/ai_engine_module/face_det_ai_engine.cpp b/src/ai_engine_module/face_det_ai_engine.cpp index 739ca20..365792a 100755 --- a/src/ai_engine_module/face_det_ai_engine.cpp +++ b/src/ai_engine_module/face_det_ai_engine.cpp @@ -23,16 +23,45 @@ face_det_ai_engine::~face_det_ai_engine(){ } } -int face_det_ai_engine::init_ai_engine(const facedet_ai_engine_param &ai_param/*, person_det_algorthim_cache * cache*/){ +int face_det_ai_engine::init_ai_engine(string models_dir, int devId){ task_param_manager_ = task_param_manager::getInstance(); - m_devId = ai_param.sdk_param.devId; + m_devId = devId; ACL_CALL(aclrtSetDevice(m_devId), ACL_ERROR_NONE, -1); ACL_CALL(aclrtCreateContext(&m_algorthim_ctx, m_devId), ACL_ERROR_NONE, -1); - return fd_init(&handle, ai_param.sdk_param); + // 人脸检测初始化 + fd_param sdk_param; + char model_path_yolov5s[100]; + strcpy(model_path_yolov5s, (models_dir + "/models/face_detect/face_det_yolov5s_310p.om").c_str()); + sdk_param.det_modelNames = model_path_yolov5s; + char model_path_ldmk[100]; + strcpy(model_path_ldmk, (models_dir + "/models/face_detect/face_ldmk_310p.om").c_str()); + sdk_param.ldmk_modelNames = model_path_ldmk; + char model_path_pose[100]; + strcpy(model_path_pose, (models_dir + "/models/face_detect/face_pose_310p.om").c_str()); + sdk_param.pose_modelNames = model_path_pose; + char model_path_score[100]; + strcpy(model_path_score, (models_dir + "/models/face_detect/face_score_310p.om").c_str()); + sdk_param.score_modelNames = model_path_score; + char model_path_fuzzy[100]; + strcpy(model_path_fuzzy, (models_dir + "/models/face_detect/face_fuzzy_310p.om").c_str()); + sdk_param.fuzzy_modelNames = model_path_fuzzy; + char model_path_occlusion[100]; + strcpy(model_path_occlusion, (models_dir + "/models/face_detect/face_occlusion_310p.om").c_str()); + sdk_param.occlusion_modelNames = model_path_occlusion; + sdk_param.thresld = 0.6; + sdk_param.devId = m_devId; + sdk_param.auth_license = "sy_tongtu_aiplatform_sdk_2023"; + sdk_param.facial_fea_point_config = SY_CONFIG_OPEN; //是否启动关键点检测 + sdk_param.pose_config = SY_CONFIG_OPEN; //是否启动姿态角 + sdk_param.quality_config = SY_CONFIG_OPEN; //是否启动质量检测 + sdk_param.score_config = SY_CONFIG_OPEN; //是否启动人脸置信度 //SY_CONFIG_OPEN SY_CONFIG_CLOSE + sdk_param.max_result_count = 50; + + return fd_init(&handle, sdk_param); } int face_det_ai_engine::ai_engine_process_batch(std::vector &task_ids, sy_img *image_data_array, std::vector &result , std::vector> &deleteObjectID){ diff --git a/src/ai_engine_module/face_det_ai_engine.h b/src/ai_engine_module/face_det_ai_engine.h index 6f914b8..f34f3b8 100755 --- a/src/ai_engine_module/face_det_ai_engine.h +++ b/src/ai_engine_module/face_det_ai_engine.h @@ -35,7 +35,7 @@ public: face_det_ai_engine(); ~face_det_ai_engine(); - int init_ai_engine(const facedet_ai_engine_param &ai_param/*, person_det_algorthim_cache * cache*/); + int init_ai_engine(string models_dir, int devId); int ai_engine_process_batch(std::vector &task_ids, sy_img *image_data_array, std::vector &result , std::vector> &deleteObjectID); void finish_task(std::string task_id); diff --git a/src/ai_platform/MultiSourceProcess.cpp b/src/ai_platform/MultiSourceProcess.cpp index 8478a83..950cb00 100644 --- a/src/ai_platform/MultiSourceProcess.cpp +++ b/src/ai_platform/MultiSourceProcess.cpp @@ -108,35 +108,7 @@ int CMultiSourceProcess::InitAlgorthim(tsl_aiplatform_param vptParam){ } #ifdef WITH_FACE_DET_SS - // 人脸检测初始化 - facedet_ai_engine_param fd_param; - char model_path_yolov5s[100]; - strcpy(model_path_yolov5s, (models_dir + "/models/face_detect/face_det_yolov5s_310p.om").c_str()); - fd_param.sdk_param.det_modelNames = model_path_yolov5s; - char model_path_ldmk[100]; - strcpy(model_path_ldmk, (models_dir + "/models/face_detect/face_ldmk_310p.om").c_str()); - fd_param.sdk_param.ldmk_modelNames = model_path_ldmk; - char model_path_pose[100]; - strcpy(model_path_pose, (models_dir + "/models/face_detect/face_pose_310p.om").c_str()); - fd_param.sdk_param.pose_modelNames = model_path_pose; - char model_path_score[100]; - strcpy(model_path_score, (models_dir + "/models/face_detect/face_score_310p.om").c_str()); - fd_param.sdk_param.score_modelNames = model_path_score; - char model_path_fuzzy[100]; - strcpy(model_path_fuzzy, (models_dir + "/models/face_detect/face_fuzzy_310p.om").c_str()); - fd_param.sdk_param.fuzzy_modelNames = model_path_fuzzy; - char model_path_occlusion[100]; - strcpy(model_path_occlusion, (models_dir + "/models/face_detect/face_occlusion_310p.om").c_str()); - fd_param.sdk_param.occlusion_modelNames = model_path_occlusion; - fd_param.sdk_param.thresld = 0.6; - fd_param.sdk_param.devId = m_devId; - fd_param.sdk_param.auth_license = "sy_tongtu_aiplatform_sdk_2023"; - fd_param.sdk_param.facial_fea_point_config = SY_CONFIG_OPEN; //是否启动关键点检测 - fd_param.sdk_param.pose_config = SY_CONFIG_OPEN; //是否启动姿态角 - fd_param.sdk_param.quality_config = SY_CONFIG_OPEN; //是否启动质量检测 - fd_param.sdk_param.score_config = SY_CONFIG_OPEN; //是否启动人脸置信度 //SY_CONFIG_OPEN SY_CONFIG_CLOSE - fd_param.sdk_param.max_result_count = 50; - ret = m_face_det_ai_engine.init_ai_engine(fd_param); + ret = m_face_det_ai_engine.init_ai_engine(models_dir, m_devId); if (ret < 0 ) { LOG_FATAL("Init face detection failed"); return ret; @@ -200,7 +172,7 @@ int CMultiSourceProcess::AddMqConn(mq_type_t mq_type, rabbitmq_conn_params_t mq_ LOG_ERROR("mq_manager_ is null"); return FAILED; } - + if (!mq_manager_->add_conn(mq_type, mq_conn_param)) { LOG_ERROR("Connection MQ failed, ip: {} port: {} uname: {} passwd: {}", mq_conn_param.ip, mq_conn_param.port, mq_conn_param.uname, mq_conn_param.passwd); -- libgit2 0.21.4