yolov5超详细环境搭建和模型训练

#第一部分 算法环境搭建

一、安装Anaconda

1.anaconda下载和安装

https://www.anaconda.com/products/individual#Downloads

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果环境变量没配置,进行手动配置:
安装完成后,进入环境变量配置页面,”我的电脑“右键,选择”属性“;打开页面后,选择”高级系统设置“;然后在“高级”下选择“环境变量”。
选择变量path,点击编辑;点击新建
D:\anaconda3
D:\anaconda3\Scripts
D:\anaconda3\Library\usr\bin
D:\anaconda3\Library\mingw-w64\bin
D:\anaconda3\Library\bin

检查是否安装成功,打开cmd,在窗口中输入以下三个指令:
conda --version
conda info
python

二、安装pycharm

1.进入pycharm官网下载,下载其他版本点击标红处。

在这里插入图片描述

2.Pycharm下载完成后进行安装

在这里插入图片描述
在这里插入图片描述

三、安装pytorch

1. 查看驱动版本

安装(更新)显卡驱动以后。我们按下win+R组合键,打开cmd命令窗口。输入如下的命令nvidia-smi,驱动的版本和最高支持的CUDA版本如图所示:
在这里插入图片描述

2.创建/激活虚拟环境

打开anaconda的终端
创建虚拟环境 conda create --name HD python=3.8
激活虚拟环境 conda activate HD
移除虚拟环境 conda remove -n HD --all
在这里插入图片描述
在这里插入图片描述

3.安装pytorch

激活虚拟环境后,安装pytorch-gup版的环境,在pytorch环境下执行如下的命令给环境换清华源。
Conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
然后打开pytorch的官网,通过驱动检测到我的显卡为 P2000,最高支持cuda12.4版本,所以选择cuda12.1版本的cuda,然后将下面内容复制下来。
在这里插入图片描述
将复制的内容pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121粘贴到虚拟环境下的终端,运行就可以了,完成torch vision torchaudio的安装。

四、安装模型训练所需库

1.激活虚拟环境切换到requirements.txt目录下,pip install -r requirements.txt
2.虚拟环境虚拟环境迁移(快速安装库)
如果在其他地方已经安装好了,激活需要打包的虚拟环境,然后“cd 文件路径”切换到想要存放打包文件的位置,使用conda安装的python环境,使用以下命令激活:
查看所有的虚拟环境:conda envs list
激活虚拟环境:conda activate 虚拟环境名称
激活环境之后,切换到想要保存迁移资料的位置,比如切换到了C:\Users\63482\Desktop\Temporaryfile\0_pythontest\whls,这个可自定义 cd C:\Users\63482\Desktop\Temporaryfile\0_pythontest\whls
输入以下命令pip freeze --all > requirements.txt
执行完成后可以在whl文件中查看 requirements.txt,双击打开查看,这里需要删除@……后的内容,不删除会导致在新环境配置时报错。
切换到requirements所在目录文件,输入pip install -r requirements.txt,然后读取requirements.txt中的内容将所需要的库下载。或者进入Pycharm平台,切换到对应环境,点击Terminal执行如下操作。

🚨安装不上库,可单独安装。

五、制作目标检测数据集

1. VOC2007

新建一个名为VOC2007的文件夹,里面创建一个名为JPEGImages的文件夹存放打标签的图片文件;再创建一个名为Annotations存放标签文件;最后创建一个名为classes.txt 文件来存放所要标注的类别名称。
VOC2007的目录结构为:
├── VOC2007

│├── JPEGImages 存放图片文件

│├── Annotations 存放标签文件

│├── classes.txt 定义自己要标注的所有类别

(2)进入cmd命令行控制台,输入如下的命令:
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple,完成labelimg安装。
数据标注完成后,把标注的VOC格式标签xml文件转换为yolo格式标签txt文件,然后把数据集划分为训练集和验证集,如图所示,这样更加方便模型的训练和测试。
在这里插入图片描述

2.标注软件labelimg

在这里插入图片描述

第二部分 YOLOv5模型训练和测试

一、YOLOv5下载

https://github.com/ultralytics/yolov5

二、预训练权重下载

https://github.com/ultralytics/yolov5/releases/tag/v5.0

在这里插入图片描述

三、修改数据配置文件

1.修改yaml文件

打开yolov5项目,选择python解释器
在这里插入图片描述
修改data目录下的相应的yaml文件。找到目录下的voc.yaml文件,将该文件复制一份,将复制的文件重命名,我这里修改为glass.yaml。
在这里插入图片描述
打开这个文件夹修改其中的参数,首先将箭头1中的那一行代码注释掉(我已经注释掉了),如果不注释这行代码训练的时候会报错;箭头2中需要将训练和测试的数据集的路径填上(最好要填绝对路径,有时候由目录结构的问题会莫名奇妙的报错);箭头3中需要检测的类别数,这里填写6;最后箭头4中填写需要识别的类别的名字(必须是英文,否则会乱码识别不出来)。
在这里插入图片描述
修改models目录下的相应的yaml文件。找到目录下的yolov5s.yaml文件,将该文件复制一份,将复制的文件重命名,修改第一行分类数。

