位置: IT常识 - 正文

YoloV7训练最强操作教程.(yolov3训练)

编辑:rootadmin
YoloV7训练最强操作教程. YoloV7训练最强操作攻略

推荐整理分享YoloV7训练最强操作教程.(yolov3训练),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov5训练过程,yolov5 训练时间,yolov2训练,yolov5训练,yolov5训练效果差,yolov2训练,yolov1训练过程,yolov3训练,内容如对您有帮助,希望把文章链接给更多的朋友!

本文主要带领大家使用yolov7对口罩目标检测数据集进行实践,主要就是希望通过本教程可以让各位使用yolov7对自己的数据集进行训练,测试,预测。代码数据集训练模型链接在最后!

2022-11-20更新:在b站上传了一个yolov7的视频教学,配合本博文使用.链接B站中的数据集链接,这个是一个1.1w张识别人是否带口罩的目标检测数据集,里面有voc格式和yolo格式.这个是yolov7训练好的代码和模型文件,里面有训练好的yolov7-tiny,yolov7,yolov7w6的权重,可以直接使用检测。在yolov7中添加pyqt5作为可视化界面的教程、视频讲解、源码。链接2022-12-28更新:在B站和github上更新了yolov5和yolov7的热力图可视化,不需要对源码作任何修改,即插即用,有兴趣可以去看看。2023-1-9更新:B站和博客上上传了DAMO-YOLO的教程.2023-1-28更新:B站教学链接和博客 YOLOV7改进-添加EIOU,SIOU,AlphaIOU,FocalEIOU.2023-1-31更新:B站教学链接 YOLOV7改进-添加注意力机制 附带几十种注意力机制代码.2023-2-11更新:B站教学链接 YOLOV7改进-Wise IoU 参考.2023-2-18更新:B站教学链接 YOLOV7改进-添加可变形卷积DCNV2.2023.2.26 更新B站教学链接 可视化并统计预测结果的TP,FP,FN2023.2.26 更新B站教学链接 YOLOV7改进-添加SAConv.重磅!!!!! YOLO模型改进集合指南-CSDN2023-11月份会更新一个yolov7+byteTrack(2021年目标跟踪SOTA)源码,有兴趣的请点赞并关注,敬请期待!另外这里打个广告,就是我自己整合并开源的一个基于pytorch-image-classifier代码,这个是示例博客,功能和可视化都非常全,有兴趣的可以看看,谢谢!正文开始:1. 下载源码和数据集

对于源码各位看官可以直接下载本链接的代码,本链接代码包含了一些便捷工具,比如voc格式转yolo,分割数据集等等,本链接的代码会随着官网的更新而更新,所以不用害怕代码版本旧的问题啦! 这里我准备了一个口罩目标检测数据集,如果各位目前没有数据集的可以下载一下这个数据集作为本博客的实践数据集案例。

2.配置环境

环境配置可以参考本博主的另外一篇文章基于pytorch的花朵分类,安装过程出现有什么问题,可以私信博主或者留言,博主看到会尽力帮助大家解决问题。

3. 处理数据集

总所周知,yolo系列的大部分源码都是需要使用yolo格式的标注文件,那么网上大部分数据集都是voc格式,那么这里就需要做一个格式的转换,我们下面分两种情况:

VOC数据集格式

如果你的数据集格式是VOC格式的话,一般就会有图片和xml后缀的文件,这个xml后缀的文件就是你的数据集的标签文件,在代码中,我们的dataset文件夹就是数据集的存储的位置,其中图片存放在dataset/VOCdevkit/JPEGImages文件夹中,标签文件需要存放在dataset/VOCdevkit/Annotations文件夹中,dataset/VOCdevkit/txt文件夹是存储转换后的yolo格式标签文件.。(这个文件创不创建都可以,转换的时候会自动检测,不存在的话会自动创建)

