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个抽头