From 59408e43480b48b6acd6e76641ff1a97811e7ab5 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 10 一月 2019 18:19:49 +0800
Subject: [PATCH] 修改yoloServer 优化多线程?

---
 QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp |  100 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 62 insertions(+), 38 deletions(-)

diff --git a/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp b/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp
index 23c9f92..974c7cc 100644
--- a/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp
+++ b/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp
@@ -9,71 +9,95 @@
 #include <basic/pipe/PipeController.h>
 #include <basic/pipe_element/ffmpeg/VideoCaptureElement.h>
 #include "ImageDrawElement.h"
-#include "YoloRpcElement.h"
-class Controllor : public PipeController
-{
+#include <YoloRpcElement.h>
+#include <basic/util/app/AppPreference.hpp>
+
+class Controllor : public PipeController {
 public:
-    Controllor(const int index,const std::string& rtsp):m_videoCaptureElement(rtsp,25,1000,0),
-        m_YoloRpcElement(std::to_string(index)+"YoloRpc")
-    {
+    Controllor(const int index, const std::string &rtsp) : m_videoCaptureElement(rtsp, 25, 1000, 0),
+                                                           m_YoloRpcElement(std::to_string(index) + "YoloRpc") {
+        m_index = index;
         m_rtsp = rtsp;
-        m_videoCaptureElement.registerConnector([&]{
-            if(!m_YoloRpcElement.isBusy()){
+        m_videoCaptureElement.registerConnector([&] {
+            if (!m_YoloRpcElement.isBusy()) {
                 m_YoloRpcElement.setImage(m_videoCaptureElement.getImage());
-    //            paElement.setImage(videoCaptureElement.getImage());
-    //            paNumElement.setImage(videoCaptureElement.getImage());
+                //            paElement.setImage(videoCaptureElement.getImage());
+                //            paNumElement.setImage(videoCaptureElement.getImage());
                 m_YoloRpcElement.submit();
             }
-            if(!m_imageDrawElement.isBusy()){
+            if (!m_imageDrawElement.isBusy()) {
                 m_imageDrawElement.setImage(m_videoCaptureElement.getImage());
                 m_imageDrawElement.submit();
             }
         });
 
-        m_YoloRpcElement.registerConnector([&]{
-                m_imageDrawElement.setRects(m_YoloRpcElement.getRects());
+        m_YoloRpcElement.registerConnector([&] {
+            m_imageDrawElement.setYoloObjects(m_YoloRpcElement.getLastScoreRects());
         });
 
-        m_imageDrawElement.registerConnector([&]{
-            ImageShowElement::showImage(m_rtsp,*m_imageDrawElement.getImage());
+        m_imageDrawElement.registerConnector([&] {
+//            ImageShowElement::showImage(std::to_string(m_index), *m_imageDrawElement.getImage());
 
         });
-        m_videoCaptureElement.setOutPutInterval(2);
+        m_videoCaptureElement.setOutPutInterval(3);
         registerElement(m_videoCaptureElement);
         registerElement(m_YoloRpcElement);
         registerElement(m_imageDrawElement);
     }
-    virtual ~Controllor()
-    {}
+
+    virtual ~Controllor() {}
 
 private:
     std::string m_rtsp;
     ffmpeg::VideoCaptureElement m_videoCaptureElement;
     YoloRpcElement m_YoloRpcElement;
     ImageDrawElement m_imageDrawElement;
+    int m_index;
 };
 
-using namespace std;
-int main(int argc, char *argv[])
-{
+//using namespace std;
+int main(int argc, char *argv[]) {
     SAVE_APP_ARGS
-    Controllor _Controllor(0,"/home/basic/video/201804/day0416/01010002606000000-slice1.mp4");
-    _Controllor.start();
 
-    Controllor _Controllor0(1,"/home/basic/video/201804/day0416/01010002606000000-slice2.mp4");
-    _Controllor0.start();
-    cout << "Hello World!" << endl;
-    Controllor _Controllor1(2,"/home/basic/video/201804/day0416/01010002609000000-slice.mp4");
-    _Controllor1.start();
-    Controllor _Controllor2(3,"/home/basic/video/201804/day0416/01010002611000000-slice.mp4");
-    _Controllor2.start();
-    Controllor _Controllor3(4,"/home/basic/video/201804/night0418/02000000652000100-slice.mp4");
-    _Controllor3.start();
-    Controllor _Controllor4(5,"/home/basic/video/201804/night0418/02000000654000100-slice.mp4");
-    _Controllor4.start();
-    Controllor _Controllor5(6,"/home/basic/video/201804/night0418/02000000659000100-slice.mp4");
-    _Controllor5.start();
-    while(true)
-    {sleep(1);}
+    int num = atoi(argv[1]);
+    std::string path(argv[2]);
+    int portNum = atoi(argv[3]);
+    //yolo server
+    appPref.setStringData("yolo.proxy", "yoloServer");
+    //#todo
+    appPref.setStringData("yolo.ip", "");
+    appPref.setIntData("yolo.port", portNum);
+//    rpcClient(appPref.getStringData("yolo.proxy"), appPref.getStringData("yolo.ip"), appPref.getLongData("yolo.port"),"tcp"),
+
+    for (int i = 0; i < num; i++) {
+        Controllor *_Controllor = new Controllor(i, path);
+        _Controllor->start();
+    }
+
+//    Controllor _Controllor(0, "/home/bsk/2.mp4");
+//    _Controllor.start();
+//    Controllor _Controllor1(1, "/home/bsk/2.mp4");
+//    _Controllor1.start();
+//    Controllor _Controllor2(2, "/home/bsk/2.mp4");
+//    _Controllor2.start();
+//    Controllor _Controllor3(3, "/home/bsk/2.mp4");
+//    _Controllor3.start();
+//    Controllor _Controllor4(4, "/home/bsk/2.mp4");
+//    _Controllor4.start();
+
+//    Controllor _Controllor0(1,"/home/basic/video/201804/day0416/01010002606000000-slice2.mp4");
+//    _Controllor0.start();
+//    cout << "Hello World!" << endl;
+//    Controllor _Controllor1(2,"/home/basic/video/201804/day0416/01010002609000000-slice.mp4");
+//    _Controllor1.start();
+//    Controllor _Controllor2(3,"/home/basic/video/201804/day0416/01010002611000000-slice.mp4");
+//    _Controllor2.start();
+//    Controllor _Controllor3(4,"/home/basic/video/201804/night0418/02000000652000100-slice.mp4");
+//    _Controllor3.start();
+//    Controllor _Controllor4(5,"/home/basic/video/201804/night0418/02000000654000100-slice.mp4");
+//    _Controllor4.start();
+//    Controllor _Controllor5(6,"/home/basic/video/201804/night0418/02000000659000100-slice.mp4");
+//    _Controllor5.start();
+    while (true) { sleep(10); }
     return 0;
 }

--
Gitblit v1.8.0