更新于2021.6.25
官网下载连接:下载
安装过程这里就不多赘述了
官网下载链接:下载
官网下载链接:下载
打开Anaconda Prompt(Anaconda)
如上图Anaconda默认下只有base
环境,我们需要重新创建一个环境并部署相关文件
conda create -n yolo5 python=3.8
//yolo5:环境名,可以自己设置
输入后,稍等片刻会有如下类似界面
接着我们输入y
来执行安装
稍等片刻后
出现如上类似界面说明安装完成
我们可以通过以下命令来查看已经创建的环境
conda info -e
可以看到上图中有原生的base
环境,以及我们刚创建的yolo5
环境
接着我们输入如下代码进入yolo5
环境
activate yolo5
可以看到我们左侧括号内的base
已经变成了yolo5
成功进入yolo5环境
我们将下载下来的yolo5
压缩包解压
我这里存放的路径是E:\Yolo5\yolov5-master
注意这里的文件夹内应该有requirements.txt
文件
接着我们在Anaconda Prompt(Anaconda)
控制台下进入当前的文件夹
Anaconda
的简单操作如下:
E:
进入E盘,不区分大小写
cd ..
返回上一级文件夹
cd Yolo5
进入名为"Yolo5"的文件夹
**Tips:**在输入文件夹时可以只输入首字母接着按Tab
键快速填充,如有多个同首字母的可以再次按下切换
接下来将以我存放的路径为例,自己安装时注意自己存放的文件路径!!!
进入该目录下,确保目录下有requirements.txt
文件,接着我们输入指令安装所需文件
注意这里我们可以打开requirements.txt
文件看到我们所安装的包,也可以自己修改所安装包的版本
pip install -r requirements.txt
稍等片刻完成后
Yolo5
的文件便准备完成了
这里我们以官方的coco128数据集为例子,稍后我们还会讲到如何制作自己的数据集
coco128数据集下载连接
我参考了网上各种结构的存放,再加上自己的试验后总结出较为简洁且的结构
在这种结构下数据集文件夹内还包含两个问价夹一个是images
用来存放图片,另一个是labels
用来存放标签数据(txt)
而存放的路径其实除了不要有中文以外无所谓,我们可以在data
的yaml
文件内修改,放的近可以让路径变的简短
下文中我都将数据集改成该类型格式包括测试数据集coco128
修改后的coco128
数据集其文件夹内只保留images
和labels
文件夹而images
文件夹内有128张图片,labels
文件夹内有128个txt
文件(其他的文件我们都可以直接删除)
有关权重文件的选择,在官网的下载连接内也有较为详细的解释,这里我们也不赘述了。也选择速度较快的yolov5s.pt
来做演示
我们一共要修改如下三个文件
第一个:位于models
文件夹内的yolov5s.yaml
文件
这里加入你使用的时其他的权重文件,那么使用和权重文件同名的yaml
问价进行修改即可
打开后如下图所示
而我们需要修改的则是nc
项目,后面的数字表示数据集内种类的个数,而官方的coco128
数据集就有80个类所以在这里我们不需要修改
而下方的depth_multiple
和width_multiple
这两个参数如果你打开其他几个yaml
文件的话,会发现只有这两个参数改变了,而他们分别表示了神经网络的层数以及输出通道数。你也可以试着修改这两个参数,调试出自己满意的的神经网络。
第二个:哪里都可以,叫什么都行的的yaml
文件
这个文件存放在哪里都行,因为在后面我们会填写他的路径,所以也可以自己创建,官方在data文件夹下已经写好了一个,但我们这里还是自己创建一个演示
那么首先我们这里选择在data文件夹内创建一个yaml
文件我这里命名为test.yaml
打开该文件,我们需要输入一下内容
train: ../coco128/images/
val: ../coco128/images/
nc: 80
names: [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
'hair drier', 'toothbrush' ]
我们一个个来看,首先是train
属性这里我们要填写的是图片所在的文件夹,而这里的相对路径是以下面的train.py
为起点的,所以这里我们填写../coco128/images/
下面的val
一项也填写一样的路径即可。
nc
和第一个文件一样,表示数据集内种类的个数,同步即可
name
数据集内每个类别的名称
第三个:位于根目录下的train.py
文件
打开该文件,并找到如下位置
这些参数我们都可以自己做修改,在官网处也有说明,这里我们只讲需要的部分
以下的文件路径都填写相对路径为例
--weights
:default
:权重文件的路径
例如我们将权重文件存放在weights文件夹内那么内容我们就填写weights/yolov5.yaml
--cfg
:default
:参数文件路径
这里填写的就是我们上个修改的文件路径,但是实际上在这里会默认帮我们选择对应的配置文件,所以这里可以不填也可以填上models/yolov5s.yaml
--data
:default
:data文件路径
这里填写的就是我们修改的第二个文件的路径,所以这里我们填写data/test.yaml
--epochs
:default
:迭代次数,也可以说是权重更新次数,过少可能会欠拟合,过多也可能会导致过拟合,不同的数据集都有着不同的最佳次数,但是随着迭代次数的增加,所耗费的时间是一定增加的
--batch-size
:default
:训练中的取样个数
这个参数在实际训练中并不一定是越大或者越小越好,增大数值也可能加快处理速度,但数值过大可能导致内存不足。实际数值依然需要自行调试
将三个文件修改好并保存好后我们就可以进入下一步,开始训练我们的模型了
首先我们依然是在Anaconda Prompt(Anaconda)
控制台下输入指令,我们需要确保我们在已经进入创建好的yolo5
环境下,并且已经进入目录文件夹内
如下图所示
接着我们输入即可开始训练模型了
python train.py
接下来我们只需等待训练完成即可,训练完后的模型文件存放在runs/train/exp*
内
这里的exp*
在结束训练时会有列出,一般也是最大的一个数值
我们这里可以点击Archive of Previous
来下载更早的版本
下载好后我们打开进行安装
之后我们选择自定义
我们只选择以下两项进行安装,安装路径个人喜好,但我们要记住这个路径!
接下来下载cuDNN,下载cuDNN需要登录NVIDA的账号,也支持QQ和微信登录
cuDNN下载链接
同样的我们可以点击Archived cuDNN Releases
查看以前的版本
接着我们找到适合我们CUDA版本的cuDNN下载
下载后解压压缩包,压缩包内应该有三个文件夹分别为bin
,include
,lib
我们选中这三个文件夹,复制到CUDA安装的目录下,目录内应该也会有三个同名文件夹
接着我们向系统环境变量中添加CUDA
右键此电脑选择-属性-高级系统设置-环境变量
双击系统变量中的PATH
点击新建接着输入CUDA的安装路径+\bin
和\libnvvp
这里我的CUDA安装在D盘下的CUDA文件夹内
就像这样填
安装Pytorch前 我们需要注意,如果安装过CPU版本的Pytorch我门需要在环境中卸载该版本。我们可以打开Anaconda Navigator(Anaconda)
接着选择Environments
在yolo5中搜索pytorch
进行卸载。
接着我们安装Pytorch,安装Pytorch需要在Anaconda Prompt(Anaconda)
控制台下并且进入我们创建的yolo5
环境下
我们打开这个网址Pytorch接着在这里复制Run this Command
内的内容到控制台下回车即可开始安装(NOTE不需要复制)
PyTorch Build
是PyTorch的版本默认稳定版即可
Your OS
为你的操作系统,对应即可
Package
包的类型,默认即可
Language
编程语言,这里选择Python
Compute Platform
安装CUDA的版本,这里可以自由选择,我这里选了11.1
输入到控制台后就是等待,有些大文件例如Pytorch可能下载不成功,多试几次可能就成功了,或者选择下载国内的镜像自行安装,这里也不做赘述了。
检测是否安装成功:
我们同样在Anaconda Prompt(Anaconda)
控制台yolo5
环境下进行测试,输入如下代码
python
import torch
torch.cuda.is_available()
//返回Ture则成功安装了CUDA
from torch.backends import cudnn
cudnn.is_available()
//返回Ture则成功安装了cudnn
根据上文中的数据集文件结构的存放,我们只需要将创建一个文件夹,文件夹内包含images
文件夹并将图片储存在其中,以及labels
文件夹存放标签数据,这时我们要用到labelImg
工具。下载
我们只需要打开他,选择Open Dir
接着选择我们的images
文件夹,接着还会跳出一个文件夹选择框,这时我们选择labels
文件夹。接着就可以画标签了,使用教程这里也不做过多的赘述了