在这里插入图片描述
在这里插入图片描述
由于该项目使用的是yolov5s.pt这个预训练权重,所以要使用models目录下的yolov5s.yaml文件中的相应参数(因为不同的预训练权重对应着不同的网络层数,所以用错预训练权重会报错)。

2.修改训练文件

训练自己的模型需要修改如下几个参数就可以训练了。修改train.py首先将weights权重的路径填写到对应的参数里面,然后将修改好的models模型的yolov5s.yaml文件路径填写到相应的参数里面,最后将data数据的glass.yaml文件路径填写到相对于的参数里面。这几个参数就必须要修改的参数。

在这里插入图片描述
479行:是我们训练的初始权重的位置,是以.pt结尾的文件。
480行:训练模型文件,在本项目中对应yolov5s-hat.yaml;
481行:数据集参数文件,在本项目中对于glass.yaml;
482行:超参数设置,是人为设定的参数。包括学习率等等,可不改;
483行:训练轮数,决定了训练时间与训练效果。
484行:批量处理文件数,这个要设置地小一些,否则会out of memory。这个决定了我们训练的速度;

配置完成即可开始模型训练,
在这里插入图片描述

四、模型训练过程中程序报错

报错1
在这里插入图片描述

numpy因为版本的问题,弃用了某些类型名称,pip uninstall numpy卸载numpy,再安装其他版本,如pip install numpy==1.22.4

报错2
在这里插入图片描述
更换设备之后一直显示路径报错,但是查看coco.yaml等路径是正确的,查训练过程发现是之前训练的.cache文件没删,默认使用上次的训练路径,删除.cache文件。

报错3

在这里插入图片描述
RuntimeError: 结果类型Float无法强制转换为所需的输出类型int

方法一:新版本的torch无法自动执行[转换操作]而旧版本可以。卸载torch、torchaudio、torchvision,再安装其他版本:pip install torch2.1.2,torchaudio2.1.2,torchvision==0.16.2

方法二:将1处替换为anchors, shape = self.anchors[i], p[i].shape
在这里插入图片描述
将2处替换为indices.append((b, a, gj.clamp_(0, shape[2] - 1), gi.clamp_(0, shape[3] - 1))) # image, anchor, grid
在这里插入图片描述

报错4

默认的参数输入图片数量为16,工作核心为8的话就会出现GPU显存溢出的报错。报错信息如下:
在这里插入图片描述

调小这两个参数了,每个人的电脑配置不一样,所以可以根据自己的电脑配置来修改参数。
parser.add_argument(‘–batch-size’, type=int, default=8, help=‘total batch size for all GPUs’)
parser.add_argument(‘–workers’, type=int, default=8, help=‘maximum number of dataloader workers’)

报错5

解决:export GIT_PYTHON_REFRESH=quiet
在文件首行加入以下内容:
import os
os.environ[“GIT_PYTHON_REFRESH”] = “quiet”
再次运行train.py
在这里插入图片描述
anaconda的环境下存在两个libiomp5md.[dll文件]所以直接去虚拟环境的路径下搜索这个文件,可以看到在环境里有两个dll文件:
其中第一个是torch路径下的,第二个是虚拟环境本身路径下的,转到虚拟环境的路径下把它剪切到其他路径下备份就好(最好把路径也备份一下)
原路径D:\anaconda\envs\hui\Library\bin
剪切目录D:\anaconda\envs\hui

训练多轮mAP为零,数据太少,数据划分有问题,数据标注有错
在这里插入图片描述

五、启用tensorboard查看参数

yolov5里面有写好的tensorboard函数,可以运行命令就可以调用tensorbord,然后查看tensorboard了。首先打开pycharm的命令控制终端,输入如下命令,就会出现一个网址地址,将那行网址复制下来到浏览器打开就可以看到训练的过程了。
tensorboard --logdir=runs/train

六、推理测试

模型训练完成后,进行推理测试,点击detect文件,修改如下配置
在这里插入图片描述
254 修改权重文件路径
255 要检测的文件,可以是图片、视频、摄像头。填0时为打开电脑默认摄像头
255 数据集参数文件
257 图片大小,同上
258 置信度,当检测出来的置信度大于该数值时才能显示出被检测到,就是显示出来的框
259:非极大值抑制
261:GPU加速,同上
273 测试结果存放路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值