YOLOv8 的下载、使用与导出(亲测有效)
一、YOLOv8环境的安装
安装所需软件:推荐安装Anaconda3+Pycharm
1、安装miniconda
miniconda相比于Anaconda功能上并没有相差太多,但它更加的轻量化
但由于从官网下载比较缓慢,所以这里推荐从国内的镜像源下载
[清华大学开源软件镜像站]https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
想直接下载的点这个: Miniconda3-py38_22.11.1-1-Windows-x86_64.exe







2、conda环境的创建
在电脑下方搜索框里输入cmd,找到Anaconda Prompt

输入以下命令,创建一个叫yolov8的环境
conda create -n yolov8 python=3.8


3、配置国内源(使下载更快)
网址:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

先激活环境
conda activate yolov8

4、选择CPU还是GPU
①判断是否有NVIDIA显卡
在安装PyTorch之前,我们需要判断您的计算机**是否安装了NVIDIA显卡,**因为PyTorch的GPU版本需要NVIDIA显卡来加速计算。您可以通过以下步骤来判断:
打开设备管理器:在Windows上,按下Win键和X键,然后选择“设备管理器”。在macOS上,打开“系统偏好设置”,选择“硬件”选项卡,然后点击“设备管理器”。
如果有NVIDIA显卡,那么您的计算机适合安装PyTorch的GPU版本。
如果没有NVIDIA显卡,您可以只安装PyTorch的CPU版本
②安装相应的版本
1)安装CPU版本
打开终端:打开 Anaconda Prompt 并激活刚刚创建的虚拟环境
conda activate yolov8
pip install torch torchvision torchaudio

2)安装GPU 版本
查看CUDA显卡驱动版本




或者可以在终端里输入:nvidia-smi

5、安装CUDA与CUDNN(可选)
关于是否需要安装CUDA与CUDNN
如果只需要训练、简单推理,则无需安装CUDA与CUDNN,可以直接安装pytorch(可以直接跳过这一步);如果有部署要求,例如导出TensorRT模型,则需要进行安装
①安装CUDA
CUDA官网:https://developer.nvidia.com/cuda-toolkit-archive





查看是否安装成功,在命令行输入以下指令进行检查,出现以下类似的输出就证明安装成功。
Win+R 输入cmd
nvcc -V

②安装CuDNN(加速器)
官网地址:https://developer.nvidia.com/cudnn


下载完后要解压会得到cudnn-windows-x86_64-9.8.0.87_cuda11-archive文件夹,将这个文件夹复制到CUDA的安装路径下即可

6、安装pytorch
官网网址:https://pytorch.org/




验证pytorch是否安装完成:
1)你可以像我图片一样输入
python
import torch
print(torch.__version__)
print(torch.cuda.is_available())
#分别输入

2)也可以在PyCharm里 输入以下代码验证
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())
先创建一个项目,在项目里创建一个python文件,复制代码,点击运行即可

二、下载Yolov8
1、下载模型
先打开Github:https://github.com/ (需要加速器)
在Github里搜索:ultralytics/ultralytics



2、将项目导入PyCharm
打开你的PyCharm,并创建一个新的项目
右上角新建项目


导入刚才下载的模型

找到刚刚解压好的文件导入

修改环境






如果不行,请在重复一次,看看有没有应用
将你下载的包加载到环境中:
在下面控制台里有一个终端,在终端里输入
pip install -e .
下载完后可以查看一下
pip list

往下可以看到这个,说明没有问题

3、初体验模型
①、体验前先到官网下载一个已经训练好的模型
Ultralytics YOLO:https://docs.ultralytics.com/zh

将下载完的文件复制到ultralytics-8.0.59包里就行了

②、图片体验
最终的效果:

①、在我们的终端上输入(这里用的图片是项目自带的,在ultralytics/assets目录下)
#完整代码
yolo mode = 'predict' task='detect' model='yolov8n.pt' source='./ultralytics/assets/bus.jpg'
#mode:模式---predict:推理预测
#task:任务---detect:检测
#model:模型
#简化的代码
yolo predict model='yolov8n.pt' source='./ultralytics/assets/bus.jpg'
#task默认的是detect
#当然source也可以有其他
#source='video.mp4'
#source='screen'检测屏幕
#source=0 检测摄像头
②、或者我们也可以用python代码来检测
创建一个python文件

输入代码
from ultralytics import YOLO
yolo = YOLO("./yolov8n.pt", task="detect")
result = yolo(source="./ultralytics/assets/bus.jpg", save=True)
#如果你不想要将检测完的结果保存可以将save=True删除,不删除的话图片会保存在runs目录下
补充:
如果你的终端是这样的,说明你还没有激活环境,输入conda activate yolov8即可

