From 9f08028f23d9e5cbfa159bec1e07d63b141a6809 Mon Sep 17 00:00:00 2001
From: zhangjixing <775834166@qq.com>
Date: 星期五, 18 一月 2019 10:17:00 +0800
Subject: [PATCH] 

---
 QiaoJiaSystem/YoloServer/YoloDetectServerI.cpp |   40 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/QiaoJiaSystem/YoloServer/YoloDetectServerI.cpp b/QiaoJiaSystem/YoloServer/YoloDetectServerI.cpp
index cb0e612..33ebe72 100644
--- a/QiaoJiaSystem/YoloServer/YoloDetectServerI.cpp
+++ b/QiaoJiaSystem/YoloServer/YoloDetectServerI.cpp
@@ -15,8 +15,42 @@
 ::YoloDetect::ObjInfos
 YoloDetectServerI::YoloDetect(::Ice::Int w, ::Ice::Int h, const ::std::string &shM, const ::Ice::Current &) {
     ClockTimer ct("YoloDetectServerI::YoloDetect");
+
+//    std::thread::id key = std::this_thread::get_id();
+//    DBG("key is " << key);
+//    DnDetect::DnDetect *t_dnDetect = nullptr;
+//    for (auto &item : map_dnDetRes) {
+//        //鏄惁鍙戠幇pid
+//        bool find_pid = false;
+//
+//        auto &pid_map = item.second.map_pid;
+//        for (auto &pid_item : pid_map) {
+//            if (pid_item.second == key) {
+////                鍙戠幇pid锛岃幏鍙栬祫婧愬彞鏌�
+//                find_pid = true;
+//                break;
+//            }
+//        }
+//        int map_pid_size = item.second.map_pid.size();
+//        if (!find_pid && map_pid_size < item.second.i) {
+//            //娌″彂鐜板彞鏌勶紝骞朵笖map瀹归噺瓒冲鏀惧叆鏂扮殑pid
+//            map_pid_size++;
+//            //#todo lock ?
+//            item.second.map_pid[map_pid_size] = key;
+//            find_pid = true;
+//        }
+//        //鍙戠幇浜唒id閫�鍑哄惊鐜�
+//        if (find_pid) {
+//            t_dnDetect = item.second.dnDetect;
+//            break;
+//        }
+//    }
+
     ::YoloDetect::ObjInfos objInfos;
-    if (!m_bInitThd) return objInfos;
+    if (!m_bInitThd /*|| t_dnDetect == nullptr*/) {
+        ERR("error ");
+        return objInfos;
+    }
     QSharedMemory shareMemory(QString(shM.c_str()));
     if (shareMemory.attach()) {
         int channel = 3;
@@ -35,6 +69,10 @@
         //printf("Predicted in %f seconds.\n", what_time_is_it_now()-attime);
         int nboxes = 0;
         detection *dets = get_network_boxes(m_net, im.w, im.h, m_thresh, m_hier_thresh, 0, 1, &nboxes);
+        if (nboxes > 30) {
+            DBG("nboxes="<<nboxes);
+            return objInfos;
+        }
         if (m_nms) do_nms_sort(dets, nboxes, l.classes, m_nms);
         //  draw_detections(im, dets, nboxes, m_thresh, names, alphabet, l.classes);
         for (int i = 0; i < nboxes; i++) {

--
Gitblit v1.8.0