YOLOV5:在本地电脑训练模型

相关文章

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

二、labelimg应用:数据集标记

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

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



一、YOLOV5环境搭建

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


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

在这里插入图片描述


2、【点击】
在这里插入图片描述


3、拉到页面最下面,下载模型文件 到yolov5 目录
在这里插入图片描述
在这里插入图片描述


4、安装yolov5所需要的库

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

    右键 requirements.txt 【属性】,复制【位置】
    在这里插入图片描述

    快捷键:Ctrl + r 打开 cmdcdrequirements.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,然后等待安装即可
    在这里插入图片描述


二、数据集准备

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


  1. 用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')
    

    效果:
    在这里插入图片描述
    在这里插入图片描述


  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 做演示)
    在这里插入图片描述

    把代码粘贴进 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来训练)
    在这里插入图片描述

    打开文件,修改 nc:数量 (标注了多少种类就填多少)
    Ctrl + s 保存
    在这里插入图片描述

    修改一下文件名(下图是修改后)
    在这里插入图片描述


  1. train.py配置

    打开 train.py
    在这里插入图片描述

    代码往下拉,重点修改
    --weights对应 权重文件
    --cfg 对应 model配置文件
    --data 对应 data配置文件
    (可根据自己的需求修改其他参数,具体看 help= )
    在这里插入图片描述

    在这里插入图片描述
    Ctrl + s 保存


四、训练模型

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

  2. (方法二:)快捷键:win + r 打开 cmdcd 到 yolov5的目录下,(可右键train.py【属性】 复制 【位置】), 然后 输入 train.py 回车即可
    在这里插入图片描述
    在这里插入图片描述

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

五、测试模型

打开目录下的 detect.py

(修改前)
在这里插入图片描述
--weights对应 你训练的权重文件(自行修改路径)
--source 对应 你要检测的图片(自行修改路径)
--data 对应 data配置文件(自行修改路径)
(修改后)
在这里插入图片描述

直接运行 detect.py 程序即可

在这里插入图片描述

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

  • 6
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值