From 049e00dc49439d82f72d5f7c1b6cae6b9023686e Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期二, 16 四月 2019 18:34:37 +0800
Subject: [PATCH] 解决修改参数和推流画面跳跃问题
---
QiaoJiaSystem/VptServer/VptDetectWrapper.cpp | 123 +++++++++++++++++++++++-----------------
1 files changed, 71 insertions(+), 52 deletions(-)
diff --git a/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp b/QiaoJiaSystem/VptServer/VptDetectWrapper.cpp
index 186e7f5..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();
@@ -43,6 +44,7 @@
}
list<VptDetectResults> VptDetectWrapper::process_image(cv::Mat &_img) {
+ ClockTimer ct("VptDetectWrapper::process_image");
m_results.clear();
sy_img img;
@@ -61,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,
@@ -79,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) {
@@ -92,7 +105,7 @@
delete[] result.info;
result.info = NULL;
}
- DBG(m_results.size());
+// DBG(m_results.size());
return m_results;
}
@@ -138,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