English | 简体中文
本示例以 YOLO11n-obb 模型为例,展示如何使用命令行界面(CLI)、Python 和 C++ 三种方式进行旋转目标检测推理。
yolo11n-obb.pt,【测试图片】DOTA-part.zip
请通过提供的链接下载所需的 yolo11n-obb.pt
模型文件和测试图片,并将模型文件保存至 models
文件夹,测试图片解压后存放至 images
文件夹。
Important
如果您仅想通过 tensorrt_yolo
提供的命令行界面(CLI)工具 trtyolo
,导出可供该项目推理的 ONNX 模型(带 TensorRT 插件),可以通过 PyPI 安装,只需执行以下命令即可:
pip install -U tensorrt_yolo
如果想体验与 C++ 同样的推理速度,则请参考 安装-tensorrt_yolo 自行构建最新版本的 tensorrt_yolo
。
使用以下命令导出带 EfficientRotatedNMS 插件的 ONNX 格式,详细的 trtyolo
CLI 导出方法请阅读 模型导出:
trtyolo export -w models/yolo11n-obb.pt -v yolo11 -o models -s
运行上述命令后,models
文件夹中将生成一个 batch_size
为 1 的 yolo11n-obb.onnx
文件。接下来,使用 trtexec
工具将 ONNX 文件转换为 TensorRT 引擎(fp16):
trtexec --onnx=models/yolo11n-obb.onnx --saveEngine=models/yolo11n-obb.engine --fp16 --staticPlugins=/path/to/your/TensorRT-YOLO/lib/plugin/libcustom_plugins.so --setPluginsToSerialize=/path/to/your/TensorRT-YOLO/lib/plugin/libcustom_plugins.so
Important
通过 PyPI 安装的 tensorrt_yolo
仅提供可供该项目推理的 ONNX 模型(带 TensorRT 插件) 功能,不提供推理功能。
如果想体验与 C++ 同样的推理速度,则请参考 安装-tensorrt_yolo 自行构建最新版本的 tensorrt_yolo
。
Note
从 4.0 版本开始新增的 --cudaGraph
指令可以进一步加速推理过程,但该功能仅支持静态模型。
从 4.2 版本开始,支持 OBB 推理,并新增 -m, --mode
指令,用于选择 Detect 还是 OBB。
-
使用
tensorrt_yolo
库的trtyolo
命令行工具进行推理。运行以下命令查看帮助信息:trtyolo infer --help
-
运行以下命令进行推理:
trtyolo infer -e models/yolo11n-obb.engine -m 1 -i images -o output -l labels.txt --cudaGraph
推理结果将保存至
output
文件夹,并生成可视化结果。
-
使用
tensorrt_yolo
库运行示例脚本obb.py
进行推理。 -
运行以下命令进行推理:
python obb.py -e models/yolo11n-obb.engine -i images -o output -l labels.txt --cudaGraph
-
确保已按照
TensorRT-YOLO
编译 对项目进行编译。 -
将
obb.cpp
编译为可执行文件:# 使用 xmake 编译 xmake f -P . --tensorrt="/path/to/your/TensorRT" --deploy="/path/to/your/TensorRT-YOLO" xmake -P . -r # 使用 cmake 编译 mkdir -p build && cd build cmake -DTENSORRT_PATH="/path/to/your/TensorRT" -DDEPLOY_PATH="/path/to/your/TensorRT-YOLO" .. cmake --build . -j8 --config Release
编译完成后,可执行文件将生成在项目根目录的
bin
文件夹中。 -
使用以下命令运行推理:
cd bin ./obb -e ../models/yolo11n-obb.engine -i ../images -o ../output -l ../labels.txt --cudaGraph
Important
在使用 --fp16
参数构建的 OBB 模型进行推理时,可能会出现锚框重复的问题。这种情况通常是由于精度下降造成的。因此,不推荐使用 --fp16
精度模式构建OBB模型。
通过以上方式,您可以顺利完成模型推理。