news 2026/9/25 5:05:35

linux下 yolov8 tensorrt模型部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux下 yolov8 tensorrt模型部署
  • TensorRT系列之 Windows10下yolov8 tensorrt模型加速部署

  • TensorRT系列之 Linux下 yolov8 tensorrt模型加速部署

  • TensorRT系列之 Linux下 yolov7 tensorrt模型加速部署

  • TensorRT系列之 Linux下 yolov6 tensorrt模型加速部署

  • TensorRT系列之 Linux下 yolov5 tensorrt模型加速部署

  • TensorRT系列之 Linux下 yolox tensorrt模型加速部署

  • TensorRT系列之 Linux下 u2net tensorrt模型加速部署

  • 更多(点我进去)…

    文章目录

    • ubuntu下yolov8 tensorrt模型加速部署【实战】
    • 一、加速结果展示
      • 1.1 性能速览
      • 1.2精度对齐
    • 二、Ubuntu18.04环境配置
      • 2.1 安装工具链和opencv
      • 2.2 安装Nvidia相关库
        • 2.2.1 安装Nvidia显卡驱动
        • 2.2.2 安装 cuda11.3
        • 2.2.3 安装 cudnn8.2
        • 2.2.4 下载 tensorrt8.4.2.4
        • 2.2.5 下载仓库TensorRT-Alpha并设置
    • 三、YOLOv8模型部署
      • 3.1 获取YOLOv8onnx文件
      • 3.2 编译 onnx
      • 3.3 编译运行
    • 四、如何部署自己训练的yolov8模型
    • 五、参考

ubuntu下yolov8 tensorrt模型加速部署【实战】

TensorRT-Alpha基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、linux,在2023年已经更新模型:YOLOv8, YOLOv7, YOLOv6, YOLOv5, YOLOv4, YOLOv3, YOLOX, YOLOR,pphumanseg,u2net,EfficientDet。
仓库TensorRT-Alpha:https://github.com/FeiYull/TensorRT-Alpha/tree/legacy

一、加速结果展示

1.1 性能速览

🚀快速看看yolov8n 在移动端RTX2070m(8G)的新能表现:

modelvideo resolutionmodel input sizeGPU Memory-UsageGPU-Util
yolov8n1920x10808x3x640x6401093MiB/7982MiB14%

下图是yolov8n的运行时间开销,单位是ms:

更多TensorRT-Alpha测试录像在B站视频:
B站:YOLOv8n
B站:YOLOv8s

1.2精度对齐

下面是左边是python框架推理结果,右边是TensorRT-Alpha推理结果。

yolov8n : Offical( left ) vs Ours( right )

yolov7-tiny : Offical( left ) vs Ours( right )

yolov6s : Offical( left ) vs Ours( right )

yolov5s : Offical( left ) vs Ours( right )

YOLOv4 YOLOv3 YOLOR YOLOX略。

二、Ubuntu18.04环境配置

如果您对tensorrt不是很熟悉,请务必保持下面库版本一致。
请注意: Linux系统安装以下库,务必去进入系统bios下,关闭安全启动(设置 secure boot 为 disable)

2.1 安装工具链和opencv

sudoapt-getupdatesudoapt-getinstallbuild-essentialsudoapt-getinstallgitsudoapt-getinstallgdbsudoapt-getinstallcmake
sudoapt-getinstalllibopencv-dev# pkg-config --modversion opencv

2.2 安装Nvidia相关库

注:Nvidia相关网站需要注册账号。

2.2.1 安装Nvidia显卡驱动

ubuntu-drivers devicessudoadd-apt-repository ppa:graphics-drivers/ppasudoaptupdatesudoaptinstallnvidia-driver-470-server# for ubuntu18.04nvidia-smi

2.2.2 安装 cuda11.3

  • 进入链接: https://developer.nvidia.com/cuda-toolkit-archive
  • 选择:CUDA Toolkit 11.3.0(April 2021)
  • 选择:[Linux] -> [x86_64] -> [Ubuntu] -> [18.04] -> [runfile(local)]

    在网页你能看到下面安装命令,我这里已经拷贝下来:
wgethttps://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.runsudoshcuda_11.3.0_465.19.01_linux.run

cuda的安装过程中,需要你在bash窗口手动作一些选择,这里选择如下:

  • select:[continue] -> [accept] -> 接着按下回车键取消Driver和465.19.01这个选项,如下图(it is important!) -> [Install]


    bash窗口提示如下表示安装完成
#===========#= Summary =#===========#Driver: Not Selected#Toolkit: Installed in /usr/local/cuda-11.3/#......

把cuda添加到环境变量:

vim~/.bashrc

把下面拷贝到 .bashrc里面

# cuda v11.3exportPATH=/usr/local/cuda-11.3/bin${PATH:+:${PATH}}exportLD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}exportCUDA_HOME=/usr/local/cuda-11.3

刷新环境变量和验证

source~/.bashrc nvcc-V

bash窗口打印如下信息表示cuda11.3安装正常

