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

YOLOv8

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 yolov8pip 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 torchprint(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 YOLOfrom 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-vs2022cd build-vs2022cmake -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-vs2022cd build-vs2022cmake -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文件

在这里插入图片描述

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

http://www.dtcms.com/a/275967.html

相关文章:

  • pytables模块安装
  • 【TOOL】ubuntu升级cmake版本
  • 单细胞分析教程 | (二)标准化、特征选择、降为、聚类及可视化
  • STM32用PWM驱动步进电机
  • 快捷跑通ultralytics下的yolo系列
  • 算法第三十一天:贪心算法part05(第八章)
  • 回溯算法-数据结构与算法
  • Pythone第二次作业
  • brpc 介绍与安装
  • Redis过期策略与内存淘汰机制面试笔记
  • 数据库连接池及其核心特点
  • AI编程下的需求规格文档的问题及新规范
  • ADSP-1802这颗ADI的最新DSP应该怎么做开发(一)
  • 【Redis实战】Widnows本地模拟Redis集群的2种方法
  • Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
  • Unity URP + XR 自定义 Skybox 在真机变黑问题全解析与解决方案(支持 Pico、Quest 等一体机)
  • Cookie、Session、Token 有什么区别?
  • Spring Boot 中使用 Lombok 进行依赖注入的示例
  • 【离线数仓项目】——电商域DWD层开发实战
  • 【C++ STL 库】解析stack、queue、priority_queue类
  • 中文多智能体金融交易决策框架-TradingAgents-CN
  • 本地安装ClaudeCode全攻略
  • 【Python】多线程详解:从基础概念到实战应用
  • 免费尝试claude code的安利,截至今天可用(7/12)
  • openGauss数据库管理实战指南——基本常用操作总结
  • AI:机器人未来的形态是什么?
  • Cisco ACI 生成Postman CSV 脚本场景
  • 死锁的避免
  • Spring Boot 应用中,配置的加载优先级
  • 锁相环初探