Skip to content

Chạy pipeline đầu tiên

Mục tiêu: build và chạy sample nhận diện đối tượng YOLO từ SDK trong ~5 phút.

1. Build samples

bash
cd $CVEDIX_SDK_DIR/samples
mkdir -p build && cd build
cmake -DCVEDIX_SDK_DIR=$CVEDIX_SDK_DIR ..
make -j$(nproc)

2. Chuẩn bị model + video

Bạn cần 3 file (xem chi tiết ở Chuẩn bị model):

FileMô tả
yolo11n.engine hoặc yolo11n.onnxModel YOLO (TensorRT hoặc ONNX)
labels.txtDanh sách 80 class COCO, mỗi dòng 1 tên
video.mp4Video test bất kỳ

File labels là bắt buộc

Thiếu labels.txt thì kết quả sẽ hiển thị class_0, class_1… thay vì person, car

3. Chạy

bash
./01_basic_pipeline video.mp4 yolo11n.engine labels.txt

Kết quả mong đợi — log detection theo từng frame:

[det] Loaded 80 labels from labels.txt
[det] Backend loaded: TensorRT, model: yolo11n.engine
frame 0: 7 object(s)
  [person] score=0.84 track=-1 box=(869,117,135,381)
  [person] score=0.80 track=-1 box=(45,206,196,434)
  ...

4. Viết ứng dụng C++ tối giản

cpp
#include <cvedix/nodes/src/cvedix_file_src_node.h>
#include <cvedix/nodes/infers/cvedix_yolo_detector_node.h>
#include <cvedix/nodes/osd/cvedix_osd_node.h>
#include <cvedix/nodes/des/cvedix_screen_des_node.h>

int main() {
    CVEDIX_LOGGER_INIT();

    auto src = std::make_shared<cvedix_nodes::cvedix_file_src_node>(
        "src", 0, "video.mp4", 1.0);
    auto det = std::make_shared<cvedix_nodes::cvedix_yolo_detector_node>(
        "det", "yolo11n.engine", cvedix_nodes::YoloVersion::YOLO11,
        "labels.txt", 0.45f, 0.5f);
    auto osd = std::make_shared<cvedix_nodes::cvedix_osd_node>("osd");
    auto screen = std::make_shared<cvedix_nodes::cvedix_screen_des_node>("screen", 0);

    det->attach_to({src});      // src → det → osd → screen
    osd->attach_to({det});
    screen->attach_to({osd});

    src->start();
    std::cin.get();             // Enter để dừng
    src->detach_recursively();
}

Sample có sẵn

SamplePipelineMô tả
01_basic_pipelinesrc → yolo → osd → outNhận diện đối tượng cơ bản
02_face_detection_blursrc → face → osd(blur) → outPhát hiện + làm mờ khuôn mặt
03_multi_branchsrc → split → 2 nhánhFan-out nhiều đầu ra

Bước tiếp theo

Phần mềm độc quyền — CVEDIX