当前位置: 首页 > 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 代码更新
http://www.xdnf.cn/news/739981.html

相关文章:

  • 海外DeepLink方案复杂?用openinstall一站式链接世界
  • Dart语言学习指南「专栏简介」
  • Display Driver Uninstaller(DDU卸载显卡驱动工具)官网下载
  • 扫地机器人苦寻新引擎,大疆们却已攻入腹地
  • 龙舟竞渡与芯片制造的共通逻辑:华芯邦的文化破局之道
  • 使用基于Xsens惯性传感器的动作捕捉技术测量人体工程学
  • 【DRAM存储器五十二】LPDDR5介绍--MR17设置的SOC ODT是啥?
  • 文心快码参编国内首个软件开发智能体技术规范
  • 回车键为什么叫做“回车键”?
  • 雷达目标起伏特性简析
  • vue3实现鼠标悬浮div动画效果
  • muduo库的初步认识和基本使用,创建一个简单查询单词服务系统
  • 二重积分的线性性
  • 【吾爱】逆向实战crackme160学习记录(一)
  • 辅助脚本-通用开发工作区目录结构生成脚本解析与实践指南
  • 软件测试的分类
  • 半导体行业重金属废水处理技术革新:从传统沉淀到复合工艺的突破
  • 大话软工笔记—分离原理
  • 如何做好一份技术文档:构建知识传递的精准航海图
  • 如何在腾讯云 OpenCloudOS 上安装 Docker 和 Docker Compose
  • shell脚本打包成可以在麒麟桌面操作系统上使用的deb包
  • QPushButton设置菜单
  • 408考研逐题详解:2009年第25题
  • 1、python代码实现与大模型的问答交互
  • iEKF的二维应用实例
  • 信息茧房—警惕低头族作茧自缚
  • Linux研学-环境搭建
  • Linux parted工具分区管理指南
  • SpringBoot关于文件上传超出大小限制--设置了全局异常但是没有正常捕获的情况+捕获后没有正常响应返给前端
  • [Windows] 千库/六图素材下载工具