#!/usr/bin/env bash # 【旧命令,已改为转发壳】YOLO 权重 → TensorRT engine。 # # 请改用新命令(多了改名、归位、标签固化、staging 等功能): # # bash ~/ros2/scripts/weights.sh convert <文件> --name <模型名> # bash ~/ros2/scripts/weights.sh list # bash ~/ros2/scripts/weights.sh labels <模型名> # # 本脚本保留只为兼容旧文档/旧习惯,行为等价于: # weights.sh convert --name <同名主干> --to engine [--imgsz N] # # 原用法(仍然可用): # bash ~/ros2/scripts/export_yolo_trt.sh # bash ~/ros2/scripts/export_yolo_trt.sh /path/to/xxx.onnx 640 set -eo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # shellcheck disable=SC1091 source "${ROOT}/scripts/lib/load_site_config.sh" >/dev/null 2>&1 || true WEIGHTS="${1:-${SITE_YOLO_WEIGHTS:-${ROOT}/models/yolo/detect_best.onnx}}" IMGSZ="${2:-${SITE_YOLO_IMGSZ:-640}}" if [[ ! -f "${WEIGHTS}" ]]; then echo "ERROR: weights not found: ${WEIGHTS}" >&2 exit 1 fi # 取文件名主干做模型名:xxx.onnx → xxx BASE="$(basename "${WEIGHTS}")" NAME="${BASE%.*}" DIR="$(dirname "${WEIGHTS}")" # 分组 = 权重所在目录名(相对 models/ 的那一层) GROUP="$(basename "${DIR}")" echo "提示: export_yolo_trt.sh 已改为转发壳,建议直接用:" echo " bash ~/ros2/scripts/weights.sh convert ${WEIGHTS} --name ${NAME}" echo exec bash "${ROOT}/scripts/weights.sh" convert "${WEIGHTS}" \ --name "${NAME}" \ --group "${GROUP}" \ --to engine \ --imgsz "${IMGSZ}" \ --force