#include "nodes/base/base.hpp" #include "nodes/stream/streamNode.hpp" #include "nodes/infer/inferNode.hpp" #include "nodes/draw/drawNode.hpp" #include "nodes/httpPush/httpPush.hpp" int main() { std::vector names = { "person", "clothes", "vest" }; std::shared_ptr src_node0 = std::make_shared("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 src_node1 = std::make_shared("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 src_node2 = std::make_shared("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 model = load("model/yolo11s.engine", ModelType::YOLO11, names, 0, 0.25, 0.45); std::shared_ptr infer_node1 = std::make_shared("YOLO11"); infer_node1->set_model_instance(model, ModelType::YOLO11); std::shared_ptr depth_model = load("model/depth.engine", ModelType::DEPTH_ANYTHING, {}, 0, 0.25, 0.45); std::shared_ptr infer_node2 = std::make_shared("DEPTH_ANYTHING"); infer_node2->set_model_instance(depth_model, ModelType::DEPTH_ANYTHING); std::shared_ptr draw_node = std::make_shared("draw"); std::shared_ptr push_node = std::make_shared("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(); return 0; } // TODO // 硬解码、软解码 完成 软解使用opencv + ffmpeg,硬解使用nvcodec + ffmpeg // 模型复用 完成,基类加锁保证一致性 // 画图节点 完成 // 推送节点 基本完成 // 分析节点 // depth-anything 进行中 // YOLO11 seg // 通过配置文件创建 pipeline // 日志 // 设置电子围栏