From ecb47d89dcb2b1d8e4be9b6cb0a84d8b49e2e3cc Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期三, 10 四月 2019 12:20:00 +0800
Subject: [PATCH] 添加iceServer
---
QiaoJiaSystem/VptServer/main.cpp | 201 ++++++++++++++++---------------------------------
1 files changed, 66 insertions(+), 135 deletions(-)
diff --git a/QiaoJiaSystem/VptServer/main.cpp b/QiaoJiaSystem/VptServer/main.cpp
index 91e0087..16027c8 100644
--- a/QiaoJiaSystem/VptServer/main.cpp
+++ b/QiaoJiaSystem/VptServer/main.cpp
@@ -12,16 +12,50 @@
#else
#include <sys/time.h>
-#include <basic/util/app/AppUtil.h>
#endif
+#include <basic/util/app/AppUtil.h>
+#include "VptDetectWrapper.h"
+#include <Ice/Ice.h>
+#include <basic/rpc/IceRpc.hpp>
+#include <basic/util/app/AppPreference.hpp>
+#include "VptServerI.h"
+#include <basic/debug/Debug.h>
+
+#include <basic/util/app/AppConfig.h>
+
using namespace std;
+#define varName(x) #x
+#define printExp(exp) cout<<#exp<<"涓�:\t\t"<<(exp)<<endl
+#define printExpToString(exp) cout<<(string(#exp)+"涓�:\t\t")<<(exp).toString()<<endl //娉ㄦ剰exp鍔犳嫭鍙锋洿瀹夊叏
-
-void printfAnalysisRes(int index, void *result);
int main(int argc, char **argv) {
+
+ std::cout << __DATE__ << " " << __TIME__ << std::endl;
+ SAVE_APP_ARGS;
+ ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
+ auto ich = Ice::initialize(argc, argv);
+
+ if (argc < 4) {
+ assert("t_value.size()");
+ }
+ appPref.setIntData("gpu.index", atoi(argv[1]));
+ appPref.setIntData("RpcVptPort", atoi(argv[2]));
+ appPref.setFloatData("thresh.detect", atof(argv[3]));
+
+
+ IceRpcServer<VptServerI> server("vptServer", appPref.getIntData("RpcVptPort"), "tcp");
+ server.setMessageSizeMax(1024 * 1024 * 50);
+ server.setPoolInitSize(5);
+ server.setPoolMaxSize(10);
+ server.runWaitShutDown();
+ return 0;
+}
+
+
+int main2(int argc, char **argv) {
string imgpath;
if (argc < 2) {
@@ -39,21 +73,8 @@
double fontScale = 1;
int thickness = 2;
- void *handle;
- vptpic_param param;
- param.mode = DEVICE_GPU;
- param.gpuid = 0;
+ VptDetectWrapper vptDetectWrapper;
- param.hp_recg_config = SY_CONFIG_OPEN;
- param.hcp_recg_config = SY_CONFIG_OPEN;
- param.vehicle_color_config = SY_CONFIG_OPEN;
- param.vehicle_recg_config = SY_CONFIG_OPEN;
- param.vehicle_pendant_det_recg_config = SY_CONFIG_OPEN;
-
- param.dbPath = "CarBodyFeature.db";
- param.log = SY_CONFIG_OPEN;
-
- vpt_pic_init(&handle, param);
cv::VideoCapture capture;
capture.open(imgpath);
@@ -66,136 +87,46 @@
while (!process_image.empty()) {
process_image.copyTo(image);
- sy_img img;
- img.set_data(image.cols, image.rows, image.channels(), image.data);
+ vptDetectWrapper.process_image(image);
- vptpic_result result;
- result.info = new vptobj_info[MAX_DET_COUNT];
- int ret = vpt_pic_process(handle, img, &result);
-
- for (int i = 0; i < result.count; i++) {
- char str_i[100];
- int colorIndex = result.info[i].obj_index;
- if (colorIndex < 0 || colorIndex >= 9)continue;
- sprintf(str_i, "%s:%.2f", type[colorIndex].c_str(), result.info[i].obj_score);
-
- rectangle(process_image,
- cvPoint(result.info[i].obj_rect.left_ - 5, result.info[i].obj_rect.top_ - 15),
- cvPoint(result.info[i].obj_rect.left_ + result.info[i].obj_rect.width_ + 5,
- result.info[i].obj_rect.top_ + result.info[i].obj_rect.height_ + 10),
- cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), 3, 1);
-
- cv::putText(process_image, str_i,
- cv::Point(result.info[i].obj_rect.left_, result.info[i].obj_rect.top_),
- fontFace, fontScale,
- cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), thickness, 8);
-
- //杈撳嚭浜屾灞炴�у垎鏋愮粨鏋�
- printfAnalysisRes(colorIndex, result.info[i].analysis_res);
- }
+// for (int i = 0; i < result.count; i++) {
+// char str_i[100];
+// int colorIndex = result.info[i].obj_index;
+// if (colorIndex < 0 || colorIndex >= 9)continue;
+// sprintf(str_i, "%s:%.2f", type[colorIndex].c_str(), result.info[i].obj_score);
+//
+// rectangle(process_image,
+// cvPoint(result.info[i].obj_rect.left_ - 5, result.info[i].obj_rect.top_ - 15),
+// cvPoint(result.info[i].obj_rect.left_ + result.info[i].obj_rect.width_ + 5,
+// result.info[i].obj_rect.top_ + result.info[i].obj_rect.height_ + 10),
+// cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), 3, 1);
+//
+// cv::putText(process_image, str_i,
+// cv::Point(result.info[i].obj_rect.left_, result.info[i].obj_rect.top_),
+// fontFace, fontScale,
+// cv::Scalar(color[colorIndex][0], color[colorIndex][1], color[colorIndex][2]), thickness, 8);
+//
+// //杈撳嚭浜屾灞炴�у垎鏋愮粨鏋�
+// printfAnalysisRes(colorIndex, result.info[i].analysis_res);
+// }
#ifdef _MSC_VER
cv::imshow("res", image);
cv::waitKey(0);
#else
- char svpath[1024];
- memset(svpath, 0, sizeof(svpath));
- std::string strNewTime2 = AppUtil::getTimeUSecString();
- strNewTime2.append(".jpg");
-
- sprintf(svpath, "vpt_res/%s", strNewTime2.c_str());
- imwrite(svpath, process_image);
+// char svpath[1024];
+// memset(svpath, 0, sizeof(svpath));
+// std::string strNewTime2 = AppUtil::getTimeUSecString();
+// strNewTime2.append(".jpg");
+//
+// sprintf(svpath, "vpt_res/%s", strNewTime2.c_str());
+// imwrite(svpath, process_image);
#endif
- //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;
- }
capture >> process_image;//璇诲嚭姣忎竴甯х殑鍥惧儚
}
- vpt_pic_release(&handle);
-
return 0;
}
-
-void printfAnalysisRes(int index, void *result) {
- if (index == 0 && result != NULL) //琛屼汉浜屾灞炴�у垎鏋愮粨鏋�
- {
- hp_res *cur_res = (hp_res *) result;
-
- for (int i = 0; i < HP_FIR_INDEX_SIZE; i++) {
- int resIndex = cur_res->res_objs[i].res_index;
- cur_res->res_objs[i].res_prob;
- cout << HpResStr[i][resIndex] << " " << endl;
-
- }
- cout << endl << endl;
- } else if ((index == 1 || index == 2) && result != NULL) //琛屼汉浜屾灞炴�у垎鏋愮粨鏋�
- {
- hcp_res *cur_res = (hcp_res *) result;
-
- for (int i = 0; i < HCP_FIR_INDEX_SIZE; i++) {
- int resIndex = cur_res->res_objs[i].res_index;
- cur_res->res_objs[i].res_prob;
-// cout << HcpResStr[i][resIndex] << " " << endl;
- }
- cout << endl << endl;
- } else if (index > 3 && index != 7 && result != NULL) //杞﹁締浜屾灞炴�у垎鏋愮粨鏋滆緭鍑�
- {
- vehicle_res *cur_res = (vehicle_res *) result;
-
- cout << "杞﹂鑹�: " << colorLabel[cur_res->vc_res.res_index] << " " << cur_res->vc_res.res_prob << endl;
-
- cout << "杞﹀瀷璇嗗埆: " << endl;
- if (cur_res->vr_res.vehicle_brand != NULL) {
- cout << " 杞﹁締鍝佺墝 - " << cur_res->vr_res.vehicle_brand << endl;
- 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;
- 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;
- 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;
- 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;
- delete[] cur_res->vr_res.freight_ton;
- cur_res->vr_res.freight_ton = NULL;
- }
- cout << " " << cur_res->vr_res.name_score << endl;
-
-
- 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;
-
- for (int m = 0; m < 7; m++) {
- printf("%s", cur_res->vp_res.recg[m].character);
- }
- printf(" numScore = %.2f, detectScore = %.2f\n", cur_res->vp_res.numScore, cur_res->vp_res.detectScore);
- }
-
- cout << endl;
- }
-}
--
Gitblit v1.8.0