English | 简体中文
本示例以 YOLOv8s 模型为例,展示如何使用 CLI、Python 和 C++ 三种方式进行模型推理。
Important
如果要使用 EfficientRotatedNMS 插件推理 OBB 模型,请参考 构建 TensorRT 自定义插件 进行构建。
-
下载 YOLOv8s 模型,并将其保存至
models
文件夹。 -
使用以下命令将模型导出为带有 EfficientNMS 插件的 ONNX 格式:
trtyolo export -w models/yolov8s.pt -v yolov8 -o models
运行上述命令后,
models
文件夹中将生成yolov8s.onnx
文件。接下来,使用trtexec
工具将 ONNX 文件转换为 TensorRT 引擎:trtexec --onnx=models/yolov8s.onnx --saveEngine=models/yolov8s.engine --fp16
-
下载 YOLOv8s-obb 模型,并将其保存至
models
文件夹。 -
使用以下命令将模型导出为带有 EfficientRotatedNMS 插件的 ONNX 格式:
trtyolo export -w models/yolov8s-obb.pt -v yolov8 -o models
运行上述命令后,
models
文件夹中将生成yolov8s-obb.onnx
文件。接下来,使用trtexec
工具将 ONNX 文件转换为 TensorRT 引擎:trtexec --onnx=models/yolov8s-obb.onnx --saveEngine=models/yolov8s-obb.engine --fp16
- 下载 coco128 数据集。
- 解压后,将
coco128/images/train2017
文件夹中的图像移动到images
文件夹,以供推理使用。
- 下载 DOTA-v1.0 数据集。
- 解压后,将
part1/images
文件夹中的图像移动到images
文件夹,以供推理使用。
-
使用
trtyolo
命令行工具进行推理。运行以下命令查看帮助信息:trtyolo infer --help
-
运行以下命令进行推理:
[!NOTE] 从 4.0 版本开始新增的
--cudaGraph
指令可以进一步加速推理过程,但该功能仅支持静态模型。从 4.2 版本开始,支持 OBB 模型推理,并新增
-m, --mode
指令,用于选择 Detection 还是 OBB 模型。# 检测模型 trtyolo infer -e models/yolov8s.engine -m 0 -i images -o output -l labels_det.txt --cudaGraph # 旋转边界框模型 trtyolo infer -e models/yolov8s-obb.engine -m 1 -i images -o output -l labels_obb.txt --cudaGraph
推理结果将保存至
output
文件夹,并生成可视化结果。
-
使用
tensorrt_yolo
库进行 Python 推理。示例脚本detect.py
已准备好。 -
运行以下命令进行推理:
[!NOTE]
--cudaGraph
指令可以进一步加速推理过程,但该功能仅支持静态模型。# 检测模型 python detect.py -e models/yolov8s.engine -m 0 -i images -o output -l labels_det.txt --cudaGraph # 旋转边界框模型 python detect.py -e models/yolov8s-obb.engine -m 1 -i images -o output -l labels_obb.txt --cudaGraph
-
确保已按照 Deploy 编译指南 对项目进行编译。
-
使用 xmake 将
detect.cpp
编译为可执行文件:xmake f -P . --tensorrt="/path/to/your/TensorRT" --deploy="/path/to/your/TensorRT-YOLO" xmake -P . -r
编译完成后,可执行文件将生成在项目根目录的
build
文件夹中。 -
使用以下命令运行推理:
[!NOTE]
--cudaGraph
指令可以进一步加速推理过程,但该功能仅支持静态模型。# 检测模型 xmake run -P . detect -e models/yolov8s.engine -m 0 -i images -o output -l labels_det.txt --cudaGraph # 旋转边界框模型 xmake run -P . detect -e models/yolov8s-obb.engine -m 1 -i images -o output -l labels_obb.txt --cudaGraph
通过以上方式,您可以顺利完成模型推理。