Skip to content

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.sha256

Package (~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 ~/.bashrc

3. 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"
done

Các lỗi thường gặp:

Lỗi lddNguyên nhânCách xử lý
libopencv_*.so.409 not foundMáy đích có OpenCV khác versionCài đúng version, hoặc tạo symlink shim
libnvinfer.so.* not foundThiếu TensorRTCài TensorRT (chỉ cần nếu dùng GPU) — plugin ONNX vẫn chạy được
libgstreamer* not foundThiếu GStreamerapt 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:2048

5. 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

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