当然自己也可以修改imgpath(存放图像的路径),xmlpath(存在voc标注格式的路径),txtpath(存放转换的yolo格式的路径),不过博主建议一般就不要修改,因为有些看主的动手能力相对差一点,修改后有报错可能不会处理,建议还是按照博主路径和示例来是最稳妥的。 对应的数据放置好后,我们需要运行xml2txt.py,其中这个文件有一个postfix参数,其为你图像的后缀格式,默认为jpg,如果你的图像是bmp或者png可以修改这个参数,当然其不支持混合的后缀格式,其会导致输出文件找不到的错误信息,这个请大家注意!这个文件会把Annotations文件夹中的xml文件读取到内存,然后进行转换成yolo格式并保存到dataset/VOCdevkit/txt文件夹中,其中运行截图如下图所示:

每个文件的转换都会单独有一行的输出,如果某个文件转换有问题或者你的标注文件里面有其他格式的文件存在都会提示对应的信息,比如如果某个文件转换失败的话,会提示报错信息,但是不会终止程序,只是这个文件就不转换了,最后会有一个this file convert failure下方有一个列表,如果这个列表为空,就是证明全部转换成功,如果不为空,列表里面的文件路径就是转换出错的标注文件,这种你可以看一下报错信息,如果奇奇怪怪的基本就不用理了,但是需要注意的一点是如果全部都转换出错了,那很有可能就是你存放的位置不对等等,这些需要根据报错信息检查。第二个列表是你这个数据集中的类别信息,这个类别信息是有用的,我们需要手动复制到data/data.yaml文件的names里面,如下图所示: 其中蓝色框是固定的路径(如果你按照本教程操作),黄色框是根据你数据集的类别进行修改,比如当前数据集是三个类别,我们就设置为3,红色款就是我们这个xml2txt.py输出的信息,那么类别的名字是可以改的,假设我们第三个类别代表的意思是不正确佩戴口罩,那么我们修改为mask_incorrect都是可以的,不过建议不要包含中文。

YOLO数据集格式YoloV7训练最强操作教程.(yolov3训练)

如果你自己的数据集是YOLO格式的话,那么你就直接把全部图片放到dataset/VOCdevkit/VOC2007/JPEGImages文件夹中,标签文件txt放到dataset/VOCdevkit/VOC2007/txt中,然后需要自行修改一下data/data.yaml中的类别数和类别名字,对于YOLO格式的数据集,一般会单独有一个classes.txt来记录类别信息。

分割数据集

无论对于VOC格式数据集还是YOLO格式数据集,按照上述步骤处理好后运行split_data.py,这个文件也有一个postfix参数,默认为jpg,如果自己的数据集不是jpg后缀的话,请自行修改,当然不支持混合后缀格式,请大家注意!split_data.py中还有val_size,test_size参数,其为比例系数,默认为0.1,0.2,如有需要请自行修改。运行成功后,其会自动创建下图这些文件夹,然后把对应的图片和标签文件复制到对应的文件夹中。 当你完成这一步的时候,数据集就处理完成。

4. 训练

对于训练,我们分为两个来说,因为yolov7是有两个训练的文件,一个是train.py,一个是train_aux.py。其中如果你是下载本文章的代码,那么预训练权重是已经下载好到项目中的weights文件夹,那么下面开始训练的教程:

训练-train.py

我们先解释一下重点的参数的意思:

weights 预训练文件权重路径,这个可以在weights文件夹中找到。cfg 模型配置文件路径,这个可以在cfg/training文件夹中找到。data 数据配置文件的路径,默认就是data/data.yaml。hyp 超参数配置文件路径,这个可以在data文件夹中可以找到。epochs 学习次数。batch-size 一次迭代的数据量。img-size 训练的图像输入大小。resume 是否继续上一次未完成的训练。device 训练所使用的的设备。label-smoothing 标签平滑的值。name 日志模型保存的文件夹名字。project 日志模型保存的文件夹中的上一级文件夹的路径。workers dataloader中的workers数量。single-cls 是否把所有类别当做一个类别去训练。就是不分类别的意思。multi-scale 多尺度训练。

