YOLOV5:在本地电脑训练模型

相关文章

一、Python入门环境配置:Anaconda3与pycharm安装教程

二、labelimg应用:数据集标记

三、Windows下搭建Pytorch环境(CPU 版)

四、Windows下搭建Pytorch环境(超详细)


目录

  • 相关文章
  • 一、YOLOV5环境搭建
  • 二、数据集准备
  • 三、配置文件
  • 四、训练模型
  • 五、测试模型


一、YOLOV5环境搭建

(官方要求:python>=3.6.0,pytorch>=1.7)

  • YOLOV5 GitHub地址:https://github.com/ultralytics/yolov5

1、下载整个项目到本地桌面

YOLOV5:在本地电脑训练模型_第1张图片


2、【点击】
YOLOV5:在本地电脑训练模型_第2张图片


3、拉到页面最下面,下载模型文件 到yolov5 目录
YOLOV5:在本地电脑训练模型_第3张图片
YOLOV5:在本地电脑训练模型_第4张图片


4、安装yolov5所需要的库

  • 方法一(此方法较慢):

    右键 requirements.txt 【属性】,复制【位置】
    YOLOV5:在本地电脑训练模型_第5张图片

    快捷键:Ctrl + r 打开 cmdcdrequirements.txt 所在的目录
    YOLOV5:在本地电脑训练模型_第6张图片

    输入 pip install -r requirements.txt 指令,然后等待安装即可
    YOLOV5:在本地电脑训练模型_第7张图片


  • 方法二(利用国内镜像源下载requirements.txt的所需库,速度较快):

    同上,右键 requirements.txt 【属性】,复制【位置】

    cd 转到 requirements.txt 目录
    YOLOV5:在本地电脑训练模型_第8张图片

    输入pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple,然后等待安装即可
    YOLOV5:在本地电脑训练模型_第9张图片


二、数据集准备

  1. YOLOv5目录 下 新建一个文件夹 train_data
    YOLOV5:在本地电脑训练模型_第10张图片

    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 里面


  1. 用python脚本将图片 重命名分割

    train_data\images\ 路径下 新建一个rename.py (一定要放在此路径下)
    YOLOV5:在本地电脑训练模型_第11张图片

    把下面代码粘贴进去,运行代码

    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')
    

    效果:
    YOLOV5:在本地电脑训练模型_第12张图片
    YOLOV5:在本地电脑训练模型_第13张图片


  1. 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 下。


三、配置文件

  1. data文件配置

    yolov5-master\data 目录下新建一个 xxx.yaml 文件(我这里建立pen.yaml 做演示)
    YOLOV5:在本地电脑训练模型_第14张图片

    把代码粘贴进 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:类的名称


  1. models文件配置

    接着在 yolov5-master\models 目录下
    复制一份你要使用的模型配置(我这里打算用yolov5s来训练)
    YOLOV5:在本地电脑训练模型_第15张图片

    打开文件,修改 nc:数量 (标注了多少种类就填多少)
    Ctrl + s 保存
    YOLOV5:在本地电脑训练模型_第16张图片

    修改一下文件名(下图是修改后)
    YOLOV5:在本地电脑训练模型_第17张图片


  1. train.py配置

    打开 train.py
    YOLOV5:在本地电脑训练模型_第18张图片

    代码往下拉,重点修改
    --weights对应 权重文件
    --cfg 对应 model配置文件
    --data 对应 data配置文件
    (可根据自己的需求修改其他参数,具体看 help= )
    YOLOV5:在本地电脑训练模型_第19张图片

    YOLOV5:在本地电脑训练模型_第20张图片
    Ctrl + s 保存


四、训练模型

  1. (方法一:)直接运行修改后的 train.py 程序

  2. (方法二:)快捷键:win + r 打开 cmdcd 到 yolov5的目录下,(可右键train.py【属性】 复制 【位置】), 然后 输入 train.py 回车即可
    YOLOV5:在本地电脑训练模型_第21张图片
    YOLOV5:在本地电脑训练模型_第22张图片

    训练完后yolov5文件夹内会生成 runs 文件夹,权重文件在 ...\runs\train\exp\weights 中,best.ptlast.pt 代表 最佳效果模型 和 最后训练模型。

五、测试模型

打开目录下的 detect.py

(修改前)
YOLOV5:在本地电脑训练模型_第23张图片
--weights对应 你训练的权重文件(自行修改路径)
--source 对应 你要检测的图片(自行修改路径)
--data 对应 data配置文件(自行修改路径)
(修改后)
YOLOV5:在本地电脑训练模型_第24张图片

直接运行 detect.py 程序即可

YOLOV5:在本地电脑训练模型_第25张图片

如有错误之处,欢迎指正 O(∩_∩)O

你可能感兴趣的