一、Python入门环境配置:Anaconda3与pycharm安装教程
二、labelimg应用:数据集标记
三、Windows下搭建Pytorch环境(CPU 版)
四、Windows下搭建Pytorch环境(超详细)
(官方要求:python>=3.6.0,pytorch>=1.7)
1、下载整个项目到本地桌面
4、安装yolov5所需要的库
方法二(利用国内镜像源下载requirements.txt的所需库,速度较快):
同上,右键 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 + 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
来训练)
train.py配置
代码往下拉,重点修改
--weights
对应 权重文件
--cfg
对应 model配置文件
--data
对应 data配置文件
(可根据自己的需求修改其他参数,具体看 help=
)
(方法一:)直接运行修改后的 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