YOLO物体检测-系列教程6:YOLOv5源码解析1

计算机视觉 全教程 目录

物体检测 系列教程 总目录

1、基本概述

在这里插入图片描述

  1. YOLOv5没有一篇对应的论文,是一个对v4更好的实现
  2. v5版本是一个在github更新的基于工程项目的实现
  3. 基本上和v4没有差异,只不过在整个项目上做出了更好的实现效果
  4. 主要基于github的文档介绍来讲解yolov5
  5. 按照根据需求文档按照即可,建议版本,python=3.8、torch=1.8.1、torchvision=0.9.1,安装的时候指定一下清华源关掉梯子即可(对安装不熟悉参考这篇文章):
pip install -r requirements.txt  # install
  1. github源码中有多个模型可以选择,分别为5n、5s、5m、5l、5x等模型,源码中运行的是coco数据集,但是这个coco数据集实在太大了,实际上yolov5的泛化能力非常好,直接跑自己的项目就好了。
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml  --batch-size 128yolov5s                    64yolov5m                    40yolov5l                    24yolov5x                    16
  1. yolov5的代码写得非常非常好,对比v3你会觉得v3比较啰嗦,v5的代码是一个如此庞大的工程,但是配置文件却是如此简洁,每个人都需要对一个很大很好的开源项目从前到后一行一行代码去debug,因为这是你从初级程序员进阶的必经之路,非常建议选择yolov5

2、训练自己的数据集(待更新)

3、yolov5目录结构

yolov5是一个相对比较庞大的工程,这部分主要介绍一级目录所有的文件的意义:

3.1 文件夹/包:

.github:存放github相关配置的,这个不用管
data:主要是构建数据集的配置文件,还有一些官方的测试文件,当然如果你需要训练自己的数据集,那就需要修改部分配置文件了
model:主要是构建网络的函数代码文件、配置文本文件
runs:这个真的是最重要的文件夹了,我们主要跑的就是三个脚本,分别是训练、测试、预测,这三个分别一个文件夹,每个文件夹又都会记录出每次运行该脚本的结果
utils:主要是功能函数的代码文件,比如画图、计算损失等
wandb:
weights:

3.2 .py文件:

train.py:训练脚本,将通用模型训练自己任务的模型
test.py:测试脚本,读取自己训练的模型,对当前的数据进行测试
detect.py:检测脚本,读取自己训练的模型,实时检测当前视频帧,并显示实时的视频和标记的框、置信度、
hubconf.py:

3.3 其他不重要的文件:

.dockerignore
.gitattributes
.gitignore
Dockerfile
LICENCE:证书
README.MD
requiresments.txt
tutorial.ipynb
yolov5s.pt:coco数据集训练出来的5s模型

4、train.py参数解读