对于大部分项目,我们只需要关注weights,cfg,epochs,batch-size,img-size这几个参数即可,其中weights与cfg需要相匹配,就是你选择yolov7-tiny的配置文件,你就要选择yolov7-tiny的权重,如下图所示: 那么我们就可以开始训练,其中我们这里就使用yolov7-tiny进行演示,如果需要训练其他模型,请自行更改–weights和–cfg参数的路径即可,有一个点注意的就是目前的这个train.py只支持训练yolov7-tiny,yolov7,yolov7x这三个模型: 其他的模型是要在另外一个训练脚本train_aux.py中训练,我们下边会进行演示,我们的参数设置如下: 然后运行train.py文件即可,接下来就是漫长的训练时间,当训练结束后,我们可以在控制台看到以下信息: 其中最后会输出训练时间,精度指标,保存的模型路径和大小。

训练-train_aux.py

首先这个脚本文件所训练的模型都是比较大的,一般没有服务器的话可能就训练不起来,这个操作上跟train.py一模一样,只是cfg和weights只支持下面的这些模型: 因为这个train_aux.py只支持训练带有p6检测层的模型,然后我们的训练参数设置如下: 主要就是修改了weights和cfg参数,因为带有p6检测层的模型都比较大,因此这里epochs只设置为50做个演示,然后我们就可以运行train_aux.py,等待训练完成即可。

–hyp参数

hyp参数是超参数的配置文件路径,对于新手来说,一般默认即可,就是不需要修改你基本都可以得到一个比较好的结果,对于想调参的看官,可以自行打开对应的文件进行修改,配置文件中每个参数官方都给出比较详细的解释。

4. 测试

第三步我们主要分别介绍了train.py和train_aux.py两个训练脚本的一些重要参数和如何使用,第四步我们主要介绍如何使用训练好的模型对我们的测试集进行计算指标。我们计算指标的脚本是test.py,下面对一些重点的参数进行讲解:

weights 训练好的模型权重路径。data 数据配置文件路径。模型就是data/data.yaml(如果你按照本博客操作的话)batch-size 测试一次迭代的数据量。img-size 测试的图像大小,一般跟训练的时候保持一致。conf-thres 目标的置信度阈值。iou-thres nms中iou阈值。task 任务类型,支持测试(train,val,test)集合,默认是test,还支持计算fps,只需要设置为speed。augment 是否采用测试阶段数据增强(TTA)。verbose 代码中注释是写显示每个类别的ap,但是实际使用起来没有区别。save-txt 是否需要把识别的结果存为txt。save-hybrid 测试的时候感觉跟save-txt没什么区别,如有了解可以留言。save-conf 是否保存置信度,需要配合save-txt一起使用。save-json 是否需要把识别结果保存为coco-json格式。name 精度指标保存的文件夹名字。project 精度指标保存的文件夹中的上一级文件夹的路径。 我们训练成功后可以在runs/train中的文件集里面找到以下文件: 其中weights里面都是训练保存的权重,其他的都是一些指标文件,自己可以打开看看,这里就不细讲了,都是一些比较常见的指标。 我们参数设置如下,主要就是weights的路径,这里我们选用best.pt,就是在训练过程中验证集精度最好的模型。 运行结束后,你可以看到下图: 显示的是每个类别和总体的指标和一些推理耗时信息。你还可以在runs/test中的文件夹里面找到对应的指标图像: 5. 预测

第五步就是预测脚本detect.py的教程,其大部分参数跟test.py类似,我们先解释一下重点的参数:

weights 训练好的模型权重路径。source 检测的数据路径。(支持图像,文件夹(里面是存放图片),视频)img-size 测试的图像大小,一般跟训练的时候保持一致。conf-thres 目标的置信度阈值。iou-thres nms中iou阈值。augment 是否采用测试阶段数据增强(TTA)。verbose 代码中注释是写显示每个类别的ap,但是实际使用起来没有区别。save-txt 是否需要把识别的结果存为txt。save-conf 是否保存置信度,需要配合save-txt一起使用。name 精度指标保存的文件夹名字。project 精度指标保存的文件夹中的上一级文件夹的路径。

我们的参数设置如下: 那么我们跟使用test.py一致,也是用best.pt进行检测,source我们设置为测试集的图片路径。运行完成后,你可以在runs/detect文件夹中找到对应保存的图像数据。

6.后续

