YOLOv8-TensorRT: 使用TensorRT加速YOLOv8目标检测

Ray

YOLOv8-TensorRT

YOLOv8-TensorRT: 使用TensorRT加速YOLOv8目标检测

YOLOv8是目前最先进的目标检测算法之一,具有出色的精度和速度。而TensorRT作为NVIDIA推出的高性能深度学习推理优化器和运行时环境,能够显著提升模型的推理速度。本文将详细介绍如何使用TensorRT加速YOLOv8,助力开发者实现高性能的YOLOv8部署。

环境准备

在开始使用YOLOv8-TensorRT之前,我们需要做好以下环境准备:

  1. 安装CUDA

    建议安装CUDA 11.4或更高版本。可以从NVIDIA CUDA官网下载并安装。

  2. 安装TensorRT

    推荐安装TensorRT 8.4或更高版本。可以从NVIDIA TensorRT官网下载并安装。

  3. 安装Python依赖

    执行以下命令安装所需的Python包:

    pip install -r requirements.txt
    
  4. 安装ultralytics包

    这个包用于ONNX导出或TensorRT API构建:

    pip install ultralytics
    
  5. 准备PyTorch权重文件

    例如yolov8s.ptyolov8s-seg.pt

🚀 注意: 请使用最新版本的CUDA和TensorRT以获得最佳性能。如果必须使用较低版本,请仔细阅读相关问题。

导出端到端ONNX模型

我们可以使用ultralytics API导出ONNX模型,并同时将后处理(如边界框解码和NMS)添加到ONNX模型中:

python3 export-det.py \
--weights yolov8s.pt \
--iou-thres 0.65 \
--conf-thres 0.25 \
--topk 100 \
--opset 11 \
--sim \
--input-shape 1 3 640 640 \
--device cuda:0

参数说明:

  • --weights: 训练好的PyTorch模型
  • --iou-thres: NMS插件的IOU阈值
  • --conf-thres: NMS插件的置信度阈值
  • --topk: 检测框的最大数量
  • --opset: ONNX操作集版本,默认为11
  • --sim: 是否简化ONNX模型
  • --input-shape: 模型输入shape,应为4维
  • --device: 导出引擎的CUDA设备

执行后将得到一个与输入权重同名的ONNX模型。

构建TensorRT引擎

有两种方法可以从ONNX模型构建TensorRT引擎:

  1. 使用TensorRT ONNX Python API

    使用build.py脚本从ONNX导出TensorRT引擎:

    python3 build.py \
    --weights yolov8s.onnx \
    --iou-thres 0.65 \
    --conf-thres 0.25 \
    --topk 100 \
    --fp16  \
    --device cuda:0
    

    参数说明:

    • --weights: 下载的ONNX模型
    • --iou-thres: NMS插件的IOU阈值
    • --conf-thres: NMS插件的置信度阈值
    • --topk: 检测框的最大数量
    • --fp16: 是否导出半精度引擎
    • --device: 导出引擎的CUDA设备
  2. 使用Trtexec工具

    也可以使用NVIDIA提供的trtexec工具导出TensorRT引擎:

    /usr/src/tensorrt/bin/trtexec \
    --onnx=yolov8s.onnx \
    --saveEngine=yolov8s.engine \
    --fp16
    

    注意:trtexec的安装路径可能因TensorRT的安装方式而异。

推理部署

Python推理

可以使用infer-det.py脚本进行图像推理:

python3 infer-det.py \
--engine yolov8s.engine \
--imgs data \
--show \
--out-dir outputs \
--device cuda:0

参数说明:

  • --engine: 导出的引擎文件
  • --imgs: 要检测的图像路径
  • --show: 是否显示检测结果
  • --out-dir: 保存检测结果图像的位置
  • --device: 使用的CUDA设备
  • --profile: 是否对TensorRT引擎进行性能分析

C++推理

csrc/detect/end2end目录下提供了C++推理代码。使用前需要在CMakeLists.txt中设置自己的库路径,并在main.cpp中修改CLASS_NAMESCOLORS

构建步骤:

export root=${PWD}
cd csrc/detect/end2end
mkdir -p build && cd build
cmake ..
make
mv yolov8 ${root}
cd ${root}

使用方法:

# 推理单张图片
./yolov8 yolov8s.engine data/bus.jpg

# 推理多张图片
./yolov8 yolov8s.engine data

# 推理视频
./yolov8 yolov8s.engine data/test.mp4

其他功能

  1. TensorRT分割模型部署

    详情请参考Segment.md

  2. TensorRT姿态估计模型部署

    详情请参考Pose.md

  3. TensorRT分类模型部署

    详情请参考Cls.md

  4. DeepStream检测模型部署

    详情请参考csrc/deepstream/README.md

  5. Jetson部署

    仅在Jetson-NX 4GB上测试过,详情请参考Jetson.md

  6. 引擎性能分析

    如果想对TensorRT引擎进行性能分析:

    python3 trt-profile.py --engine yolov8s.engine --device cuda:0
    
  7. 无PyTorch推理

    如果需要脱离PyTorch使用TensorRT推理,可以参考infer-det-without-torch.py。该脚本支持使用cuda-pythonpycuda进行推理,但性能可能不如PyTorch版本。

    安装依赖:

    pip install cuda-python
    # 或
    pip install pycuda
    

    使用方法:

    python3 infer-det-without-torch.py \
    --engine yolov8s.engine \
    --imgs data \
    --show \
    --out-dir outputs \
    --method cudart
    

    参数--method可选cudartpycuda,默认为cudart