if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--weights', type=str, default='yolov5s.pt', help='initial weights path')parser.add_argument('--cfg', type=str, default='', help='model.yaml path')parser.add_argument('--data', type=str, default='data/coco128.yaml', help='data.yaml path')parser.add_argument('--hyp', type=str, default='data/hyp.scratch.yaml', help='hyperparameters path')parser.add_argument('--epochs', type=int, default=300)parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='[train, test] image sizes')parser.add_argument('--rect', action='store_true', help='rectangular training')parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training')parser.add_argument('--nosave', action='store_true', help='only save final checkpoint')parser.add_argument('--notest', action='store_true', help='only test final epoch')parser.add_argument('--noautoanchor', action='store_true', help='disable autoanchor check')parser.add_argument('--evolve', action='store_true', help='evolve hyperparameters')parser.add_argument('--bucket', type=str, default='', help='gsutil bucket')parser.add_argument('--cache-images', action='store_true', help='cache images for faster training')parser.add_argument('--image-weights', action='store_true', help='use weighted image selection for training')parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')parser.add_argument('--multi-scale', action='store_true', help='vary img-size +/- 50%%')parser.add_argument('--single-cls', action='store_true', help='train multi-class data as single-class')parser.add_argument('--adam', action='store_true', help='use torch.optim.Adam() optimizer')parser.add_argument('--sync-bn', action='store_true', help='use SyncBatchNorm, only available in DDP mode')parser.add_argument('--local_rank', type=int, default=-1, help='DDP parameter, do not modify')parser.add_argument('--workers', type=int, default=0, help='maximum number of dataloader workers')parser.add_argument('--project', default='runs/train', help='save to project/name')parser.add_argument('--entity', default=None, help='W&B entity')parser.add_argument('--name', default='exp', help='save to project/name')parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')parser.add_argument('--quad', action='store_true', help='quad dataloader')parser.add_argument('--linear-lr', action='store_true', help='linear LR')parser.add_argument('--label-smoothing', type=float, default=0.0, help='Label smoothing epsilon')parser.add_argument('--upload_dataset', action='store_true', help='Upload dataset as W&B artifact table')parser.add_argument('--bbox_interval', type=int, default=-1, help='Set bounding-box image logging interval for W&B')parser.add_argument('--save_period', type=int, default=-1, help='Log model after every "save_period" epoch')parser.add_argument('--artifact_alias', type=str, default="latest", help='version of dataset artifact to be used')opt = parser.parse_args()
  1. weights,5n、5s、5m、5l、5x中选择一个作为预训练模型,初始模型路径
  2. cfg,模型配置文件的路径
  3. data,数据集对应的配置文件路径
  4. hyp,超参数
  5. epochs,训练次数
  6. batch-size,批次
  7. img-size,默认输入图像尺寸
  8. rect,
  9. resume,
  10. nosave,
  11. notest,
  12. noautoanchor
  13. evolve
  14. bucket
  15. cache-images
  16. image-weights
  17. device,指定训练设备
  18. multi-scale
  19. single-cls
  20. adam
  21. sync-bn
  22. local_rank
  23. workers
  24. project
  25. entity
  26. name
  27. exist-ok
  28. quad
  29. linear-lr
  30. label-smoothing
  31. upload_dataset
  32. bbox_interval
  33. save_period
  34. artifact_alias

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/607718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio 2022 AI Code 支持

1.先在 Log In | Codeium Free AI Code Completion & Chat 上注册一个用户 在Visual Stuido 中扩展中搜索 codeium 并安装 安装完成后登录即可。 注意国内可能存在网络问题无法使用这时建议使用代理进行登录。 地址如下: Sign Up | Codeium Free AI Code Co…

Linux下安装JET2

0. 说明: JET2是一个基于Joint Evolutionary Trees的利用序列和结构信息预测蛋白质界面的软件,详情见: http://www.lcqb.upmc.fr/JET2/JET2.html,http://www.lgm.upmc.fr/JET/JET.html 和 https://doi.org/10.1371/journal.pcbi.1004580 本…

多模态推荐系统综述:三、多模态特征增强

三、多模态特征增强 同一对象的不同模态表示具有独特且共同的语义信息。如果能够区分独特特征和共同特征,那么MRS的推荐性能和泛化能力可以得到显着提高。解耦表征学习(DRL)和对比学习(CL)被用来进行基于交互的特征增…

第二证券:主力为什么要砸盘?

砸盘就是在股票的某个阶段有许多卖出单,这些许多的卖出单不断的成交使股票价格出现快速下跌。一般是受到主力资金洗盘或者出货所影响形成的。 1、洗盘 个股通过长时间上涨之后,盘中的散户较多,主力为了洗掉盘中的散户,在低位吸筹…

从私有Git仓库的搭建到命令的使用及部署再到分支管理

一、版本控制系统/版本控制器 1. 版本控制系统: git 分布式 —没有中心代码库,所有机器之间的地位同等(每台机器上都有相同的代码) svn 集中管理的 —有中心代码库,其他都是客户端 2.git与svn介绍 1.git属于分布…

Mac版 Photoshop 2021---PS2021

Adobe Photoshop 2021是一款强大的图像处理软件,它可以帮助用户进行各种图像编辑、修饰和合成工作。这款软件拥有先进的图像处理技术,支持多种图像格式,可以轻松实现各种复杂的图像处理任务。它还提供了丰富的滤镜和工具,使用户可…

全网最全Stable Diffusion原理快速上手,模型结构、关键组件、训练预测方式!!!!

手把手教你入门绘图超强的AI绘画程序,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新保姆级教程资料包(文末可获取) 【AIGC】Stable Diffusion的建模思想、训练预测方式快速 在这篇博客中,…

