今天学习了炮哥带你学的yolov5入门教程,并成功的训练出了模型,原博客地址:
目标检测—教你利用yolov5训练自己的目标检测模型

本文主要讲述了在Windows10环境下复现此项目的具体过程和遇到的一些问题及解决方法。

本文和此篇博客互为参考:
yolov5模型训练(学习笔记)

主要包括以下内容:

  • 一、环境搭建
    • (1)pytorch安装
    • (2)将pytorch应用到工程
    • (3)requirements中的依赖包安装
    • (4)环境搭建可能遇到的问题
  • 二、数据集制作
  • 三、yolov5模型训练
    • (1)配置文件修改
    • (2)模型训练
    • (3)模型训练可能遇到的问题
  • 四、测试结果
    • (1)图片测试步骤
    • (2)测试可能遇到的问题

代码下载:
yolov5的github地址:yolov5
本项目百度网盘地址:yolov5-hat
提取码:pVG2 (来自up主炮哥带你学)
本文以百度网盘中的工程文件为例~

软件准备:
已安装好anaconda、pycharm
anaconda安装步骤可以参考此篇博客:
Anaconda安装步骤(Windows10)

一、环境搭建

(1)pytorch安装

windows10系统中通过anaconda安装pytorch的具体步骤可以阅读此篇博客:
anaconda安装pytorch(anaconda3,Windows10)

(2)将pytorch应用到工程

在上一步中我们通过anaconda安装了pytorch,并将其导入了pycharm,下面我们来将名称为pyotch环境中的编译器应用到工程文件中去。

1.我在D盘下新建了一个名为project的文件夹,将下载好的压缩包解压在此文件夹下,下载并解压好的文件如图所示:

2.右键点击yolov5-hat工程文件夹,点击Open Folder as PyCharm Project打开yolov5-hat工程文件,打开的界面如图所示:

3.点击文件设置

4.选择Project Interpreter,选择刚刚导入pycharm的pytorch环境(见步骤(1)中博客),点击应用,最后点击确认

这样我们就成功将名称为pytorch环境中的编译器应用到了yolov5-hat工程中。

(3)requirements中的依赖包安装

1.接下来对工程所需的依赖包进行安装,首先打开terminal

2.复制requirements.txt文件中的命令行:

pip install -r requirements.txt

粘贴在terminal中,并按回车键运行命令行,requirements中的依赖包就开始安装了

(4)环境搭建可能遇到的问题

1.运行命令pip install -r requirements.txt出现错误:
ERROR: Could not build wheels for pycocotools which use PEP 517 and cannot be installed directly
如下图所示:

分析原因:
pycocotools即python api tools of COCO。COCO是一个大型的图像数据集,用于目标检测、分割、人的关键点检测、素材分割和标题生成。
查阅资料后得知,coco作者早期只发布了linux版本的coco数据集,在windows下使用coco需要通过其他的安装命令;
同时通过requirements安装依赖包,系统会先读取整个txt的依赖包名称并下载,只有全部读取并下载完成之后再一起安装,因此出现此错误时,因为pycocotools下载失败而终止了进程,导致requirements中的依赖包一个也未能安装

解决方案:
我们可以通过单独安装pycocotools的方法解决这一问题
1.打开Anaconda Prompt,输入下面的命令行并按回车键,进入pytorch环境

conda activate pytorch

2.输入下面的命令行安装pycocotools

conda install pycocotools -c Esri


输入y,并按回车键

3.等待pycocotools安装完成后,我们再次在terminals中输入命令pip install -r requirements.txt并按回车键,就可以顺利安装所有的依赖包了



4.在Anaconda Prompt中进入pytorch环境之后,输入下面的命令行可以查看pytorch环境下已经安装好的依赖包

conda list


同时我们还可以看到安装了2.0.2版本的pycocotools
(如遇到其他错误会后续更新…)

二、数据集制作

我们可以通过使用labelimg来制作我们自己的数据集,具体步骤可以阅读此篇博客:
数据集制作——使用labelimg制作数据集
yolov5作者给我们提供了相关的预训练权重,应用预训练权重能够使模型训练速度更快,精度更高
预训练权重地址

此项目的预训练权重为yolov5s.pt,并且百度网盘压缩包中提供了数据集和标签文件,此处不再赘述,想要训练其他模型的根据数据集自行打标签即可
同时为了方便起见,接下来我们就还使用此预训练模型进行复现

三、yolov5模型训练

(1)配置文件修改

1.打开hat.yaml,yolov5_hat.yaml,train.py三个文件
将hat.yaml文件中的图片路径改为自己电脑中的路径,同时确保标签种类(number of classes)为2,标签名称(class names)是标记的两种

2.确保yolov5_hat.yaml中标签种类(number of classes)为2


3.在train.py文件中确保权重(weight)、模型(model)、数据(data)三者的路径正确
weights:初始化的权重文件的路径地址
cfg:模型yaml文件的路径地址
data:数据yaml文件的路径地址

(2)模型训练

1.代码中的epochs是指整个模型一共在数据集上训练多少次;batch-size则是指一次训练用几张图片

下面以epochs=50,batch-size=4为例

2.运行train.py文件,开始训练模型

因为训练模型时间较长,结果就不展示了~

(3)模型训练可能遇到的问题

1.遇到错误AssertionError: Image Not Found D:\PycharmProjects\yolov5-hat\VOCdevkit\images\images\train\00000.jpg
如下图所示:

解决方案:
在模型训练过程中,会创建新的模型训练附属文件

此工程中有残留的上次的模型训练附属文件,在label文件夹下删除train.cache和val.cache后再重新运行train.py即可

