相关文章

一、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、下载整个项目到本地桌面


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 shutilclass 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 = 0for item in filelist:if item.endswith('.jpg') or item.endswith('jpeg'):src= nowdir + itemdst =nowdir + str(i) + os.path.splitext(item)[-1]os.rename(src, dst)i = i + 1if __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

YOLOV5:在本地电脑训练模型相关推荐

  1. 如何将adb shell里面查到的文件复制到本地电脑

    一般我们通过adb连接到安卓系统后,可以通过abd shell的ls命令来查看到该目录下的文件. 然后如果要复制该目录的文件到本地电脑,则一般不在adb shell里面来操作.通常直接使用 adb p ...

  2. python怎么在电脑上使用-使用python在本地电脑上快速处理数据

    大数据一般是在"云"上玩的,但"云"都是要钱的,而且数据上上下下的也比较麻烦.所以,在本地电脑上快速处理数据的技能还是要的. pandas 在比赛中学到的一个工 ...

  3. CUDA:根据本地电脑的NVIDIA显卡驱动版本去正确匹配待安装的CUDA版本之详细攻略

    CUDA:根据本地电脑的NVIDIA显卡驱动版本去正确匹配待安装的CUDA版本之详细攻略 目录 本地电脑的NVIDIA显卡驱动版本正确匹配对应的CUDA版本

  4. Crawler:反爬虫之基于urllib库+伪装浏览器方式实现从各种网站上(以百度贴吧为例)获得你喜欢的照片下载到本地电脑上

    Crawler:反爬虫之基于urllib库+伪装浏览器方式实现从各种网站上(以百度贴吧为例)获得你喜欢的照片下载到本地电脑上 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 import ...

  5. 服务器文件每天备份重新命名,定时备份服务器文件至本地电脑

    你有么有遇到过以下情况: 1 写的脚本忘记保存,然后苦逼地再写一遍 2 脚本不小心或者小心地删掉了,但后来又发现很有用,依然苦逼地再写一遍 3 实验室的服务器炸了,写的脚本全没了 一般情况下,第三种情 ...

  6. 如何让外网访问本地电脑(笔记本):路由映射篇

    说到团队项目管理,很多公司都有用到不同的管理系统,作为企业开发人员,如果自己的公司没有用到这种集团化办公资源交互软件,不仅仅是企业管理上面的确实,也是对技术员的侮辱. 公司有了自己的办公生态环境,集团 ...

  7. 远程linux服务器,安装集成的xampp,本地电脑远程连接数据库进行使用

    远程linux服务器,安装集成的xampp,本地电脑远程连接数据库进行使用 使用 navicat 相关软件远程连接数据库远程访问 xampp目录一般在/opt/lampp中 一.执行命令.进入目录: ...

  8. Centos7访问本地电脑共享文件夹遇到的问题

    Centos7访问本地电脑共享文件夹遇到的问题 1.关于安装文件命令 ​ 网上教程里很多时候写安装命令是用 sudo apt-get insatll 命令 ​ 而在centos中 我们要使用的安装命令 ...

  9. unset是不能清除保存在本地电脑上的cookie的,用于session就可以(弄了半天原来是这样)...

    unset($_COOKIE["historyWord[$wordId]"]); 这样是不行的,unset只是将变量在脚本运行时注销,但是cookie是写在客户端的,下一次还是可以 ...

最新文章

  1. JBoss企业级应用服务平台群集指南(五)
  2. 产业|中国电子学会发布《机器人十大新兴应用领域(2018-2019年)》
  3. 《数据结构》学习笔记一:绪论
  4. SQL SERVER 2012修改数据库名称(包括 db.mdf 名称的修改)
  5. 非常详细Redis数据库入门教程
  6. java 路径中代替斜杠_老生常谈java路径中的反斜杠和斜杠的区别
  7. jsp如何编写java代码_如何在JSP页面内编写java代码?(代码示例)
  8. vscode下载提速方法
  9. 概率论与数理统计学习笔记(1)——t检验与P值
  10. 解决mac上复制粘贴失效问题
  11. 英雄无敌王朝 服务器维护,魔法门之英雄无敌王朝全新护国神器玩法介绍_魔法门之英雄无敌王朝全新护国神器怎么玩_玩游戏网...
  12. Agile Scrum WaterFall通俗易懂的全过程整理
  13. 一个时代的印记:还记得那些年我们逃课去的网吧
  14. 政务云市场开启“狂飙”:一项前三,两项跃升!
  15. 探访广东第二鬼城,一座长在石油上的城市
  16. catkin_make报错: ROS Base path和Source space不一致问题,
  17. MySQL8高级优化,持续更新......
  18. WinSCP 以预设密码进行验证 拒绝访问
  19. securecrt能输入命令吗?
  20. python编写程序、实现一个数字金字塔_python实现输入任意一个大写字母生成金字塔的示例...

热门文章

  1. “求答案?一筐鸡蛋:几个几个拿”的Python解答
  2. TIME_WAIT和CLOSE_WAIT状态区别
  3. Mac端口5000被ControlCe占用问题解决方法
  4. 探秘app.asar
  5. 【日记】20220219启动项目蓝屏
  6. 敏涵·精致遮暇乳打造“新国妆”专场 致力新锐品牌强势“出圈”
  7. prctl()和pthread_setname_np()函数-设置线程名称
  8. 31.进程管理之进程概览,及ps命令详解,ps -ef,ps aux,ps -le,ps -l输出详解和示例
  9. 如何设置html的背景效果,背景图片的透明度如何设置(CSS)
  10. 【Vue2】自定义指令 directives 过滤器 filter