- Add OpenVocab engine: YOLO-World ONNX detection with runtime vocabulary via CLIP text embeddings (two-input model support) - Add header-only C++ CLIP BPE tokenizer (no external deps) - Add detect(cv::Mat) overload to OpenVocab for camera-free testing - Add standalone test binary (test_open_vocab) using test/assets images - Add export scripts for YOLO-World and CLIP text encoder (uv/PEP 723) - Add installation scripts for Linux x64, ARM (Jetson), and Windows - Update CMakeLists to use find_package(onnxruntime) instead of FetchContent - Update README and AGENTS with env vars, setup workflow, and test usage
57 lines
2.2 KiB
Bash
Executable File
57 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install build dependencies for dora-zed on Ubuntu 24.04 x86_64 (CUDA 12).
|
|
# Skips any component that is already installed.
|
|
# Uses aria2c for fast parallel downloads if available, otherwise falls back to wget.
|
|
# Downloads are placed in ./tmp relative to this script for inspection.
|
|
set -euo pipefail
|
|
|
|
ZED_VERSION="5.2"
|
|
ORT_VERSION="1.24.4"
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
TMP_DIR="${SCRIPT_DIR}/../tmp"
|
|
mkdir -p "$TMP_DIR"
|
|
|
|
download() {
|
|
local url="$1" dest="$2"
|
|
if command -v aria2c &>/dev/null; then
|
|
aria2c -x 16 -s 16 -d "$(dirname "$dest")" -o "$(basename "$dest")" "$url"
|
|
else
|
|
wget -O "$dest" "$url"
|
|
fi
|
|
}
|
|
|
|
# --- ZED SDK ---
|
|
if [ -d /usr/local/zed ]; then
|
|
echo ">>> ZED SDK already installed at /usr/local/zed — skipping."
|
|
else
|
|
echo ">>> Downloading ZED SDK ${ZED_VERSION} for Ubuntu 24.04 (CUDA 12)..."
|
|
download \
|
|
"https://download.stereolabs.com/zedsdk/${ZED_VERSION}/cu12/ubuntu24" \
|
|
"${TMP_DIR}/ZED_SDK.run"
|
|
chmod +x "${TMP_DIR}/ZED_SDK.run"
|
|
echo ">>> Installing ZED SDK (silent)..."
|
|
sudo "${TMP_DIR}/ZED_SDK.run" -- silent skip_python skip_tools
|
|
fi
|
|
|
|
# --- ONNX Runtime (C++ GPU, installs to /usr/local) ---
|
|
if [ -f /usr/local/lib64/libonnxruntime.so ] && [ -d /usr/local/include/onnxruntime ]; then
|
|
echo ">>> ONNX Runtime already installed — skipping."
|
|
else
|
|
echo ">>> Downloading ONNX Runtime ${ORT_VERSION} GPU..."
|
|
download \
|
|
"https://github.com/microsoft/onnxruntime/releases/download/v${ORT_VERSION}/onnxruntime-linux-x64-gpu-${ORT_VERSION}.tgz" \
|
|
"${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}.tgz"
|
|
echo ">>> Extracting..."
|
|
tar -xzf "${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}.tgz" -C "${TMP_DIR}"
|
|
echo ">>> Installing ONNX Runtime to /usr/local..."
|
|
sudo mkdir -p /usr/local/include/onnxruntime
|
|
sudo cp -r "${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}/include/"* /usr/local/include/onnxruntime/
|
|
sudo mkdir -p /usr/local/lib64
|
|
sudo cp -r "${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}/lib/"* /usr/local/lib64/
|
|
sudo ldconfig
|
|
fi
|
|
|
|
echo ">>> Done. You can now run: mkdir -p build && cd build && cmake .. && make install"
|
|
echo ">>> Downloaded files are in ${TMP_DIR}"
|