Xử lý sự cố
Lỗi build / link
fatal error: cvedix/... No such file or directory
Include path chưa trỏ tới SDK:
cmake
target_include_directories(my_app PRIVATE ${CVEDIX_SDK_DIR}/include)undefined reference to cvedix_nodes::...
Chưa link cvedix_core hoặc thiếu link directory:
cmake
target_link_directories(my_app PRIVATE ${CVEDIX_SDK_DIR}/lib/x86_64)
target_link_libraries(my_app PRIVATE cvedix_core)Lỗi runtime
error while loading shared libraries: libcvedix_core.so
bash
export LD_LIBRARY_PATH=$CVEDIX_SDK_DIR/lib/x86_64:$LD_LIBRARY_PATHlibopencv_imgproc.so.409 => not found
Plugin được build với OpenCV 4.9 nhưng máy có version khác. Kiểm tra:
bash
ldd $CVEDIX_SDK_DIR/lib/x86_64/libtrt_yolov11.so | grep opencvGiải pháp: cài đúng OpenCV version, hoặc tạo symlink shim tạm:
bash
mkdir -p /tmp/opencv-shim
for lib in /usr/local/lib/libopencv_*.so.4*; do
base=$(basename "$lib" | sed 's/\.so\..*/\.so.409/')
ln -sf "$lib" "/tmp/opencv-shim/$base"
done
export LD_LIBRARY_PATH=/tmp/opencv-shim:$LD_LIBRARY_PATHincompatible serialization version (TensorRT)
File .engine được build bằng TensorRT version khác. Build lại engine trên máy đang chạy:
bash
/usr/src/tensorrt/bin/trtexec --onnx=model.onnx --saveEngine=model.engine --fp16Kết quả hiện class_0, class_1 thay vì tên class
Thiếu hoặc sai file labels.txt. Kiểm tra log lúc khởi động:
[det] Loaded 80 labels from labels.txt ← phải có dòng nàyqueue full, dropped N meta
Node phía sau xử lý chậm hơn node phía trước — không phải bug, là backpressure:
- Realtime:
node->set_max_in_queue_size(1)để luôn xử lý frame mới nhất. - Cần đủ frame: giảm FPS nguồn (skip_interval ở source) hoặc giảm resolution (resize ratio).
Detector chọn nhầm backend
BackendType::AUTO ưu tiên TensorRT nếu phát hiện GPU. Muốn ép ONNX:
cpp
cvedix_nodes::BackendType::ONNX // tham số cuối của yolo_detector_nodeRTSP không kết nối được
bash
# Test bằng GStreamer trước
gst-launch-1.0 rtspsrc location=rtsp://user:pass@ip/stream ! fakesinkKiểm tra firewall, credentials, và codec (H.264/H.265).
Debug tổng quát
bash
# Xem toàn bộ dependency của executable
ldd ./my_app | grep "not found"
# Tăng log level trong code
CVEDIX_SET_LOG_LEVEL(cvedix_utils::cvedix_log_level::DEBUG);Vẫn kẹt? Xem FAQ hoặc liên hệ team CVEDIX.