admin管理员组文章数量:1598079
一、下载及项目介绍
- 打开github搜索YOLOV5,我这里选择最新版本6.2,大家直接戳链接下载https://github/ultralytics/yolov5/tree/v6.2
- 点击右边的release,查看项目介绍
- 在当前文件中发布的权重文件
- 网络介绍
举例:
二、环境配置
- 用pycharm打开,先配置解释器,再启动环境
- 安装项目需要的库,在终端运行
- 安装pycocotools会报错,单独在终端运行
pip install pycocotools-windows
三、detect.py参数解析(测试文件)
环境配置好后,运行一下detect.py文件进行测试,能跑通说明没问题。
详细看一下main中的配置参数是什么:
main函数中,default代表该参数有默认值,action代表可选,只有在运行的时候指定带action的参数,这个参数才生效。
- weights:default=‘yolov5s.pt’,默认使用这个权重文件
修改成yolov5m.pt测试一下:
开始下载(m比s大很多)并预测:
m的效果比s好。
模型的选择如下:
手动下载:下载l(l比m和s都要大),复制控制台的下载路径放到迅雷里下载,下载完后复制到根目录里,运行就会显示下载完成
- source:指定要检测文件(图片/视频)的路径,给网络指定一个输入,当指定是文件夹的时候,就把文件夹下面的所有文件进行检测,并把结果保存起来。
- 可以只检测一张图片,写成相对路径的格式
- 检测视频
结果:
-
摄像头实时监测:手机上下载ip摄像头,路径改为http://admin:密码@手机上打开之后显示的ip地址,手机要和电脑在一个wifi下。
-
imgsz:送入训练网络图片的大小
图片size最好是匹配的,随便改也没有关系。
5l、5m…这些使用在图片size为640的img中,5l6…这些使用在size为1280的img中。虽然指定了“输入神经网络的图片”尺寸,但是经过神经网络输出后的图片尺寸大小恢复至原来的大小。(矩形框和图片等比例的放大)
- conf-thres:置信度,default=0.25,当置信度>0.25的时候,才相信这是一个目标,矩形框才显示
默认值改成0(表示有一丁点概率,就将矩形框显示出来)
参数根据实际情况调整就可以。
- iou-thres:非极大值抑制
比如说在下图(左边),三个矩形框都代表的是一张人脸,需要在三个框中选出一个最优的框。
给定一个阈值,当iou大于这个阈值(理解为两个框相交到一定的程度),就保留效果最好的框,小于这个框的时候,就对这些框不做处理。
iou的计算公式:
、
将参数设置成1看一下,代表框完全相同的时候,才选择合适的框。
- device:GPU或者CPU,会自行检测
- view-img:是否显示结果
action代表在执行的时候指定这个参数,参数才会生效
在命令行里执行:不指定参数
在命令行里执行:指定参数,会快速的将结果显示,然后关闭
一般情况下在这里设置参数,设置好后,直接run(这种情况下,要把电脑开成性能模式,省电模式下出不来)
可以用这个参数进行视频的实时监测
- save-txt:是否将结果保存成txt,类别,x,y,height,width
- classes:可以给classes指定多个赋值,可以给class只赋值0这个类别,也可以把0,2,3都赋给这个类别。
对目标进行过滤,选定class=0这个类别的话,就只保留0类别的东西,其余类别的都不要了。
指定参数运行:
只保留了类别为0的目标:
- agnostic-nms:增强,对结果提升的方式
- augment:同上,增强的话效果会更好
- update:只保留预测时使用的优化器,不用管
- project:结果的保存位置
- name:保存结果的文件名
- exist-ok:不设置的话,新的一次预测,在原来的文件夹后新建一个文件夹,设置后,新的预测在原来的文件夹上覆盖
打断点debug一下,就可以看到参数的状态:
四、train.py参数解析(训练文件)
在运行之前,注意修改两个参数:
- 把线程数改为0
- 把batch_size改小
否则显卡会爆
点击运行,开始下载数据集(COCO数据集前128张)并进行训练:
训练保存的结果:(暂停了,没有训练完)
总体参数概览:
- weights:指定一个训练好的模型的路径,用这个模型初始化要训练网络的参数(迁移学习)
可以改成yolov5m.pt、s、l、x、n等等,也可以用自己训练好的模型,写路径即可。
从头开始训练的话,为空。
- cfg:模型的一些配置
模型参数的配置在models里:.yaml文件,下面5种是可以填的参数
.yaml配置文件中:
写成这样代表不进行参数的初始化,网络架构训练成yolov5s这样的
- data:指定的训练数据集
打开coco128.yaml
还可以使用如下的数据集进行训练:(可以填的参数)
- hyp:超参数
- epochs:训练的轮数
- batch_size:一次送入神经网络多少张图片
- imgsz:设置送入神经网络的大小,送入神经网络后resize成640,(最后会还原成原始图片的大小)
- rect:矩形的训练方式
不用把图片强制变成正方形,可以只加一点点的边框,节省了空间,加快了模型的训练过程
- resume:是否从当前已经训练的模型中,继续训练
把False改成想继续训练模型的所在地方(路径),是训练模型的pt
指定后,就在指定的pt上继续训练
- nosave:指定的话只保存最后一个epoch的模型、权重数据等
- noval:指定的话只在最后一个epoch上进行测试,一般在每个epoch上都要进行测试
- noautoanchor:是否采用锚点(锚框)进行训练。指定了就取消了,但是我们需要,就不管了
之前采用滑动窗口等,现在都采用锚框
- evolve:对参数进行净化,超参数调优的一种方式
- cache:对图片进行缓存
- image-weights:在测试中,那一张图片的效果不太好,就在下一次训练过程中加一些权重
- multi-scale:对图片的尺寸进行变换
- single-cls:是单类别还是多类别,默认情况下是false,是多类别的
- optimizer:优化器的选择,默认是SGD
- 带有DDP的参数可以不用看,是多GPU使用的参数,采用分布式训练
- project:项目训练保存在哪里
- name:文件名字
- exist-ok:不设置的话文件exp增加,设置的话在当前的exp直接覆盖
- quad:数据加载
- linear-lr:学习率的调整方式,余弦退火
- label-smoothing:标签平滑,防止过拟合现象的产生
- save_period:对模型打一些日志
版权声明:本文标题:目标检测(8)—— YOLOV5代码调试及参数解析 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728297169a1152561.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论