YOLOv5/v8环境配置及训练、检测方法
- 1.环境配置
- 1.1安装CUDA Toolkit
- 1.2安装cudnn
- 1.3安装Anaconda
- 1.4新建YOLOv5/v8环境
- 1.5安装pytorch
- 2.使用YOLOv5/v8进行训练、检测
- 2.1 在github上下载yolov5/v8工程
- 2.2安装Pycharm(自行安装)
- 2.3使用YOLOv5进行训练、预测
- 2.4使用YOLOv8进行训练、预测
- 问题解答
1.环境配置
1.1安装CUDA Toolkit
-
在安装之前,我们首先要查看自己电脑显卡驱动的CUDA版本:右键
桌面
,点击NVIDIA控制面板
,点击左下角的系统信息
,点击组件
注:安装CUDA Toolkit时,需要选择CUDA Toolkit版本不能高于显卡驱动CUDA版本。若想安装较高版本的CUDA Toolkit可更新显卡驱动。
Nvidia显卡驱动下载地址:https://www.nvidia.cn/Download/index.aspx
-
在官网下载CUDA Toolkit:CUDA Toolkit官网
这里以CUDA Toolkit 12.1.1为例,点击CUDA Toolkit 12.1.1
,选择如下选项后下载。
-
安装
这里选择安装程序临时解压位置(改为D盘即可)
这里选择自定义
全选
使用默认的安装位置进行安装。(不要更改安装位置)
-
验证安装
在键盘上按下组合键win
+R
打开运行,输入cmd
确定。
输入nvcc -V
回车
,如输出以下内容则安装成功。
1.2安装cudnn
官网:cudnn官网
需要注册登录才能下载。
选择window版本下载。
- 将下载的压缩包解压可以看到有bin、include、lib三个文件夹。
- 将bin文件夹下的文件复制到CUDA安装目录下的bin文件夹内。
- include文件夹内的文件复制到CUDA安装目录下的include文件夹内。
- lib->x64文件夹内的文件复制到CUDA安装目录下的lib->x64文件夹内。
- 右键此电脑点属性,点击高级系统设置、环境变量、双击系统变量中的path,在环境变量中点击新建添加如下内容
1.3安装Anaconda
Anaconda官方下载地址:下载地址
- 安装时勾选
Add Anaconda to my PATH environment variable
,免去手动配置环境变量。 - 建议不要安装在C盘。
1.4新建YOLOv5/v8环境
Anaconda安装完成后,可以在开始菜单里看到如下应用。
打开Anaconda Prompt
- 输入
conda config --set show_channel_urls yes
回车
,此时在C盘的用户文件夹下会生成一个.condarc
文件,使用记事本打开该文件,将记事本中的内容全部删除,将下面的内容复制到记事本中,保存后关闭文件。
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
- 再次打开
Anaconda Prompt
,输入conda clean -i
回车
,之后输入y
回车
。 - 下面使用语句
conda create -n <environment_name> python=<python_version>
创建一个新的虚拟环境
其中<environment_name>
为要创建的环境名称,<python_version>
为所需的Python版本号。
这里我们输入conda create -n yolo python=3.10
创建一个新环境。中间提示Proceed([y]/n)?
这里输入y
1.5安装pytorch
pytorch官网:https://pytorch.org/get-started/locally/
- 输入
activate yolo
激活yolo环境。
- 输入
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
回车
等待自动安装即可
这里可能会因为网络问题导致安装包下载失败,可以多试几次。
2.使用YOLOv5/v8进行训练、检测
2.1 在github上下载yolov5/v8工程
yolov5下载地址:https://github.com/ultralytics/yolov5
yolov8下载地址:https://github.com/ultralytics/ultralytics
在D盘或E盘新建一个PycharmProject文件夹,将刚刚下载好的yolov5/v8工程压缩包解压到PycharmProject文件夹。
2.2安装Pycharm(自行安装)
若安装完成后UI样式与本教程不同可在设置中更改
2.3使用YOLOv5进行训练、预测
-
在Pycharm中打开刚刚解压好的yolov5-master的文件夹
-
在设置中选择前面创建的yolo环境
注:此处若找不到conda可执行文件可手动添加,具体操作如下:
打开终端输入:pip install -r requirements.txt
安装yolov5所需的python库。
-
运行detect.py文件
首次运行会下载权重文件,由于网络问题访问不了github可能会导致下载失败,可以自行下载权重文件放到项目文件夹里。此处应为GPU而不是CPU
运行完成后runs文件夹下会生成detect文件夹里面放有测试结果。
至此准备工作完成可以开始配置训练。 -
将数据集放置在工程文件夹下的data->images文件夹下。
-
将data文件夹下的coco128.ymal拷贝一份出来
打开拷贝的yaml文件,将train和val后面的位置改为数据集的相对位置,names里为要检测的对象,若只有一个对象就写0:对象名,其他的注释掉。
注:查看相对位置的方法
-
将models文件夹下的yolov5s.ymal拷贝一份出来
打开拷贝出来的yaml文件,将nc:后面的数字改为你要检测的种类个数
-
打开主目录下的train.py文件
将445与446行的两个位置改为刚刚拷贝的两个文件,448行epochs为训练次数可更改。
运行train.py。
若有报错,可将utils->general.py中366行的check_git_info函数内的内容注释用pass代替。
训练完成后runs文件夹下会生成train文件夹,exp里会放有与训练结果相关的图片与表格。
其中weight文件夹中会生成两个权重文件,后续可以用训练好的权重文件进行检测。
8.配置detect.py文件进行检测
打开detect.py文件,将244行的位置改为刚刚训练好的best.pt的相对位置,将245行的位置改为你想检测的图片或装有图片的文件夹。
检测结果依然会存放在runs中的detect文件夹中。
2.4使用YOLOv8进行训练、预测
参考:YOLOv8官方文档
与YOLOv5不同的是,YOLOv8在命令行使用语句来进行训练和预测。
也可以编写python程序,详见官方文档。
- 在Pycharm中打开刚刚解压好的ultralytics-main的文件夹
- 在设置中选择前面创建的yolo环境
在Pycharm中打开终端,在终端中输入pip install ultralytics
安装YOLOv8所需的python库 - 添加系统环境变量
由于YOLOv5需要在命令行调用python,所以我们需要将python添加至系统的环境变量,否则就会报错。
右键此电脑点属性,点击高级系统设置、环境变量、双击path
进入后新建一条环境变量,填入python解释器的地址
- 配置默认数据集位置(注意此步骤在运行yolov5后须重新进行)
在ultralytics-main文件夹下新建一个datasets文件夹。
在pycharm中打开终端输入yolo settings datasets_dir='E:\PycharmProject\ultralytics-main\datasets'
,将默认数据集位置设置为E:\PycharmProject\ultralytics-main\datasets
将数据集复制到datasets文件夹下,并拷贝coco128.ymal至datasets文件夹下如下图所示。
打开拷贝后的yaml文件进行如下配置
最后在pycharm中点开终端,输入yolo detect train data=E:\PycharmProject\ultralytics-main\datasets\ship.yaml model=yolov8s.pt epochs=100 imgsz=640
其中data为存放ship.ymal的绝对路径,model为预训练模型,epochs为训练次数。
其他参数可见官方文档。
训练结果与yolov5一样存在于runs文件夹中。 - 新建detect.py文件进行检测
右键点击主目录新建detect.py文件
输入detect.py回车
可以看到在主目录下生成了detect.py文件
双击打开detect.py,拷贝下面的代码(这些代码在官方文档中都有,大家一定要认真查看官方文档)
from PIL import Image
from ultralytics import YOLO
# 加载预训练的YOLOv8n模型
model = YOLO('runs/detect/train/weights/best.pt')
# 在'bus.jpg'上运行推理
results = model('datasets/ship/val/images/000011.jpg') # 结果列表
# 展示结果
for r in results:
im_array = r.plot() # 绘制包含预测结果的BGR numpy数组
im = Image.fromarray(im_array[..., ::-1]) # RGB PIL图像
im.show() # 显示图像
im.save('results.jpg')
点击运行之后等待一会可以看到检测结果弹窗,并且在主目录下生成了一个result.jpg图片。
问题解答
待续