nvcc: NVIDIA(R)Cuda compiler driver<br>Copyright(c)2005-2021 NVIDIA Corporation<br>Built on Sun_Mar_21_19:15:46_PDT_2021<br>Cuda compilation tools, release11.3, V11.3.58<br>Build cuda_11.3.r11.3/compiler.29745058_0<br>

2.2.3 安装 cudnn8.2

  • 进入网站:https://developer.nvidia.com/rdp/cudnn-archive
  • 选择: Download cuDNN v8.2.0 (April 23rd, 2021), for CUDA 11.x
  • 选择: cuDNN Library for Linux (x86_64)
  • 你将会下载这个压缩包: “cudnn-11.3-linux-x64-v8.2.0.53.tgz”
# 解压tar-zxvfcudnn-11.3-linux-x64-v8.2.0.53.tgz

将cudnn的头文件和lib拷贝到cuda11.3的安装目录下:

sudocpcuda/include/cudnn.h /usr/local/cuda/include/sudocpcuda/lib64/libcudnn* /usr/local/cuda/lib64/sudochmoda+r /usr/local/cuda/include/cudnn.hsudochmoda+r /usr/local/cuda/lib64/libcudnn*

2.2.4 下载 tensorrt8.4.2.4

本教程中,tensorrt只需要下载\、解压即可,不需要安装。

  • 进入网站:https://developer.nvidia.cn/nvidia-tensorrt-8x-download
    网站更新2023.12:https://developer.nvidia.com/nvidia-tensorrt-8x-download
    (顺便,法克 Nvidia)
  • 把这个打勾: I Agree To the Terms of the NVIDIA TensorRT License Agreement
  • 选择: TensorRT 8.4 GA Update 1
  • 选择: TensorRT 8.4 GA Update 1 for Linux x86_64 and CUDA 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6 and 11.7 TAR Package
  • 你将会下载这个压缩包: “TensorRT-8.4.2.4.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz”
# 解压tar-zxvfTensorRT-8.4.2.4.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz# 快速验证一下tensorrt+cuda+cudnn是否安装正常cdTensorRT-8.4.2.4/samples/sampleMNISTmakecd../../bin/

导出tensorrt环境变量(it is important!),注:将LD_LIBRARY_PATH:后面的路径换成你自己的!后续编译onnx模型的时候也需要执行下面第一行命令

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/temp/TensorRT-8.4.2.4/lib ./sample_mnist

bash窗口打印类似如下图的手写数字识别表明cuda+cudnn+tensorrt安装正常

2.2.5 下载仓库TensorRT-Alpha并设置

gitclone https://github.com/FeiYull/tensorrt-alphagitfetch origingitcheckout legacy

设置您自己TensorRT根目录:

gitclone https://github.com/FeiYull/tensorrt-alphagitfetch origingitcheckout legacycdtensorrt-alpha/cmakevimcommon.cmake# 在文件common.cmake中的第20行中,设置成你自己的目录,别和我设置一样的路径eg:# set(TensorRT_ROOT /root/TensorRT-8.4.2.4)

三、YOLOv8模型部署

3.1 获取YOLOv8onnx文件

直接在网盘下载 weiyun or google driver 或者使用如下命令导出onnx:

# 🔥 yolov8 官方仓库: https://github.com/ultralytics/ultralytics# 🔥 yolov8 官方教程: https://docs.ultralytics.com/quickstart/# 🚀TensorRT-Alpha will be updated synchronously as soon as possible!# 安装 yolov8conda create-nyolov8python==3.8-yconda activate yolov8 pipinstallultralytics==8.0.5 pipinstallonnx==1.12.0# 下载官方权重(".pt" file)https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8m.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8l.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x6.pt

导出 onnx:

# 640yolomode=exportmodel=yolov8n.ptformat=onnxdynamic=Trueopset=12#simplify=Trueyolomode=exportmodel=yolov8s.ptformat=onnxdynamic=Trueopset=12#simplify=Trueyolomode=exportmodel=yolov8m.ptformat=onnxdynamic=Trueopset=12#simplify=Trueyolomode=exportmodel=yolov8l.ptformat=onnxdynamic=Trueopset=12#simplify=Trueyolomode=exportmodel=yolov8x.ptformat=onnxdynamic=Trueopset=12#simplify=True# 1280yolomode=exportmodel=yolov8x6.ptformat=onnxdynamic=Trueopset=12#simplify=True

新增更新:
如何使用代码导出onnx文件。在yolov8官方源码目录下新建my_export.py文件,如下代码:
yaml是官方提供的配置文件,如果是自己训练的模型,那就设置为自定义yaml文件即可。

fromultralyticsimportYOLO# Load a modelmodel=YOLO('ultralytics/cfg/models/v8/yolov8.yaml')model=YOLO('yolov8n.pt')# load an official model# Export the modelmodel.export(format='onnx',dynamic=True,opset=12)# 第2、3个参数禁止修改

3.2 编译 onnx

