From 080afae264fe7ff89a54886f28dff208fe5a06c4 Mon Sep 17 00:00:00 2001 From: chenshijun <csj_sky@126.com> Date: 星期二, 16 四月 2019 22:01:35 +0800 Subject: [PATCH] 整合代码 --- QiaoJiaSystem/VptServer/VptDetectWrapper.cpp | 134 +++++++++++++++++++++++++++----------------- 1 files changed, 82 insertions(+), 52 deletions(-) diff --git a/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp b/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp index 924e8bd..f49d7cf 100644 --- a/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp +++ b/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp @@ -4,6 +4,7 @@ #include <basic/debug/Debug.h> #include "VptDetectWrapper.h" +#include <basic/timer_counter/Clocktimer.h> VptDetectWrapper::VptDetectWrapper() { init(); @@ -20,6 +21,7 @@ void VptDetectWrapper::init() { m_param.mode = DEVICE_GPU; +#if 0 m_param.gpuid = m_gpuIdx; m_param.hp_recg_config = SY_CONFIG_OPEN; m_param.hcp_recg_config = SY_CONFIG_OPEN; @@ -28,10 +30,21 @@ m_param.vehicle_pendant_det_recg_config = SY_CONFIG_OPEN; m_param.dbPath = const_cast<char *>(m_dbFilePath.data()); m_param.log = SY_CONFIG_OPEN; +#else + m_param.gpuid = m_gpuIdx; + m_param.hp_recg_config = SY_CONFIG_CLOSE; + m_param.hcp_recg_config = SY_CONFIG_CLOSE; + m_param.vehicle_color_config = SY_CONFIG_CLOSE; + m_param.vehicle_recg_config = SY_CONFIG_CLOSE; + m_param.vehicle_pendant_det_recg_config = SY_CONFIG_CLOSE; + m_param.dbPath = const_cast<char *>(m_dbFilePath.data()); + m_param.log = SY_CONFIG_CLOSE; +#endif vpt_pic_init(&m_handle, m_param); } list<VptDetectResults> VptDetectWrapper::process_image(cv::Mat &_img) { + ClockTimer ct("VptDetectWrapper::process_image"); m_results.clear(); sy_img img; @@ -50,6 +63,9 @@ int colorIndex = result.info[i].obj_index; if (colorIndex < 0 || colorIndex >= 9)continue; + if(colorIndex==4) DBG("detect a car, score =" << result.info[i].obj_score); + if(colorIndex==1) DBG("detect a bike, score =" << result.info[i].obj_score); + if(colorIndex==2) DBG("detect a moto, score =" << result.info[i].obj_score); // sprintf(str_i, "%s:%.2f", type[colorIndex].c_str(), result.info[i].obj_score); // rectangle(process_image, @@ -68,7 +84,15 @@ m_results.emplace_back(std::move(changeAnalysisRes(colorIndex, result.info[i].analysis_res))); m_results.back().bskRect.setRect(result.info[i].obj_rect.left_, result.info[i].obj_rect.top_, result.info[i].obj_rect.width_, result.info[i].obj_rect.height_); - } else {} + m_results.back().obj_score = result.info[i].obj_score; + } else { + VptDetectResults vptDetectResults; + vptDetectResults.sdkDetectType = static_cast<SDKDetectType>(colorIndex); + vptDetectResults.bskRect.setRect(result.info[i].obj_rect.left_, result.info[i].obj_rect.top_, + result.info[i].obj_rect.width_, result.info[i].obj_rect.height_); + vptDetectResults.obj_score = result.info[i].obj_score; + m_results.emplace_back(vptDetectResults); + } } //release source if (result.info != NULL) { @@ -81,7 +105,7 @@ delete[] result.info; result.info = NULL; } - DBG(m_results.size()); +// DBG(m_results.size()); return m_results; } @@ -127,62 +151,68 @@ auto &carRes = vptDetectResults.vptDetectRes.carDetectRes; // 杞﹂鑹� - carRes.colorLabel = static_cast<ColorLabel>(cur_res->vc_res.res_index); - carRes.colorLabelProb = cur_res->vc_res.res_prob; + if(m_param.vehicle_color_config == SY_CONFIG_OPEN) { + carRes.colorLabel = static_cast<ColorLabel>(cur_res->vc_res.res_index); + carRes.colorLabelProb = cur_res->vc_res.res_prob; + } // 杞﹀瀷璇嗗埆 - if (cur_res->vr_res.vehicle_brand != NULL) { - cout << " 杞﹁締鍝佺墝 - " << cur_res->vr_res.vehicle_brand << endl; - carRes.vehicle_brand = cur_res->vr_res.vehicle_brand; + if(m_param.vehicle_recg_config == SY_CONFIG_OPEN) { + if (cur_res->vr_res.vehicle_brand != NULL) { + cout << " 杞﹁締鍝佺墝 - " << cur_res->vr_res.vehicle_brand << endl; + carRes.vehicle_brand = cur_res->vr_res.vehicle_brand; // carRes.vehicle_brand = string(cur_res->vr_res.vehicle_brand); // carRes.vehicle_brand = "鍙�"; - delete[] cur_res->vr_res.vehicle_brand; - cur_res->vr_res.vehicle_brand = NULL; - } - if (cur_res->vr_res.vehicle_subbrand != NULL) { - cout << " 杞﹁締瀛愬搧鐗� - " << cur_res->vr_res.vehicle_subbrand << endl; - carRes.vehicle_subbrand = cur_res->vr_res.vehicle_subbrand; -// carRes.vehicle_subbrand = cur_res->vr_res.vehicle_subbrand; - delete[] cur_res->vr_res.vehicle_subbrand; - cur_res->vr_res.vehicle_subbrand = NULL; - } - if (cur_res->vr_res.vehicle_issue_year != NULL) { - cout << " 杞﹁締骞存 - " << cur_res->vr_res.vehicle_issue_year << endl; - carRes.vehicle_issue_year = cur_res->vr_res.vehicle_issue_year; - delete[] cur_res->vr_res.vehicle_issue_year; - cur_res->vr_res.vehicle_issue_year = NULL; - } - if (cur_res->vr_res.vehicle_type != NULL) { - cout << " 杞﹁締绫诲瀷 - " << cur_res->vr_res.vehicle_type << endl; - carRes.vehicle_type = cur_res->vr_res.vehicle_type; - delete[] cur_res->vr_res.vehicle_type; - cur_res->vr_res.vehicle_type = NULL; - } - if (cur_res->vr_res.freight_ton != NULL) { - cout << " 璐ц溅鍚ㄧ骇 - " << cur_res->vr_res.freight_ton << endl; - carRes.freight_ton = cur_res->vr_res.freight_ton; - delete[] cur_res->vr_res.freight_ton; - cur_res->vr_res.freight_ton = NULL; - } -// cout << " " << cur_res->vr_res.name_score << endl; - carRes.vehicle_score = cur_res->vr_res.name_score; - - // 杞︾墝 - if (cur_res->vp_res.rect.height_ != 0 && cur_res->vp_res.rect.width_ != 0) { - cout << "杞︾墝浣嶇疆: " << cur_res->vp_res.rect.left_ << " " << cur_res->vp_res.rect.top_ << " " - << cur_res->vp_res.rect.width_ << " " << cur_res->vp_res.rect.height_ << endl; - carRes.carPlateRect.setRect(cur_res->vp_res.rect.left_, cur_res->vp_res.rect.top_, - cur_res->vp_res.rect.width_, cur_res->vp_res.rect.height_); - carRes.carPlateRectScore = cur_res->vp_res.detectScore; - std::string _carPlate; - for (int m = 0; m < 7; m++) { - printf("%s", cur_res->vp_res.recg[m].character); - _carPlate.append(cur_res->vp_res.recg[m].character); + delete[] cur_res->vr_res.vehicle_brand; + cur_res->vr_res.vehicle_brand = NULL; } - carRes.carPlate = const_cast<char *>(_carPlate.c_str()); - carRes.carPlateRectScore = cur_res->vp_res.numScore; - carRes.carPlatetype = cur_res->vp_res.type; + if (cur_res->vr_res.vehicle_subbrand != NULL) { + cout << " 杞﹁締瀛愬搧鐗� - " << cur_res->vr_res.vehicle_subbrand << endl; + carRes.vehicle_subbrand = cur_res->vr_res.vehicle_subbrand; +// carRes.vehicle_subbrand = cur_res->vr_res.vehicle_subbrand; + delete[] cur_res->vr_res.vehicle_subbrand; + cur_res->vr_res.vehicle_subbrand = NULL; + } + if (cur_res->vr_res.vehicle_issue_year != NULL) { + cout << " 杞﹁締骞存 - " << cur_res->vr_res.vehicle_issue_year << endl; + carRes.vehicle_issue_year = cur_res->vr_res.vehicle_issue_year; + delete[] cur_res->vr_res.vehicle_issue_year; + cur_res->vr_res.vehicle_issue_year = NULL; + } + if (cur_res->vr_res.vehicle_type != NULL) { + cout << " 杞﹁締绫诲瀷 - " << cur_res->vr_res.vehicle_type << endl; + carRes.vehicle_type = cur_res->vr_res.vehicle_type; + delete[] cur_res->vr_res.vehicle_type; + cur_res->vr_res.vehicle_type = NULL; + } + if (cur_res->vr_res.freight_ton != NULL) { + cout << " 璐ц溅鍚ㄧ骇 - " << cur_res->vr_res.freight_ton << endl; + carRes.freight_ton = cur_res->vr_res.freight_ton; + delete[] cur_res->vr_res.freight_ton; + cur_res->vr_res.freight_ton = NULL; + } +// cout << " " << cur_res->vr_res.name_score << endl; + carRes.vehicle_score = cur_res->vr_res.name_score; + } + + if(m_param.vehicle_pendant_det_recg_config == SY_CONFIG_OPEN) { + // 杞︾墝 + if (cur_res->vp_res.rect.height_ != 0 && cur_res->vp_res.rect.width_ != 0) { + cout << "杞︾墝浣嶇疆: " << cur_res->vp_res.rect.left_ << " " << cur_res->vp_res.rect.top_ << " " + << cur_res->vp_res.rect.width_ << " " << cur_res->vp_res.rect.height_ << endl; + carRes.carPlateRect.setRect(cur_res->vp_res.rect.left_, cur_res->vp_res.rect.top_, + cur_res->vp_res.rect.width_, cur_res->vp_res.rect.height_); + carRes.carPlateRectScore = cur_res->vp_res.detectScore; + std::string _carPlate; + for (int m = 0; m < 7; m++) { + printf("%s", cur_res->vp_res.recg[m].character); + _carPlate.append(cur_res->vp_res.recg[m].character); + } + carRes.carPlate = const_cast<char *>(_carPlate.c_str()); + carRes.carPlateRectScore = cur_res->vp_res.numScore; + carRes.carPlatetype = cur_res->vp_res.type; // printf(" numScore = %.2f, detectScore = %.2f\n", cur_res->vp_res.numScore, cur_res->vp_res.detectScore); + } } }; break; -- Gitblit v1.8.0