# 流水线视频识别 ## 支持功能 1. opencv 软解码 2. nvcuvid 硬解码 3. yolo 检测、关键点模型识别 4. depth-adnything 深度模型识别 5. bytetrack 目标追踪 6. 结果绘制 7. 识别后的视频保存 8. 识别结果http推送 9. 逻辑判断节点 ## 使用示例 ```c++ void test_yolo() { OverflowStrategy stage = OverflowStrategy::Block; int max_size = 100; // std::vector names = { "person", "clothes", "vest" }; std::vector names = { "person", "car", "close", "open" }; // std::shared_ptr src_node0 = std::make_shared("src0", "rtsp://admin:lww123456@172.16.22.16:554/Streaming/Channels/201", 0, GNode::DecodeType::GPU); std::shared_ptr src_node0 = std::make_shared("src0", "carperson.mp4", 0, GNode::DecodeType::GPU); src_node0->set_skip_frame(1); std::shared_ptr yolo_model = load("model/carperson.engine", ModelType::YOLOV5, names, 0, 0.25, 0.45); std::shared_ptr infer_node = std::make_shared("yolov5"); infer_node->set_model_instance(yolo_model, ModelType::YOLO11); std::shared_ptr track_node = std::make_shared("tracker", "person", 30, 30); std::shared_ptr draw_node = std::make_shared("draw_track"); std::shared_ptr record_node = std::make_shared("record"); record_node->set_record_path("result/result.mp4"); record_node->set_fps(25); record_node->set_fourcc(cv::VideoWriter::fourcc('X', '2', '6', '4')); GNode::LinkNode(src_node0, infer_node, max_size, stage); GNode::LinkNode(infer_node, track_node, max_size, stage); GNode::LinkNode(track_node, draw_node, max_size, stage); GNode::LinkNode(draw_node, record_node, max_size, stage); record_node->start(); draw_node->start(); track_node->start(); infer_node->start(); src_node0->start(); getchar(); } ```