# 把你的onnx文件放到这个路径:tensorrt-alpha/data/yolov8cdtensorrt-alpha/data/yolov8# 请把LD_LIBRARY_PATH:换成您自己的路径。exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT-8.4.2.4/lib# 640../../../../TensorRT-8.4.2.4/bin/trtexec--onnx=yolov8n.onnx--saveEngine=yolov8n.trt--buildOnly--minShapes=images:1x3x640x640--optShapes=images:4x3x640x640--maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec--onnx=yolov8s.onnx--saveEngine=yolov8s.trt--buildOnly--minShapes=images:1x3x640x640--optShapes=images:4x3x640x640--maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec--onnx=yolov8m.onnx--saveEngine=yolov8m.trt--buildOnly--minShapes=images:1x3x640x640--optShapes=images:4x3x640x640--maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec--onnx=yolov8l.onnx--saveEngine=yolov8l.trt--buildOnly--minShapes=images:1x3x640x640--optShapes=images:4x3x640x640--maxShapes=images:8x3x640x640../../../../TensorRT-8.4.2.4/bin/trtexec--onnx=yolov8x.onnx--saveEngine=yolov8x.trt--buildOnly--minShapes=images:1x3x640x640--optShapes=images:4x3x640x640--maxShapes=images:8x3x640x640# 1280../../../../TensorRT-8.4.2.4/bin/trtexec--onnx=yolov8x6.onnx--saveEngine=yolov8x6.trt--buildOnly--minShapes=images:1x3x1280x1280--optShapes=images:4x3x1280x1280--maxShapes=images:8x3x1280x1280

你将会的到例如:yolov8n.trt、yolov8s.trt、yolov8m.trt等文件。

3.3 编译运行

gitclone https://github.com/FeiYull/tensorrt-alphagitfetch origingitcheckout legacycdtensorrt-alpha/yolov8mkdirbuildcdbuild cmake..make-j10# 注: 效果图默认保存在路径 tensorrt-alpha/yolov8/build# 下面参数解释# --show 表示可视化结果# --savePath 表示保存,默认保存在build目录# --savePath=../ 保存在上一级目录## 640# 推理图片./app_yolov8--model=../../data/yolov8/yolov8n.trt--size=640--batch_size=1--img=../../data/6406407.jpg--show--savePath./app_yolov8--model=../../data/yolov8/yolov8n.trt--size=640--batch_size=4--video=../../data/people.mp4--show--savePath# 推理视频./app_yolov8--model=../../data/yolov8/yolov8n.trt--size=640--batch_size=4--video=../../data/people.mp4--show--savePath=../# 在线推理相机视频./app_yolov8--model=../../data/yolov8/yolov8n.trt--size=640--batch_size=2--cam_id=0--show## 1280# infer camera./app_yolov8--model=../../data/yolov8/yolov8x6.trt--size=1280--batch_size=2--cam_id=0--show

yolov8 tensorrt cuda模型推理加速部署TensorRT-Alpha《ski facility》

yolov8 tensorrt cuda模型推理加速部署TensorRT-Alpha《NewYork-Stree》

yolov7 tensorrt cuda模型推理加速部署TensorRT-Alpha《Korea-Night》

四、如何部署自己训练的yolov8模型

未必避免文章太长,直接给出演示视频:
yolov8 tensorrt 部署自己训练的模型

五、参考

https://github.com/FeiYull/TensorRT-Alpha

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 5:05:26

大模型驱动的同城货运智能广告生成系统

1. 项目概述&#xff1a;当大模型真正走进同城货运的广告战场“大模型在货拉拉营销广告的应用实践”——这个标题乍看像一句技术汇报&#xff0c;但在我实际参与过3家本地生活服务平台的智能营销系统落地后&#xff0c;它背后藏着一个非常具体、非常痛的现实问题&#xff1a;如…

作者头像 李华
网站建设 2026/9/25 5:05:23

南阳正规排名前五的咸鸭蛋加工厂有哪些

南阳市恒发桐蛋开发有限公司是深耕南阳桐蛋特色农副产品行业多年&#xff0c;集生态养殖、产品研发、精细加工、全域销售于一体的农业产业化重点龙头企业与高新技术企业&#xff0c;作为南阳本土桐蛋产业的核心代表性企业&#xff0c;依托桐河优质自然生态资源&#xff0c;传承…

作者头像 李华
网站建设 2026/9/25 5:05:16

数字电路-触发器与计数/分频器应用

目录: 一、施密特触发器 1、工作特点 2、触发器的分类 3、触发器的应用 二、D触发器 1、工作特点 2、触发器的应用 三、计数/分频器 1、分频电路 四、单稳态触发器 1、工作特点

作者头像 李华
网站建设 2026/9/25 5:03:49

计量芯片封装选型:别盲目追求小封装,SOP与QFN的博弈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 5:03:48

STM32系统级认知重建:时钟树、寄存器与启动流程深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 5:03:22

UV平板打印机SolidWorks 2016可编辑三维模型图纸包详解

简介&#xff1a;全自动UV平板打印机SW16可编辑设计资料包&#xff0c;面向机械工程师、设备维修与二次开发人员&#xff0c;涵盖SolidWorks 2016及以下版本可打开的全套三维模型。资源共250个文件&#xff0c;包含218个零件图&#xff08;sldprt&#xff09;、30个装配体&…

作者头像 李华