相关文章
一、Python入门环境配置:Anaconda3与pycharm安装教程
目录
一、YOLOV5环境搭建
(官方要求:python>=3.6.0,pytorch>=1.7)
- YOLOV5 GitHub地址:https://github.com/ultralytics/yolov5
1、下载整个项目到本地桌面
2、【点击】
3、拉到页面最下面,下载模型文件 到yolov5 目录
4、安装yolov5所需要的库
-
方法一(此方法较慢):
右键
requirements.txt
【属性】,复制【位置】快捷键:Ctrl + r 打开
cmd
,cd
到requirements.txt
所在的目录输入
pip install -r requirements.txt
指令,然后等待安装即可
-
方法二(利用国内镜像源下载requirements.txt的所需库,速度较快):
同上,右键
requirements.txt
【属性】,复制【位置】cd
转到requirements.txt
目录输入
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
,然后等待安装即可
二、数据集准备
-
在
YOLOv5目录
下 新建一个文件夹train_data
在
train_data
内再新建文件夹,结构如下:———— trian | ———— images - | | | ———— val train_data- | ———— train | | ———— labels - | ———— val
解释:
train_data\images\train
下存放训练集train_data\images\val
下存放验证集train_data\labels\train
下存放训练集的标签.txt
文件train_data\labels\val
下存放验证集的标签.txt
文件
把你的搜集的全部图片数据集先放在 train_data\images\train
里面
-
用python脚本将图片 重命名 和 分割
在
train_data\images\
路径下 新建一个rename.py
(一定要放在此路径下)把下面代码粘贴进去,运行代码
import os import random import shutil class Dataset_split(): def __init__(self): self.train_path= os.getcwd()+ r'/train/' self.val_path = os.getcwd()+ r'/val/' def split_train_val(self,train_ratio=0.8,val_ratio=0.2): """ 数据集图片分割 :param train_ratio: 训练集比例(可更改,默认0.8) :param val_ratio: 验证集比例(可更改,默认0.2) :return: """ filelist = os.listdir(self.train_path) pic_num = len(filelist) num =[q for q in range(0,pic_num)] index = random.sample(num,int(val_ratio*pic_num)) for i in index: src = self.train_path+filelist[i] dst = self.val_path+filelist[i] shutil.copy(src,dst) for i in index: src = self.train_path + filelist[i] os.remove(src) def rename(self,filename): """ 文件重命名 :param filename: 当前目录文件名 :return: """ nowdir = os.getcwd() + '/' +filename + '/' filelist = os.listdir(nowdir) num = len(filelist) i = 0 for item in filelist: if item.endswith('.jpg') or item.endswith('jpeg'): src= nowdir + item dst =nowdir + "00" + str(i) + os.path.splitext(item)[-1] os.rename(src, dst) i = i + 1 if __name__ == '__main__': a=Dataset_split() a.split_train_val() a.rename('train') a.rename('val')
效果:
-
用
labelimg
标注图片对整理好的图片进行标注,不会用
labelimg
的看这篇文章:https://blog.csdn.net/weixin_44630522/article/details/122441572要将
train_data\images\train
的图片对应的标签文件保存到train_data\labels\train
下。同理,
train_data\images\val
的图片对应的标签文件保存到train_data\labels\val
下。
三、配置文件
-
data文件配置
在
yolov5-master\data
目录下新建一个xxx.yaml
文件(我这里建立pen.yaml
做演示)把代码粘贴进
pen.yaml
,然后Ctrl + s
保存path: ../train_data # dataset root dir train: images/train # train images (relative to 'path') val: images/val # val images (relative to 'path') # Classes nc: 1 # number of classes names: ['pen'] # class names
解释:
path:存放数据集的根目录
train: 根目录下存放的训练集路径
val:根目录下存放的验证集路径
nc: 类的数量(标注了多少种类就填多少)
names:类的名称
-
models文件配置
接着在
yolov5-master\models
目录下
复制一份你要使用的模型配置(我这里打算用yolov5s
来训练)打开文件,修改
nc:数量
(标注了多少种类就填多少)Ctrl + s
保存修改一下文件名(下图是修改后)
-
train.py配置
打开
train.py
代码往下拉,重点修改
--weights
对应 权重文件--cfg
对应 model配置文件--data
对应 data配置文件
(可根据自己的需求修改其他参数,具体看help=
)Ctrl + s
保存
四、训练模型
-
(方法一:)直接运行修改后的
train.py
程序 -
(方法二:)快捷键:
win + r
打开cmd
,cd
到 yolov5的目录下,(可右键train.py
【属性】 复制 【位置】), 然后 输入train.py
回车即可训练完后yolov5文件夹内会生成
runs
文件夹,权重文件在...\runs\train\exp\weights
中,best.pt
和last.pt
代表 最佳效果模型 和 最后训练模型。
五、测试模型
打开目录下的 detect.py
(修改前)--weights
对应 你训练的权重文件(自行修改路径)--source
对应 你要检测的图片(自行修改路径)--data
对应 data配置文件(自行修改路径)
(修改后)
直接运行 detect.py
程序即可
如有错误之处,欢迎指正 O(∩_∩)O