运动耳机怎么选?2024年运动耳机推荐,运动蓝牙耳机排行榜10强

​在现代生活中,音乐和运动已经成为很多人生活不可分割的一部分。运动耳机在这样的背景下变得越来越受欢迎,它们不仅可以在运动时提供音乐的陪伴,还能增加运动时的乐趣和动力。但是,面对市面上众多不同类型的运动耳机,…

哈希-力扣454.四数相加Ⅱ

题目 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;nums1 [1…

数据结构第十一弹---堆

堆 1、堆的概念及结构2、堆的性质3、堆的调整算法3.1、向下调整算法3.2、向上调整算法 4、堆的实现4.1、头文件包含和结构定义4.2、初始化4.3、销毁4.4、插入数据4.5、删除数据 删除堆顶4.6、获取堆顶元素4.7、获取有效数据个数4.8、判断是否为空 5、代码汇总5.1、Heap.h5.2、H…

好用的设备租赁管理软件有哪些?

“我们公司是做设备租赁的&#xff0c;想找一款适合设备租赁的库存管理软件&#xff0c;最好有库存管理&#xff0c;客户信息&#xff0c;设备外调管理&#xff0c;租赁天数管理&#xff0c;设备的借出与归还信息管理与查询。” 总结一下—— 库存管理客户信息管理设备租赁管…

阿里云服务器 使用Certbot申请免费 HTTPS 证书及自动续期

前言 Certbot是一款免费且开源的自动化安全证书管理工具&#xff0c;由电子前沿基金会&#xff08;EFF&#xff09;开发和维护&#xff0c;是在Linux、Apache和Nginx服务器上配置和管理SSL/TLS证书的一种机制。Certbot可以自动完成域名的认证并安装证书。 一、 安装软件 1.1…

38.深入MySQL

深入MySQL 索引 索引是关系型数据库中用来提升查询性能最为重要的手段。关系型数据库中的索引就像一本书的目录&#xff0c;我们可以想象一下&#xff0c;如果要从一本书中找出某个知识点&#xff0c;但是这本书没有目录&#xff0c;这将是意见多么可怕的事情&#xff01;我们…

JVM如何执行synchronized修饰的方法

首先市面上关于synchronized的资料已经很多了&#xff0c;但是大家对于底层的原理实现可能没有什么概念&#xff0c;大多都是死记硬背&#xff0c;所以我想通过实战的方式给大家带来一些不一样的体验。具体体现在哪些方面呢&#xff1f; 更系统。市面上目前虽然资料众多&#x…

WPF 入门教程DispatcherTimer计时器

https://www.zhihu.com/tardis/bd/art/430630047?source_id1001 在 WinForms 中&#xff0c;有一个名为 Timer 的控件&#xff0c;它可以在给定的时间间隔内重复执行一个操作。WPF 也有这种可能性&#xff0c;但我们有DispatcherTimer控件&#xff0c;而不是不可见的控件。它几…

15-链表-环形链表 II

这是链表的第15题&#xff0c;力扣链接。 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链…

中科驭数诚邀您参加第二届证券基金行业先进计算技术大会暨2024低时延技术创新实践论坛(上海站)

低时延技术是证券基金期货领域业务系统的核心技术&#xff0c;是打造极速交易系统领先优势的关键&#xff0c;也是证券基金行业关注的前沿技术热点。 继去年圆满举办首届证券基金行业先进计算技术大会之后&#xff0c;在中国计算机学会集成电路设计专委、先进计算产业联盟、证…

在macos上查看当前进程的栈信息

概述 在调试程序时&#xff0c;如cpu莫名的高或低&#xff0c;一个常用的方式就是打印当前进行的调用栈&#xff0c;然后确认各线程的执行函数是否有异常。 在linux系统中可以使用pstack命令&#xff0c;直接打印各线程的栈信息&#xff0c;可惜在macos上没有该命令。一种解决…

25 心形按钮

效果演示 实现了一个心形的心形图案&#xff0c;当用户点击图案时&#xff0c;图案会旋转并缩小&#xff0c;同时背景颜色会变成白色。 Code <div class"love"><input id"switch" type"checkbox"><label class"love-heart&…

049.Python包和模块_虚拟环境超详细讲解

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…