diff --git a/src/PicAnalysis.cpp b/src/PicAnalysis.cpp index b93c45a..a3fd7db 100644 --- a/src/PicAnalysis.cpp +++ b/src/PicAnalysis.cpp @@ -22,13 +22,13 @@ int PicAnalysis::init(int dev_id) { return -1; } - head_tail_param ht_param; - ht_param.devId = dev_id; - ht_param.max_batch = 16; - ret = m_head_tail_algorithm.init(ht_param); - if(0 != ret){ - return -1; - } + // head_tail_param ht_param; + // ht_param.devId = dev_id; + // ht_param.max_batch = 16; + // ret = m_head_tail_algorithm.init(ht_param); + // if(0 != ret){ + // return -1; + // } ret = m_clothes_algorithm.init(dev_id); if(0 != ret){ @@ -119,7 +119,7 @@ int PicAnalysis::analysis_sync(vector vec_file_path){ ImageData src = dvpp_data[b]; for(int c=0;c vec_file_path){ delete human_data; human_data = nullptr; + } else if(1 == shot_type) { + // 车尾,判断是否 货车尾部货厢载人 + if(result_info.vpt_type == 6 || result_info.vpt_type == 7){ + if(result_info.manned_res.hs_count > 0){ + // 货车载人 + } + } + } else { + if(result_info.vpt_type == 1 || result_info.vpt_type == 2 || result_info.vpt_type == 3){ + if(result_info.manned_res.hs_count >= 3){ + // 摩托车、三轮车载人 + } + } } // 司乘 @@ -189,13 +202,19 @@ int PicAnalysis::analysis_sync(vector vec_file_path){ vector vec_motor_img; vec_motor_img.push_back(img); - m_motor_rainshed_algorithm.detect(vec_motor_img); - - m_motor_phone_algorithm.detect(vec_motor_img); - - // + vector vec_rainshed_result = m_motor_rainshed_algorithm.detect(vec_motor_img); + if (vec_rainshed_result.size() > 0) + { + result_info.rainshed = vec_rainshed_result[0]; + } + vector vec_phone_result = m_motor_phone_algorithm.detect(vec_motor_img); + if (vec_phone_result.size() > 0) + { + int phoning = vec_phone_result[0]; + } + delete motor_data; motor_data = nullptr; } @@ -203,14 +222,12 @@ int PicAnalysis::analysis_sync(vector vec_file_path){ } } - vector head_tail_result; - ret = m_head_tail_algorithm.detect(vec_img, head_tail_result); - if (0 != ret) { - LOG_ERROR("m_head_tail_algorithm failed!"); - head_tail_result.clear(); - } - - + // vector head_tail_result; + // ret = m_head_tail_algorithm.detect(vec_img, head_tail_result); + // if (0 != ret) { + // LOG_ERROR("m_head_tail_algorithm failed!"); + // head_tail_result.clear(); + // } LOG_INFO("analysis_sync finished!"); diff --git a/src/ai_engine_module/MotorPhoneAnalysis.cpp b/src/ai_engine_module/MotorPhoneAnalysis.cpp index 46ca943..3520374 100644 --- a/src/ai_engine_module/MotorPhoneAnalysis.cpp +++ b/src/ai_engine_module/MotorPhoneAnalysis.cpp @@ -29,18 +29,26 @@ int MotorPhoneAnalysis::init(int devId){ return SY_SUCCESS; } -int MotorPhoneAnalysis::detect(vector vec_img){ +vector MotorPhoneAnalysis::detect(vector vec_img){ - ACL_CALL(aclrtSetCurrentContext(ctx), SY_SUCCESS, SY_FAILED); + vector vec_result; const int batchsize = vec_img.size(); - motor_phone_result * results = new motor_phone_result[batchsize]; + + vector results; + results.resize(batchsize); int ret = SY_FAILED; do { - ret = motor_phone_process_batch(m_handle, vec_img.data(), batchsize, results); + ret = aclrtSetCurrentContext(ctx); + if (SY_SUCCESS != ret) { + printf("aclrtSetCurrentContext failed!"); + break; + } + + ret = motor_phone_process_batch(m_handle, vec_img.data(), batchsize, results.data()); if (SY_SUCCESS != ret) { printf("motor_phone_process_batch failed!"); break; @@ -54,11 +62,7 @@ int MotorPhoneAnalysis::detect(vector vec_img){ } } while (0); - if (results) { - delete [] results; - } - - return ret; + return vec_result; } int MotorPhoneAnalysis::release() { diff --git a/src/ai_engine_module/MotorPhoneAnalysis.h b/src/ai_engine_module/MotorPhoneAnalysis.h index 7563a46..877ab1e 100644 --- a/src/ai_engine_module/MotorPhoneAnalysis.h +++ b/src/ai_engine_module/MotorPhoneAnalysis.h @@ -8,7 +8,7 @@ public: int init(int devId); - int detect(vector vec_img); + vector detect(vector vec_img); private: int release(); diff --git a/src/ai_engine_module/MotorRainshedAnalysis.cpp b/src/ai_engine_module/MotorRainshedAnalysis.cpp index c85e6c8..70b14f0 100644 --- a/src/ai_engine_module/MotorRainshedAnalysis.cpp +++ b/src/ai_engine_module/MotorRainshedAnalysis.cpp @@ -29,33 +29,38 @@ int MotorRainshedAnalysis::init(int devId){ return SY_SUCCESS; } -int MotorRainshedAnalysis::detect(vector vec_img){ +vector MotorRainshedAnalysis::detect(vector vec_img){ - ACL_CALL(aclrtSetCurrentContext(ctx), SY_SUCCESS, SY_FAILED); + vector vec_result; const int batchsize = vec_img.size(); - mrc_result * results = new mrc_result[batchsize]; + + vector results; + results.resize(batchsize); int ret = SY_FAILED; do { - ret = mrc_batch(m_handle, vec_img.data(), batchsize, results); + ret = aclrtSetCurrentContext(ctx); + if (SY_SUCCESS != ret) { + printf("aclrtSetCurrentContext failed!"); + break; + } + + ret = mrc_batch(m_handle, vec_img.data(), batchsize, results.data()); if (SY_SUCCESS != ret) { printf("mrc_batch failed!"); break; } - for(int batchIdx = 0;batchIdx vec_img); + vector detect(vector vec_img); private: int release();