2.如果遇到out of memory等错,是因为显卡内存不够,就降低batch-size;还有number workers等等,不再赘述
(如遇到其他错误会后续更新…)

四、测试结果

效果测试将以压缩包中自带的best.pt权重文件进行测试

(1)图片测试步骤

1.将权重文件保存于weights文件夹中

2.将想进行测试的图片放在工程目录下,如图所示:

3.将source名称改为要测试的图片名称

4.运行defect.py,可以看到运行结果在runs\detect\exp11文件夹下,得到结果如下图所示:

(2)测试可能遇到的问题

1.遇到错误AttributeError: ‘Upsample’ object has no attribute ‘recompute_scale_factor’

解决步骤:
1.点击upsampling.py

2.在第153和154行找到下图所示代码

3.将其更改为:

        return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)


然后再次运行defect.py就能顺利得出结果了~

目标检测—基于Yolov5的目标检测项目(学习笔记)相关推荐

  1. 基于YOLOv5的目标检测系统详解(附MATLAB GUI版代码)

    摘要:本文重点介绍了基于YOLOv5目标检测系统的MATLAB实现,用于智能检测物体种类并记录和保存结果,对各种物体检测结果可视化,提高目标识别的便捷性和准确性.本文详细阐述了目标检测系统的原理,并给 ...

  2. 【目标检测】基于yolov5的钢筋检测和计数(附代码和数据集)

    写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 文末获取代码和数据集,请看检测效果: 一. 介绍 基于 ...

  3. 【目标检测】基于yolov5的红细胞检测和计数(附代码和数据集,Ubuntu系统)

    写在前面:"路虽远,行则将至:事虽难,做则必成.只要有愚公移山的志气.滴水穿石的毅力,脚踏实地,埋头苦干,积跬步以至千里,就一定能够把宏伟目标变为美好现实." 首先感谢兄弟们的订阅 ...

  4. 项目:基于yolov5的舰船检测+pycharm+机器学习+图像检测

    项目:基于yolov5的舰船检测+pycharm+机器学习+图像检测 项目将深度学习的方法引入海洋目标的检测,利用深度神经网络模型强大的学习能力和模型通用性,来实现准确.可靠和快速的目标自动检测和识别 ...

  5. 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)

    深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码) 目录 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码) 1. 前言 2. 红绿灯检测数据集说明 (1) ...

  6. 使用YMIR生产基于yolov5的头盔检测模型

    使用YMIR生产基于yolov5的头盔检测模型 1.概述 2.YOLOV5结构解析 YOLOV5在coco数据集性能测试图 3.算法基本信息 动手实测 查看训练.测试数据集 模型训练启动页面 模型运行 ...

  7. 基于YOLOv5的舰船检测与识别系统(Python+清新界面+数据集)

    摘要:基于YOLOv5的舰船检测与识别系统用于识别包括渔船.游轮等多种海上船只类型,检测船舰目标并进行识别计数,以提供海洋船只的自动化监测和管理.本文详细介绍船舰类型识别系统,在介绍算法原理的同时,给 ...

  8. 基于YOLOv5的停车位检测系统(清新UI+深度学习+训练数据集)

    摘要:基于YOLOv5的停车位检测系统用于露天停车场车位检测,应用深度学习技术检测停车位是否占用,以辅助停车场对车位进行智能化管理.在介绍算法原理的同时,给出Python的实现代码.训练数据集以及Py ...

  9. 基于YOLOv5的疲劳检测,可检测是否玩手机,抽烟,喝水,眨眼,打哈欠等

    基于YOLOv5的疲劳检测,可检测是否玩手机,抽烟,喝水,眨眼,打哈欠等

最新文章

  1. 92django_url
  2. IDEA 代码生成插件 CodeMaker
  3. 算法 --- 回溯法
  4. mysql查询会话池_用户会话,数据控件和AM池
  5. 为啥用redis解决会话呢?
  6. 物理频率、模拟角频率、数字角频率和归一化数字角频率个人理解
  7. 在Vue+springBoot环境中如何实现单点登录(SSO)
  8. 记录红米k40解BL、Root、装XPOSED
  9. 前端跨域解决方案总结
  10. 3D 世界的钥匙「GitHub 热点速览 v.22.08」
  11. 数据持久层框架Mybatis
  12. 华为的服务器虚拟化软件,华为FusionSphere虚拟化软件各版本之间的功能和区别
  13. Adobe reader 添加注释后,点击保存,强制要求另存为
  14. 超清楚!麦克风阵列学习笔记(一)——线性麦克风阵列的时间延迟Beamforming算法(Time-Delay Beamforming of Microphone ULA Array)
  15. 爱奇艺连续三年独家直播中网赛事 打造高端体育赛事生态矩阵
  16. sqlserver阻止保存要求重新创建表的更改
  17. .NET5.0 初始
  18. Oracle VPD
  19. python画正切函数_python的pygal模块绘制反正切函数图像方法
  20. 启用国行Lumia 830/930的联通4G网络

热门文章

  1. vue-admin-template 花裤衩 未登录 显示列表
  2. python selenium 大众点评餐厅信息+用户评论 爬虫
  3. Linux基础命令学习——实战篇(给swap分区增加500M)
  4. 仿淘宝星级评论的实现
  5. 腾然教育官网重新升级改版,2022年涅槃重生,王者归来
  6. 物联网卡拉开智能家居变革序幕
  7. FFmpeg截图以及生成缩略图
  8. 互联网行业外包公司和自主研发公司的区别
  9. php文本输入框,html文本输入框代码是什么?如何创建html文本输入框
  10. 用Fabric构建应收账款融资系统的方法