当前位置: 首页 > news >正文

YOLOv8目标检测实战-(TensorRT原生API搭建网络和使用Parser搭建网络)

文章目录

    • 一、原理篇
      • 1)Trt基础知识
      • 2)Trt plugin
      • 3)int8量化算法和原理
      • 4)cuda编程
      • 5)onnx基础知识
      • 6)yolov8网络架构
        • 6.1 yolov5网络架构图
        • 6.2 yolov8s网络架构
    • 二、TensorRT原生API搭建网络
      • 1)window实践
        • 1.1 安装基础环境、pytorch、yolov8、trt、opencv
        • 1.2 模型文件转换
        • 1.3 编译trt加速的yolov8
        • 1.4 执行trt加速后的命令(C++)
        • 1.5 执行trt加速后的命令(python)
      • 2)ubuntu实践
        • 2.1 安装基础环境、pytorch、yolov8、trt、opencv
        • 2.2 模型文件转换
        • 2.3 编译trt加速的yolov8
        • 2.4 执行trt加速后的命令(C++)
        • 2.5 执行trt加速后的命令(python)
      • 3)代码解析
        • 3.1 代码解析先序知识
        • 3.2 infer相关代码解析
        • 3.3 yolo相关代码解析-前处理
        • 3.3 yolo相关代码解析-后处理
        • 3.4 detect.cpp代码解析
        • 3.5 项目python代码解析
        • 3.6 ubuntu代码的不同之处
    • 三、使用Parser搭建网络
      • 1)windows
        • 1.1 安装基础环境、pytorch、yolov8、trt、opencv
        • 1.2 模型文件转换
        • 1.3 编译trt加速的yolov8
        • 1.4 执行trt加速后的命令(C++)
        • 1.5 执行trt加速后的命令(python)
        • 1.6 yolov8的trt int8量化(PTQ)
      • 2)ubuntu
        • 2.1 安装基础环境、pytorch、yolov8、trt、opencv
        • 2.2 模型文件转换
        • 2.3 编译trt加速的yolov8
        • 2.4 执行trt加速后的命令(C++)
        • 2.5 执行trt加速后的命令(python)
        • 2.6 yolov8的trt int8量化(PTQ)
      • 3)代码解析
        • 3.1 gen_wts.py代码解析
        • 3.2 yolov8的预处理相关代码解析
        • 3.3 yoloLayerPlugin代码解析
        • 3.4 yolo组件相关代码解析
        • 3.5 yolo模型构建相关代码解析
        • 3.6 int8量化校准器代码解析
        • 3.7 main.cpp代码解析
        • 3.8 yolo8_trt.py代码解析
        • 3.9 代码更新

一、原理篇

1)Trt基础知识

2)Trt plugin

3)int8量化算法和原理

4)cuda编程

5)onnx基础知识

6)yolov8网络架构

6.1 yolov5网络架构图

在这里插入图片描述
下面是主要架构展示:
①Conv = conv+BN+SiLU,stride=2表示下采样,在backbone中有5个stride=2的conv模块,2的5次方是32,640/32=20,所以就有了20x20的特征图
在这里插入图片描述
②Bottleneck有add为true和false两种,
在这里插入图片描述
③C3-n,n表示有n个Bottleneck
在这里插入图片描述
④SPFF:改进的空间计算
在这里插入图片描述
⑤因为有两种上采样的存在,所以输出有三种维度的特征图
上采样:上采样将深层特征图的分辨率提高(如从20×20上采样到40×40),与浅层特征拼接,保留细节信息的同时增强语义表达能力
在这里插入图片描述

6.2 yolov8s网络架构

在这里插入图片描述

  • 与yolo5的不同点
    ①第一个conv不再是6x6的,而是3x3的
    ②C3-n模块换成了C2f模块
    ③C2f-n模块:
    1)split是在channel维度上做split
    2)后面每个bottleneck都有抽头,合起来concat有n+2个抽头

二、TensorRT原生API搭建网络

1)window实践

1.1 安装基础环境、pytorch、yolov8、trt、opencv
1.2 模型文件转换
1.3 编译trt加速的yolov8
1.4 执行trt加速后的命令(C++)
1.5 执行trt加速后的命令(python)

2)ubuntu实践

2.1 安装基础环境、pytorch、yolov8、trt、opencv
2.2 模型文件转换
2.3 编译trt加速的yolov8
2.4 执行trt加速后的命令(C++)
2.5 执行trt加速后的命令(python)

3)代码解析

3.1 代码解析先序知识
3.2 infer相关代码解析
3.3 yolo相关代码解析-前处理
3.3 yolo相关代码解析-后处理
3.4 detect.cpp代码解析
3.5 项目python代码解析
3.6 ubuntu代码的不同之处

三、使用Parser搭建网络

1)windows

1.1 安装基础环境、pytorch、yolov8、trt、opencv
1.2 模型文件转换
1.3 编译trt加速的yolov8
1.4 执行trt加速后的命令(C++)
1.5 执行trt加速后的命令(python)
1.6 yolov8的trt int8量化(PTQ)

2)ubuntu

2.1 安装基础环境、pytorch、yolov8、trt、opencv
2.2 模型文件转换
2.3 编译trt加速的yolov8
2.4 执行trt加速后的命令(C++)
2.5 执行trt加速后的命令(python)
2.6 yolov8的trt int8量化(PTQ)

3)代码解析

3.1 gen_wts.py代码解析
3.2 yolov8的预处理相关代码解析
3.3 yoloLayerPlugin代码解析
3.4 yolo组件相关代码解析
3.5 yolo模型构建相关代码解析
3.6 int8量化校准器代码解析
3.7 main.cpp代码解析
3.8 yolo8_trt.py代码解析
3.9 代码更新

相关文章:

  • DeepSeek-R1-0528-Qwen3-8B 本地ollama离线运行使用和llamafactory lora微调
  • 在 ODROID-H3+ 上安装 Win11 系统
  • NHANES指标推荐:CQI
  • 数据共享交换平台之文件交换
  • 历年上海交通大学计算机保研上机真题
  • 通过实时动作捕捉加速人形机器人训练
  • 避免空值判断
  • 使用Haproxy搭建web群集
  • JavaScript正则表达式
  • CppCon 2014 学习第5天:Where did my performance go
  • 睿抗机器人开发者大赛CAIP-编程技能赛-历年真题 解题报告汇总 | 珂学家
  • shell编程笔记
  • 放假带出门的充电宝买哪种好用耐用?倍思超能充35W了解一下!
  • [NOIP 2001 普及组] 求先序排列 Java
  • Python中的异常处理:如何优雅地处理程序中的错误
  • 【Python】第一弹:对 Python 的认知
  • 【技能篇】Java 面试题大全
  • 测试分类详解
  • 系统架构设计综合知识与案例分析
  • VR看房系统,新生代看房新体验
  • 建设职业技术学院网站/成都百度推广联系方式
  • 广东网站制作多少钱/淘宝搜索关键词排名查询工具
  • 制作网站副本/怎么做市场推广
  • 青岛商城网站建设/今日头条站长平台
  • 合肥做网站的价格/优化网站推广
  • 网站关键词如何优化/湖南企业竞价优化首选