按照大佬的方法进行部署,但是中间出现了很多问题,这里进行一下总结。
YOLOv8 Tensorrt Python/C++部署教程_yolo 安装tensorrt-CSDN博客https://blog.csdn.net/weixin_45747759/article/details/130341118
Monday-Leo/Yolov5_Tensorrt_Win10: A simple implementation of tensorrt yolov5 python/c++🔥 (github.com)https://github.com/Monday-Leo/Yolov5_Tensorrt_Win10
下载仓库
Monday-Leo/YOLOv8_Tensorrt:Tensorrt YOLOv8 的简单实现 (github.com)https://github.com/Monday-Leo/YOLOv8_Tensorrtultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite (github.com)https://github.com/ultralytics/ultralytics
安装Anaconda
2024年最新版Anaconda3的安装配置及使用教程(非常详细),从零基础入门到精通,看完这一篇就够了(附安装包)_anconda3-CSDN博客https://blog.csdn.net/liuhyusb/article/details/135753864
Download Now | Anacondahttps://www.anaconda.com/download/success
/anaconda/archive/ 的索引 |清华大学开源软件镜像站 |清华开源镜像 (tsinghua.edu.cn)https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D
Pycharm创建conda环境
pycharm使用conda创建的虚拟环境时找不到python.exe_conda环境找不到python.exe-CSDN博客https://blog.csdn.net/weixin_62392668/article/details/134115527
CUDA安装
CUDA超详细安装教程(windows版)_windows安装cuda-CSDN博客https://blog.csdn.net/virobotics/article/details/136322017CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archivecuDNN Archive | NVIDIA Developerhttps://developer.nvidia.com/rdp/cudnn-archive我是安装的11.8的版本。
我的不是默认安装,然后我就要放在这个目录下面。
创建环境
yolov8实战第一天——yolov8部署并训练自己的数据集(保姆式教程)-CSDN博客https://blog.csdn.net/qq_34717531/article/details/135019573?ops_request_misc=&request_id=&biz_id=102&utm_term=yolo%E7%AC%AC%E4%B8%80%E5%A4%A9&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-135019573.142%5Ev100%5Epc_search_result_base3&spm=1018.2226.3001.4187
创建Python的环境
(yolo是名字,可以任起,3.11是版本,不写默认是最新的版本)
conda create -n yolo python==3.11
激活环境
activate yolo
安装pytorch
PyTorchhttps://pytorch.org/
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
下载TensorRT
tensorrt的目录也需要记住。
yolov8实战第三天——yolov8TensorRT部署(python推理)(保姆教学)_yolov8 tensorrt python-CSDN博客https://blog.csdn.net/qq_34717531/article/details/135022392?ops_request_misc=&request_id=&biz_id=102&utm_term=yolov8%E7%AC%AC%E4%B8%89%E5%A4%A9&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-135022392.142%5Ev100%5Epc_search_result_base3&spm=1018.2226.3001.4187NVIDIA TensorRT 8.x Download | NVIDIA Developerhttps://developer.nvidia.com/nvidia-tensorrt-8x-download
下载地址https://developer.nvidia.com/nvidia-tensorrt-download
下载Opencv
下载地址https://bj.bcebos.com/paddleseg/deploy/opencv-3.4.6-vc14_vc15.exe
安装visual studio 2019
链接:https://pan.baidu.com/s/1_SgGM0mb01WIRYy9JRc89A
提取码:5sfo
安装cmake
我用的是3.17的版本,这里vs和cmake要注意版本,cmake太老的也不支持新版的vs。
Index of /files (cmake.org)https://cmake.org/files/
模型转换
打开ultralytics-main文件到pycharm中
安装yolov8仓库,并下载官方模型
pip install ultralytics==8.0.5
pip install onnx==1.12.0
https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pthttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt
使用官方命令导出ONNX模型
yolo mode=export model=yolov8n.pt format=onnx dynamic=False
将YOLOv8_Tensorrt-master中的v8_transform.py文件移动到ultralytics-main中
转换onnx模型
python v8_transform.py yolov8n.onnx
将yolov8n.transd.onnx文件放到TensorRT的bin目录下
trtexec --onnx=yolov8n.transd.onnx --saveEngine=yolov8n_fp16.trt --fp16
时间稍微有点长,最后会生成trt文件。
C++部署
进入YOLOv8_Tensorrt-master文件夹打开CMakeLists.txt文件
设置opencv和tensorrtRT的路径
算力参考如下:
CUDA GPU | NVIDIA 开发者https://developer.nvidia.cn/cuda-gpus
cmake打包
在YOLOv8_Tensorrt-master下新建build目录
cmake路径设置如下
点击Configure
Specify the generator for this project
选择自己的vs版本,我的是2019,这个如果cmake太老可能就不会显示新版的vs。
optional platform for generator
选择x64
如果没有报错点击Generate后点击Open Project
这个我本来都是用最新版的,结果不知道是太新了想要改配置文件还是什么原因,所以我就还是用的大佬3.17版本的cmake。
vs编译
选择release
执行
将预测图片zidane.jpg和模型yolov8n_fp16.trt放build的Release下面(预测图片在YOLOv8_Tensorrt-master下面,模型在TensorRT-8.6.1.6\bin下面)
yolov8.exe
会生成Result.jpg图片
Python部署
生成.dll文件
这个第一次选这个,后面自己变成.dll了
然后再编译一下,会生成.dll文件
将YOLOv8_Tensorrt-master下的python_trt.py复制YOLOv8_Tensorrt-master\build\Release
执行
如果报错如下则选用低版本的Python
FileNotFoundError: Could not find module 'E:\code\yolo8\YOLOv8_Tensorrt-master\build\Release\yolov8.dll' (or one of its dependencies). Try using the full path with constructor syntax.
python调用dll出现错误总结如下(持续更新)_python_zsffuture-华为云开发者联盟 (csdn.net)https://huaweicloud.csdn.net/63806d9bdacf622b8df881f7.html
我这里用的是3.5版本的python.
总结
只能说尝试了很久,不是和这个不兼容就是和那个不兼容,很多东西对于大佬来说太简单了,所以就省略了,这里把文件的位置进行了简单的说明。
大概就是要下载安装很多的文件,然后去尝试,经过了这么久好歹是出来,希望以后再接再厉。
还有就是我安装在D盘,但是CUDA给我在C盘加了一些东西,然后我就找想卸载一部分,参考的是下面这篇博客。
CUDA11.7安装-C盘杀手(含卸载和安装教程)-CSDN博客https://blog.csdn.net/Ama_tor/article/details/126868611