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):
| File | Mô tả |
|---|---|
yolo11n.engine hoặc yolo11n.onnx | Model YOLO (TensorRT hoặc ONNX) |
labels.txt | Danh sách 80 class COCO, mỗi dòng 1 tên |
video.mp4 | Video 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.txtKế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
| Sample | Pipeline | Mô tả |
|---|---|---|
01_basic_pipeline | src → yolo → osd → out | Nhận diện đối tượng cơ bản |
02_face_detection_blur | src → face → osd(blur) → out | Phát hiện + làm mờ khuôn mặt |
03_multi_branch | src → split → 2 nhánh | Fan-out nhiều đầu ra |
Bước tiếp theo
- Chuẩn bị model — convert ONNX → TensorRT engine
- Pipeline Patterns — các topology thông dụng
- Node Catalog — toàn bộ node khả dụng