From 168cad8214b2229130485fdbf3f64d85ac458402 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 11 四月 2019 17:35:36 +0800
Subject: [PATCH] 添加宏定义屏蔽VptRpcElement并替换为VptRpcElement

---
 QiaoJiaSystem/VptServer/VptDetectWrapper.cpp |   77 ++++++++++++++++++++++++++++----------
 1 files changed, 57 insertions(+), 20 deletions(-)

diff --git a/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp b/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp
index 98fbfcb..8b6b353 100644
--- a/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp
+++ b/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp
@@ -20,6 +20,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 +29,20 @@
     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);
 }
 
-void VptDetectWrapper::process_image(cv::Mat &_img) {
+list<VptDetectResults> VptDetectWrapper::process_image(cv::Mat &_img) {
     m_results.clear();
 
     sy_img img;
@@ -68,14 +79,34 @@
             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) {
+        for (int i = 0; i < MAX_DET_COUNT; i++) {
+            if (result.info[i].analysis_res != NULL) {
+                delete result.info[i].analysis_res;
+                result.info[i].analysis_res = NULL;
+            }
+        }
+        delete[] result.info;
+        result.info = NULL;
     }
     DBG(m_results.size());
+    return m_results;
 }
 
 VptDetectResults VptDetectWrapper::changeAnalysisRes(int index, void *result) {
 
-    VptDetectResults vptDetectResults;
+    VptDetectResults vptDetectResults(index);
     vptDetectResults.sdkDetectType = static_cast<SDKDetectType>(index);
 //    vptDetectResults.vptDetectRes.carDetectRes;
     switch (vptDetectResults.sdkDetectType) {
@@ -87,7 +118,7 @@
             for (int i = 0; i < HP_FIR_INDEX_SIZE; i++) {
                 int resIndex = vptDetectResults.vptDetectRes.personDetectRes.res_objs[i].res_index;
                 cout << vptDetectResults.vptDetectRes.personDetectRes.res_objs[i].res_prob << "  ";
-                cout << HpResStr[i][resIndex] << " " << endl;
+                cout << HpResStr[i][resIndex] << " ";
             }
             //test code end
         };
@@ -97,12 +128,14 @@
             hcp_res *cur_res = (hcp_res *) result;
             memcpy(vptDetectResults.vptDetectRes.perRideCarDetectRes.res_objs, cur_res->res_objs,
                    sizeof(classfy_boj_res) * HCP_FIR_INDEX_SIZE);
+            //test code
             for (int i = 0; i < HCP_FIR_INDEX_SIZE; i++) {
                 int resIndex = vptDetectResults.vptDetectRes.perRideCarDetectRes.res_objs[i].res_index;
                 cout << vptDetectResults.vptDetectRes.perRideCarDetectRes.res_objs[i].res_prob << "  ";
-                cout << HpResStr[i][resIndex] << " " << endl;
+                cout << HpResStr[i][resIndex] << " ";
             }
             cout << endl << endl;
+            //test code
         };
             break;
         case SDKDetectType::car :
@@ -118,32 +151,35 @@
 
             // 杞﹀瀷璇嗗埆
             if (cur_res->vr_res.vehicle_brand != NULL) {
-//                cout << "  杞﹁締鍝佺墝 - " << cur_res->vr_res.vehicle_brand << endl;
-                carRes.vehicle_brand = std::move(string(cur_res->vr_res.vehicle_brand));
+                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 = std::move(string(cur_res->vr_res.vehicle_subbrand));
+                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 = std::move(string(cur_res->vr_res.vehicle_issue_year));
+                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 = std::move(string(cur_res->vr_res.vehicle_type));
+                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 = std::move(string(cur_res->vr_res.freight_ton));
+                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;
             }
@@ -152,16 +188,17 @@
 
             // 杞︾墝
             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;
+                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);
-                    carRes.carPlate.append(cur_res->vp_res.recg[m].character);
+                    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);

--
Gitblit v1.8.0