Triển khai máy khác (Portable)
Cách đóng gói SDK thành một file duy nhất và chạy trên máy mới.
1. Đóng gói (trên máy build)
bash
cd /path/to/CoreAI
bash sdk/scripts/package_sdk.sh # sync headers + libs mới nhất vào sdk/
tar --exclude='sdk/.git' -czf cvedix-sdk-portable-$(date +%Y%m%d).tar.gz sdk
sha256sum cvedix-sdk-portable-*.tar.gz > cvedix-sdk-portable.sha256Package (~3-5MB) chứa: headers, libs .so (đã strip), bindings, samples, docs, cmake, VERSION.
Package KHÔNG chứa model
Model do người dùng tự chuẩn bị — xem Chuẩn bị model. Riêng .engine TensorRT bắt buộc build lại trên máy đích.
2. Cài trên máy đích
bash
# Verify + giải nén
sha256sum -c cvedix-sdk-portable.sha256
tar -xzf cvedix-sdk-portable-*.tar.gz
mv sdk $HOME/cvedix-sdk
# Dependencies hệ thống
sudo apt install -y build-essential cmake libopencv-dev \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
# Biến môi trường
echo 'export CVEDIX_SDK_DIR=$HOME/cvedix-sdk' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$CVEDIX_SDK_DIR/lib/x86_64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc3. Kiểm tra tương thích
bash
# Kiểm tra thiếu dependency
for so in $CVEDIX_SDK_DIR/lib/x86_64/*.so; do
echo "== $so"; ldd "$so" | grep "not found"
doneCác lỗi thường gặp:
Lỗi ldd | Nguyên nhân | Cách xử lý |
|---|---|---|
libopencv_*.so.409 not found | Máy đích có OpenCV khác version | Cài đúng version, hoặc tạo symlink shim |
libnvinfer.so.* not found | Thiếu TensorRT | Cài TensorRT (chỉ cần nếu dùng GPU) — plugin ONNX vẫn chạy được |
libgstreamer* not found | Thiếu GStreamer | apt install libgstreamer1.0-dev |
Plugin độc lập nhau
Mỗi backend plugin load riêng lúc runtime. Máy không có TensorRT vẫn chạy tốt với BackendType::ONNX — chỉ plugin nào được load mới cần dependency của nó.
4. Build lại engine TensorRT (nếu dùng GPU)
bash
/usr/src/tensorrt/bin/trtexec \
--onnx=yolo11n.onnx \
--saveEngine=yolo11n.engine \
--fp16 --memPoolSize=workspace:20485. Chạy thử
bash
cd $CVEDIX_SDK_DIR/samples && mkdir -p build && cd build
cmake -DCVEDIX_SDK_DIR=$CVEDIX_SDK_DIR .. && make -j$(nproc)
./01_basic_pipeline video.mp4 yolo11n.engine labels.txt