后续还会更新实用性比较高的基于yolov7的口罩检测项目(带pyqt界面,训练数据集更加大,检测效果更加好),可以用作课程项目或者毕业设计等等,请各位多多关注。 代码数据集模型链接

如果内容对你有帮助,麻烦点个赞,谢谢!有计算机视觉合作项目可以私信作者!
本文链接地址:https://www.jiuchutong.com/zhishi/290676.html 转载请保留说明!

上一篇:科西嘉岛上的Speloncato市,法国 (© Jon Ingall/Alamy)(科西嘉岛攻略)

下一篇:cocos入门3:脚本编程(cocos creator脚本开发指南)

  • 4g手机用5g卡为什么不能打电话(4G手机用5G卡为什么发烫)

    4g手机用5g卡为什么不能打电话(4G手机用5G卡为什么发烫)

  • 手机卡不激活会自动注销吗(手机卡不激活会有信号吗)

    手机卡不激活会自动注销吗(手机卡不激活会有信号吗)

  • pdf文件怎么发送给淘宝卖家(pdf文件怎么发送给别人)

    pdf文件怎么发送给淘宝卖家(pdf文件怎么发送给别人)

  • 鼠标是一种什么设备(鼠标是一种什么气)

    鼠标是一种什么设备(鼠标是一种什么气)

  • 拼多多代付退款退可以到自己账号里吗(拼多多代付退款案例)

    拼多多代付退款退可以到自己账号里吗(拼多多代付退款案例)

  • 爱奇艺账号注销要多久(爱奇艺账号注销了还会自动扣费吗)

    爱奇艺账号注销要多久(爱奇艺账号注销了还会自动扣费吗)

  • qq怎样关闭随心贴(qq怎么关掉随心帖)

    qq怎样关闭随心贴(qq怎么关掉随心帖)

  • 抖音贡献音浪什么意思(抖音音浪任务奖励是怎样计算的)

    抖音贡献音浪什么意思(抖音音浪任务奖励是怎样计算的)

  • 聊天记录备份与迁移是什么意思(聊天记录备份与迁移在哪里)

    聊天记录备份与迁移是什么意思(聊天记录备份与迁移在哪里)

  • 微信怎么设置特别关注(微信怎么设置特别提醒)

    微信怎么设置特别关注(微信怎么设置特别提醒)

  • 为什么手机来电话屏幕不亮怎么办(为什么手机来电显示归属地不对)

    为什么手机来电话屏幕不亮怎么办(为什么手机来电显示归属地不对)

  • 哔哩哔哩22卡和33卡有什么区别(哔哩哔哩22卡和联通王卡哪个好)

    哔哩哔哩22卡和33卡有什么区别(哔哩哔哩22卡和联通王卡哪个好)

  • 网易云文件夹叫什么(网易云文件夹叫什么名字)

    网易云文件夹叫什么(网易云文件夹叫什么名字)

  • 荣耀20耳机怎么设置(荣耀耳机怎么配对)

    荣耀20耳机怎么设置(荣耀耳机怎么配对)

  • 荣耀手环3能不能接电话(荣耀手环3能不能刷门禁卡)

    荣耀手环3能不能接电话(荣耀手环3能不能刷门禁卡)

  • 手机纳米镀膜怎么去除(手机纳米镀膜怎么就知道镀上没有)

    手机纳米镀膜怎么去除(手机纳米镀膜怎么就知道镀上没有)

  • col al10华为是什么型号(华为cor_al10是什么型号)

    col al10华为是什么型号(华为cor_al10是什么型号)

  • 手机屏幕纳米镀膜是真的吗(手机屏幕纳米镀膜)

    手机屏幕纳米镀膜是真的吗(手机屏幕纳米镀膜)

  • p30尺寸大小(p30尺寸长度和宽度)

    p30尺寸大小(p30尺寸长度和宽度)

  • 苹果手机找不到订阅管理怎么办(苹果手机找不到了在家里怎么找)

    苹果手机找不到订阅管理怎么办(苹果手机找不到了在家里怎么找)

  • 微信限额怎么查询(微信限额怎么查询余额)

    微信限额怎么查询(微信限额怎么查询余额)

  • vivo休眠在哪里设置(vivo手机的休眠在哪里)

    vivo休眠在哪里设置(vivo手机的休眠在哪里)

  • 打开个别网页提示“无法显示此网页 错误代码: HTTP ERROR -2146697211”(打开网页提示打开别的应用)

    打开个别网页提示“无法显示此网页 错误代码: HTTP ERROR -2146697211”(打开网页提示打开别的应用)

  • 宝塔部署nodejs项目(宝塔部署django)

    宝塔部署nodejs项目(宝塔部署django)

  • 上海浦东森林心形洞穴鸟瞰图,中国 (© Yaorusheng/Getty Images)(浦东森林村)

    上海浦东森林心形洞穴鸟瞰图,中国 (© Yaorusheng/Getty Images)(浦东森林村)

  • 利润表的税金及附加是计提数还是实缴数
  • 投资管理公司成立的条件
  • 公司公积金缴纳比例一般来说是多少?
  • 财务费用和应付利息的关系
  • 企业资产核算不包括哪些
  • 现金日记账根据哪些凭证登记
  • 记账凭证上的摘要每行都要写吗
  • 一般纳税人增值税申报操作流程
  • 油费预付卡如何开发票
  • 个人挂靠公司承接工程如何做会计处理?
  • 存款取款业务记入那个日记账?
  • 存货的主要内容包括什么
  • 取得增值税专用发票
  • 查土地补贴到啥单位查明
  • 增值税零税率发票开具条件
  • 公司注销了质保金如何收回来
  • 商业承兑汇票贴现转让
  • 税控设备实际抵减增值税时如何做分录?
  • 机械租赁费如何入账科目
  • 申报工伤的流程及时间
  • 公司没有残疾人要交残疾人保障金吗
  • 注册资本需要缴清吗
  • 出口退税附加税计税依据
  • 公司收到银行存款利息收入会计分录
  • 电脑下载的文件打不开怎么回事
  • 实收资本或股本账户属于企业的什么账
  • PHP:mb_strrchr()的用法_mbstring函数
  • 公司注销职工怎么办理
  • 租赁经营账务处理办法
  • 企业为员工提供服务要交增值税吗
  • 青龙面板拉库命令
  • citespace分析derwent
  • 法恩达尔的信
  • 制造费用属于期间费用期末一定无余额吗
  • 基本户可以公对私吗
  • 核电站弃置费用怎么算
  • 人工智能的几个发展阶段
  • phpstudy目录
  • 收付控制状态不正常
  • php读取文件内容
  • 生产车间生产人员福利费
  • 其他收益最后转入哪个科目
  • 安全生产责任险是强制险吗
  • java中double是什么数据类型
  • 电子税务局如何添加办税人员
  • 厂房改造费用算固定资产吗
  • 出口企业申报退税不再提供纸质
  • 对外支付代扣代缴税费
  • 增值税及附加税费申报表附列资料一
  • 进项税额转出和红字冲销区别
  • 收到费用发票分录
  • 财务预付账款情况说明
  • 用于集体福利的进项税额怎么处理
  • 坏账确认无法收回
  • 长期合同价格怎么定
  • 银行日记账更正
  • 税控盘服务费抵扣
  • 成本增加比例怎么算的
  • 建账是不是只需要科目余额表
  • mysql 5.7.24安装
  • Linux(Ubuntu)下mysql5.7.17安装配置方法图文教程
  • win8如何调整电脑屏幕亮度
  • centos下虚拟机
  • win8系统计算器快捷键
  • win10如何彻底清理
  • ubuntu 20.04拨号上网
  • 苹果Mac系统怎么切换输入法
  • win10 rs3
  • linux 操作系统
  • mediaexplorer是什么意思
  • win10插上耳机后电脑还是外放如何解决
  • linux入门知识
  • win8.1 安装
  • cocos2d
  • nodejs怎么在服务器运行
  • 打开指定文件夹命令
  • python操作数据库语句
  • 供电局发票是什么样子的
  • 农机作业服务费用 如何开发票
  • 白酒消费税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设