目标检测—基于Yolov5的目标检测项目(学习笔记)
今天学习了炮哥带你学的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的目标检测项目(学习笔记)相关推荐
- 基于YOLOv5的目标检测系统详解(附MATLAB GUI版代码)
摘要:本文重点介绍了基于YOLOv5目标检测系统的MATLAB实现,用于智能检测物体种类并记录和保存结果,对各种物体检测结果可视化,提高目标识别的便捷性和准确性.本文详细阐述了目标检测系统的原理,并给 ...
- 【目标检测】基于yolov5的钢筋检测和计数(附代码和数据集)
写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 文末获取代码和数据集,请看检测效果: 一. 介绍 基于 ...
- 【目标检测】基于yolov5的红细胞检测和计数(附代码和数据集,Ubuntu系统)
写在前面:"路虽远,行则将至:事虽难,做则必成.只要有愚公移山的志气.滴水穿石的毅力,脚踏实地,埋头苦干,积跬步以至千里,就一定能够把宏伟目标变为美好现实." 首先感谢兄弟们的订阅 ...
- 项目:基于yolov5的舰船检测+pycharm+机器学习+图像检测
项目:基于yolov5的舰船检测+pycharm+机器学习+图像检测 项目将深度学习的方法引入海洋目标的检测,利用深度神经网络模型强大的学习能力和模型通用性,来实现准确.可靠和快速的目标自动检测和识别 ...
- 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)
深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码) 目录 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码) 1. 前言 2. 红绿灯检测数据集说明 (1) ...
- 使用YMIR生产基于yolov5的头盔检测模型
使用YMIR生产基于yolov5的头盔检测模型 1.概述 2.YOLOV5结构解析 YOLOV5在coco数据集性能测试图 3.算法基本信息 动手实测 查看训练.测试数据集 模型训练启动页面 模型运行 ...
- 基于YOLOv5的舰船检测与识别系统(Python+清新界面+数据集)
摘要:基于YOLOv5的舰船检测与识别系统用于识别包括渔船.游轮等多种海上船只类型,检测船舰目标并进行识别计数,以提供海洋船只的自动化监测和管理.本文详细介绍船舰类型识别系统,在介绍算法原理的同时,给 ...
- 基于YOLOv5的停车位检测系统(清新UI+深度学习+训练数据集)
摘要:基于YOLOv5的停车位检测系统用于露天停车场车位检测,应用深度学习技术检测停车位是否占用,以辅助停车场对车位进行智能化管理.在介绍算法原理的同时,给出Python的实现代码.训练数据集以及Py ...
- 基于YOLOv5的疲劳检测,可检测是否玩手机,抽烟,喝水,眨眼,打哈欠等
基于YOLOv5的疲劳检测,可检测是否玩手机,抽烟,喝水,眨眼,打哈欠等
最新文章
- 92django_url
- IDEA 代码生成插件 CodeMaker
- 算法 --- 回溯法
- mysql查询会话池_用户会话,数据控件和AM池
- 为啥用redis解决会话呢?
- 物理频率、模拟角频率、数字角频率和归一化数字角频率个人理解
- 在Vue+springBoot环境中如何实现单点登录(SSO)
- 记录红米k40解BL、Root、装XPOSED
- 前端跨域解决方案总结
- 3D 世界的钥匙「GitHub 热点速览 v.22.08」
- 数据持久层框架Mybatis
- 华为的服务器虚拟化软件,华为FusionSphere虚拟化软件各版本之间的功能和区别
- Adobe reader 添加注释后,点击保存,强制要求另存为
- 超清楚!麦克风阵列学习笔记(一)——线性麦克风阵列的时间延迟Beamforming算法(Time-Delay Beamforming of Microphone ULA Array)
- 爱奇艺连续三年独家直播中网赛事 打造高端体育赛事生态矩阵
- sqlserver阻止保存要求重新创建表的更改
- .NET5.0 初始
- Oracle VPD
- python画正切函数_python的pygal模块绘制反正切函数图像方法
- 启用国行Lumia 830/930的联通4G网络