leon před 1 měsícem
rodič
revize
b927625dcb
2 změnil soubory, kde provedl 63 přidání a 46 odebrání
  1. 57 40
      src/main.cpp
  2. 6 6
      src/nodes/httpPush/httpPush.cpp

+ 57 - 40
src/main.cpp

@@ -7,11 +7,11 @@
 
 void test_depth()
 {
-    std::shared_ptr<Node::StreamNode> src_node0   = std::make_shared<Node::StreamNode>("src0", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/101", 0, Node::DecodeType::GPU);
+    std::shared_ptr<Node::StreamNode> src_node0   = std::make_shared<Node::StreamNode>("src0", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/201", 0, Node::DecodeType::GPU);
     src_node0->set_skip_frame(10);
 
     std::shared_ptr<Infer> depth_model = load("model/depth.engine", ModelType::DEPTH_ANYTHING, {}, 0, 0.25, 0.45);
-    std::shared_ptr<Node::InferNode> infer_node   = std::make_shared<Node::InferNode>("DEPTH_ANYTHING");
+    std::shared_ptr<Node::InferNode> infer_node   = std::make_shared<Node::InferNode>("depth");
     infer_node->set_model_instance(depth_model, ModelType::DEPTH_ANYTHING);
 
     std::shared_ptr<Node::DrawNode> draw_node     = std::make_shared<Node::DrawNode>("draw");
@@ -29,52 +29,69 @@ void test_depth()
 
 void test_yolo()
 {
+    std::shared_ptr<Node::StreamNode> src_node0   = std::make_shared<Node::StreamNode>("src0", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/201", 0, Node::DecodeType::GPU);
+    src_node0->set_skip_frame(10);
 
+    std::shared_ptr<Infer> yolo_model = load("model/yolo11s.engine", ModelType::YOLO11, names, 0, 0.25, 0.45);
+    std::shared_ptr<Node::InferNode> infer_node   = std::make_shared<Node::InferNode>("yolo11");
+    infer_node->set_model_instance(yolo_model, ModelType::YOLO11);
+
+    std::shared_ptr<Node::DrawNode> draw_node     = std::make_shared<Node::DrawNode>("draw");
+    std::shared_ptr<Node::HttpPushNode> push_node = std::make_shared<Node::HttpPushNode>("push", "172.16.20.168", 8080, "/push");
+    
+    Node::LinkNode(src_node0, infer_node);
+    Node::LinkNode(infer_node, draw_node);
+    Node::LinkNode(draw_node, push_node);
+    push_node->start();
+    draw_node->start();
+    infer_node->start();
+    src_node0->start();
+    getchar();
 }
 
-void test_multi_model()
+void test_multi()
 {
-    
+    std::vector<std::string> names = { "person", "clothes", "vest" };
+
+    std::shared_ptr<Node::StreamNode> src_node0   = std::make_shared<Node::StreamNode>("src0", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/101", 0, Node::DecodeType::GPU);
+    src_node0->set_skip_frame(10);
+
+    std::shared_ptr<Node::StreamNode> src_node1   = std::make_shared<Node::StreamNode>("src1", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/201", 0, Node::DecodeType::GPU);
+    src_node1->set_skip_frame(10);
+
+    std::shared_ptr<Node::StreamNode> src_node2   = std::make_shared<Node::StreamNode>("src2", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/301", 0, Node::DecodeType::GPU);
+    src_node2->set_skip_frame(10);
+
+    std::shared_ptr<Infer> yolo_model = load("model/yolo11s.engine", ModelType::YOLO11, names, 0, 0.25, 0.45);
+    std::shared_ptr<Node::InferNode> infer_node1   = std::make_shared<Node::InferNode>("yolo11");
+    infer_node1->set_model_instance(yolo_model, ModelType::YOLO11);
+
+    std::shared_ptr<Infer> depth_model = load("model/depth.engine", ModelType::DEPTH_ANYTHING, {}, 0, 0.25, 0.45);
+    std::shared_ptr<Node::InferNode> infer_node2   = std::make_shared<Node::InferNode>("depth");
+    infer_node2->set_model_instance(depth_model, ModelType::DEPTH_ANYTHING);
+
+    std::shared_ptr<Node::DrawNode> draw_node     = std::make_shared<Node::DrawNode>("draw");
+    std::shared_ptr<Node::HttpPushNode> push_node = std::make_shared<Node::HttpPushNode>("push", "172.16.20.168", 8080, "/push");
+    Node::LinkNode(src_node0, infer_node1);
+    Node::LinkNode(src_node1, infer_node1);
+    Node::LinkNode(src_node2, infer_node1);
+    Node::LinkNode(infer_node1, infer_node2);
+    Node::LinkNode(infer_node2, draw_node);
+    Node::LinkNode(draw_node, push_node);
+    push_node->start();
+    draw_node->start();
+    infer_node1->start();
+    infer_node2->start();
+    src_node0->start();
+    src_node1->start();
+    src_node2->start();
+    getchar();
 }
 
 int main()
 {
-    test_depth();
-    // std::vector<std::string> names = { "person", "clothes", "vest" };
-
-    // std::shared_ptr<Node::StreamNode> src_node0   = std::make_shared<Node::StreamNode>("src0", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/101", 0, Node::DecodeType::GPU);
-    // src_node0->set_skip_frame(10);
-
-    // std::shared_ptr<Node::StreamNode> src_node1   = std::make_shared<Node::StreamNode>("src1", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/201", 0, Node::DecodeType::GPU);
-    // src_node1->set_skip_frame(10);
-
-    // std::shared_ptr<Node::StreamNode> src_node2   = std::make_shared<Node::StreamNode>("src2", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/301", 0, Node::DecodeType::GPU);
-    // src_node2->set_skip_frame(10);
-
-    // std::shared_ptr<Infer> model = load("model/yolo11s.engine", ModelType::YOLO11, names, 0, 0.25, 0.45);
-    // std::shared_ptr<Node::InferNode> infer_node1   = std::make_shared<Node::InferNode>("YOLO11");
-    // infer_node1->set_model_instance(model, ModelType::YOLO11);
-
-    // std::shared_ptr<Infer> depth_model = load("model/depth.engine", ModelType::DEPTH_ANYTHING, {}, 0, 0.25, 0.45);
-    // std::shared_ptr<Node::InferNode> infer_node2   = std::make_shared<Node::InferNode>("DEPTH_ANYTHING");
-    // infer_node2->set_model_instance(depth_model, ModelType::DEPTH_ANYTHING);
-
-    // std::shared_ptr<Node::DrawNode> draw_node     = std::make_shared<Node::DrawNode>("draw");
-    // std::shared_ptr<Node::HttpPushNode> push_node = std::make_shared<Node::HttpPushNode>("push", "172.16.20.168", 8080, "/push");
-    // Node::LinkNode(src_node0, infer_node1);
-    // Node::LinkNode(src_node1, infer_node1);
-    // Node::LinkNode(src_node2, infer_node1);
-    // Node::LinkNode(infer_node1, infer_node2);
-    // Node::LinkNode(infer_node2, draw_node);
-    // Node::LinkNode(draw_node, push_node);
-    // push_node->start();
-    // draw_node->start();
-    // infer_node1->start();
-    // infer_node2->start();
-    // src_node0->start();
-    // src_node1->start();
-    // src_node2->start();
-    // getchar();
+    test_multi();
+    
     return 0;
 }
 

+ 6 - 6
src/nodes/httpPush/httpPush.cpp

@@ -46,12 +46,12 @@ void HttpPushNode::work()
             std::string image_name = "result/" + metaData->from + "_" + getTimeString() + ".jpg";
             cv::imwrite(image_name, image);
 
-            if (!metaData->depth.empty())
-            {
-                get_color_depth(metaData->depth);
-                std::string depth_name = "result/" + metaData->from + "_depth_" + getTimeString() + ".jpg";
-                cv::imwrite(depth_name, get_color_depth(metaData->depth));
-            }
+            // if (!metaData->depth.empty())
+            // {
+            //     get_color_depth(metaData->depth);
+            //     std::string depth_name = "result/" + metaData->from + "_depth_" + getTimeString() + ".jpg";
+            //     cv::imwrite(depth_name, get_color_depth(metaData->depth));
+            // }
         }
         if (!has_data) {
             std::unique_lock<std::mutex> lock(mutex_);