可用一下代码来查看自己的环境
conda env list

说明现在是用的yolo模型
三、如何导出训练好的模型
如果你自己训练了一个模型想要将模型导出,放进自己的项目里,可以参考一下我下面的方法
1、将训练的YOLOv8模型转换成ONNX文件
①在终端输入这串代码安装onnx
pip install --upgrade onnx

②在PyCharm里创建一个python文件
import argparse
import cv2
import numpy as np
import onnxruntime as ort
import torch
from ultralytics import YOLO
from ultralytics import YOLO
model = YOLO('yolov8n.pt')
model.export(format='onnx')
然后直接右击点击运行

同时在PyCharm里左侧也会有一个onnx文件

2、将转化好的onnx文件转化成ncnn文件
①现在网上许多的教程都是使用一键转换的网站
一键转换网址:https://convertmodel-1256200149.cos-website.ap-nanjing.myqcloud.com/
但是在我导出时这个网站是失效的,我是导不出来,所以我选择了接下来很麻烦的一种方法
②使用VS来转换(这个方法亲测有效就是太麻烦了,不嫌麻烦的可以跟做)
1)首先先安装Visual Studio: https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
下载免费的社区版即可,这里我下的是2022版的
记得选择C++桌面开发
2)下载CMake :https://cmake.org/download/ (根据自己的需求选择)

下载解压好会得到这些文件夹

添加系统环境:点击bin文件,复制路径

退回桌面右击此电脑,点击属性,点击高级系统设置,点击环境变量,找到系统环境里的Path,在path将刚刚复制的路径粘贴,然后一直点确定即可,最后点击Win+R,输入cmd,在里面输入cmake

3)下载Protobuf :https://github.com/google/protobuf/archive/v3.11.2.zip (在浏览器里直接搜就行了)
4)下载ncnn:https://gitcode.com/gh_mirrors/nc/ncnn/tags/20201218?utm_source=csdn_github_accelerator&isLogin=1
这里建议新建一个文件夹,方便后面操作
5)配置环境:

在这个窗口里输入这些代码(依次输入)
Ⅰ、编译Protobuf
这个是Protobuf 3.11.2的根目录,自行更换路径(例如我的就是D:\protobuf\protobuf-3.11.2)
cd <protobuf-root-dir>
mkdir build-vs2022
cd build-vs2022
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake


如果你在cmake这一步显示的不是图片上的,那么请你输入where nmake指令,检查 nmake 是否在 PATH 中
如果返回空,说明 nmake 不在 PATH 中,可能是 Visual Studio 的 C++ 工具链未正确安装
解决方法:请你找到VS的文件夹



如果没有问题就接着输入
nmake
nmake install
执行完nmake命令出现下面的界面则表示编译成功

执行nmake install进行下载

到此 Protobuf 就算编译完成了
Ⅱ、接下来编译 ncnn
这个ncnn的根目录,自行更换路径(例如我的就是D:\ncnn\ncnn-20201218)
注意:cmake里有三个需要替换
cd <ncnn-root-dir>
mkdir build-vs2022
cd build-vs2022
cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_PREFIX=%cd%/install ^
-DProtobuf_INCLUDE_DIR=D:\protobuf\protobuf-3.11.2\build-vs2022\install\include ^
-DProtobuf_LIBRARIES=D:\protobuf\protobuf-3.11.2\build-vs2022\install\lib\libprotobuf.lib ^
-DProtobuf_PROTOC_EXECUTABLE=D:\protobuf\protobuf-3.11.2\build-vs2022\install\bin\protoc.exe ^
-DNCNN_VULKAN=OFF ^
..
这一步的Cmake指令自己要改的地方挺多的,如果失败了就仔细检查一下,看看版本号是不是与自己的一样,根目录有没有写错

接下来接着输入
nmake
nmake install
执行完nmake命令出现下面的界面

执行nmake install

结束后我们找到ncnn新建的那个build-vs2022文件夹->tools->onnx目录下,这样就可以看到生成了一个onnx2ncnn的exe文件

Ⅲ、下面就可以通过命令将onnx转成ncnn文件了
1)首先我们先进入D:\ncnn\ncnn-20201218\build-vs2022\tools\onnx目录下(终端)
cd.tools
cd.onnx
2)输入代码onnx2ncnn best.onnx best.param best.bin,将上述的best全换成你模型的名字,例如:
onnx2ncnn yolov8n.onnx yolov8n.param yolov8nt.bin
3)找到之前我们转换好的.onnx文件,复制到D:\ncnn\ncnn-20201218\build-vs2022\tools\onnx下



再一次打开onnx文件就能找到.bin和.param文件

接下来就可以通过这两个文件来部署了

2万+

被折叠的 条评论
为什么被折叠?