通过本文的详细介绍,相信读者已经对如何使用TensorRT加速YOLOv8有了全面的了解。YOLOv8-TensorRT不仅提供了完整的模型转换和部署流程,还支持多种任务类型和部署平台,是一个功能强大且灵活的工具。希望这个项目能够帮助更多开发者实现高性能的YOLOv8部署,推动计算机视觉技术的应用和发展。

YOLOv8-TensorRT架构图

YOLOv8-TensorRT项目为开发者提供了一个强大的工具,使其能够轻松地将YOLOv8模型与TensorRT结合,实现高效的目标检测。无论是在边缘设备还是在服务器上,这个项目都能帮助开发者充分发挥硬件性能,加速AI应用的部署。我们期待看到更多基于YOLOv8-TensorRT的创新应用,为计算机视觉领域带来新的可能性。

avatar
0
0
0
相关项目
Project Cover

ultralytics

Ultralytics的YOLOv8是一款前沿对象识别模型,提供了与前代产品相比更优化的特性。适用于对象检测、跟踪、实例分割和图像分类等多种应用场景,其高速准确性和用户友好性使其成为AI领域开发者的优选。更多细节,请参阅官方文档或参与Discord社区互动。

Project Cover

yoloair

YOLOAir2024版发布,提供多模型支持及改进教程,包括YOLOv5、YOLOv7、YOLOv8等。通过统一框架和模块化实现模型多样化应用,如目标检测、实例分割、图像分类等,适用于科研与实际应用。免费提供源代码。

Project Cover

Aimmy

Aimmy由BabyHamsta、MarsQQ和Taylor开发,是通用的AI驱动瞄准对齐机制,专为需要瞄准辅助的玩家设计。采用DirectML、ONNX和YOLOv8技术,特别在AMD GPU上有卓越性能,提供高精度和快速响应。Aimmy拥有直观的用户界面和多种自定义选项,不需编程技能即可使用,适用于各种游戏。软件完全免费,无广告和付费障碍。加入官方Discord社区了解更多信息,提升游戏瞄准体验。

Project Cover

inference

Roboflow Inference 是一个开源平台,简化了计算机视觉模型的部署。通过 Python 原生包、自托管推理服务器或托管的 API,开发者可以执行对象检测、分类和实例分割,并使用基础模型如 CLIP、Segment Anything 和 YOLO-World。平台提供了高级功能,如服务器部署、设备管理和主动学习。支持 GPU 加速环境,并提供详尽的文档和教程,帮助用户充分利用 Inference 包的功能。

Project Cover

hcaptcha-challenger

hCaptcha Challenger是一款通过嵌入MoE(ONNX)技术解决hCaptcha挑战的项目,无需依赖Tampermonkey脚本或第三方反机器人服务。支持ResNet、YOLOv8和ViT等多种模型,涵盖图像分类和选择题等多种挑战类型。项目提供详细的工作流程与数据集处理方法,并持续更新模型和资源,确保解决方案的高效与先进。

Project Cover

YOLOv8-TensorRT

本项目通过TensorRT加速YOLOv8模型,提供在CUDA环境下的快速部署和高效推理解决方案。包括环境准备、模型导出、引擎构建和多种推理方法,支持Python和C++语言。特性涵盖ONNX模型导出、端到端引擎构建和模型推理,适用于图像和视频的不同输入源。支持Jetson设备,并附有详细的文档和脚本,便于操作,提升深度学习应用性能。

Project Cover

ONNX-YOLOv8-Object-Detection

本项目提供了一种将YOLOv8模型转换为ONNX格式的高效方法,支持在NVIDIA GPU或CPU上进行对象检测。确保输入图片尺寸与模型要求一致,以获得最佳检测精度。项目配有详细的安装指南和推理示例,包括图片、摄像头和视频推理,方便开发者快速上手并应用于实际场景。

Project Cover

YOLOv8-TensorRT-CPP

本文介绍了如何使用TensorRT的C++ API实现YOLOv8模型的推理,支持目标检测、语义分割和身体姿态估计,包括系统要求、安装步骤、模型转换和项目构建方法。内容中强调了在GPU上运行推理的注意事项和性能基准测试,提供了从PyTorch到ONNX模型转换的详细步骤,是开发计算机视觉应用的参考资料。

Project Cover

YOLOv8-multi-task

YOLOv8-multi-task项目提出了一种轻量级神经网络模型,可同时执行目标检测、可行驶区域分割和车道线检测等多任务。该模型使用自适应拼接模块和通用分割头设计,在提高性能的同时保持高效率。实验表明,该模型在推理速度和可视化效果方面优于现有方法,适用于需要实时处理的多任务场景。

最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号