YOLO5入门

源码

下载路径

https://github.com/ultralytics/yolov5/releases.

目录结构

.
|-- CONTRIBUTING.md
|-- Dockerfile
|-- LICENSE
|-- README.md
|-- data //主要是存放一些超参数的配置文件yam,是用来配置训练集和测试集还有验证集的路径的,其中还包括目标检测的种类数和种类的名称;
|   |-- Argoverse.yaml
|   |-- hyps//超参数微调配置文件
|   |   |-- hyp.Objects365.yaml
|   |   |-- hyp.VOC.yaml
|   |   |-- hyp.scratch-high.yaml
|   |-- images //一些官方提供测试的图片
|   |   |-- bus.jpg
|   |-- scripts//下载数据集shell命令
|   |   |-- download_weights.sh
|   |   |-- get_coco.sh
|   |   -- get_coco128.sh
|   -- xView.yaml
|-- detect.py//利用训练好的权重参数进行目标检测,可以进行图像、视频和摄像头的检测
|-- export.py
|-- hubconf.py//hub 相关代码
|-- models//一些网络结构构建的配置文件和函数
|   |-- __init__.py
|   |-- common.py//网络组件模块
|   |-- experimental.py//实验性质代码
|   |-- hub//另外的一些网络结构,和外层的yolov5l.yaml等是同级的
|   |   |-- anchors.yaml
|   |   |-- yolov3-spp.yaml
|   |   |-- yolov5-bifpn.yaml
|   |   |-- yolov5l6.yaml
|   |   |-- yolov5m6.yaml
|   |   |-- yolov5n6.yaml
|   |   |-- yolov5s-ghost.yaml
|   |   -- yolov5x6.yaml
|   |-- tf.py//模型导出脚本,负责将模型转化,TensorFlow, Keras and TFLite versions of YOLOv5
|   |-- yolo.py//整体网络代码,加载网络结构.yaml文件生成网络结构
|   |-- yolov5l.yaml //各种网络结构
|-- requirements.txt//文本文件,里面写着使用yolov5项目的环境依赖包的一些版本,可以利用该文本导入相应版本的包
|-- setup.cfg
|-- train.py//训练自己的数据集的函数
|-- tutorial.ipynb//jupyter notebook 演示文件
|-- utils//存放的是工具类的函数,里面有loss函数,metrics函数,plots函数等等
|   |-- __init__.py
|   |-- activations.py//激活函数相关代码
|   |-- augmentations.py//图片扩展变换相关函数
|   |-- autoanchor.py//自动描边相关函数
|   |-- autobatch.py
|   |-- aws
|   |   |-- __init__.py
|   |   |-- mime.sh
|   |   |-- resume.py
|   |   -- userdata.sh
|   |-- benchmarks.py
|   |-- callbacks.py
|   |-- datasets.py//读取数据集,并做处理的相关函数
|   |-- downloads.py//下载需要的权重文件等函数
|   |-- flask_rest_api
|   |   |-- README.md
|   |   |-- example_request.py
|   |   -- restapi.py
|   |-- general.py//项目通用代码 多线程、日志、git
|   |-- google_app_engine
|   |   |-- Dockerfile
|   |   |-- additional_requirements.txt
|   |   -- app.yaml
|   |-- loggers
|   |   |-- __init__.py
|   |   -- wandb
|   |       |-- README.md
|   |       |-- __init__.py
|   |       |-- log_dataset.py
|   |       |-- sweep.py
|   |       |-- sweep.yaml
|   |       -- wandb_utils.py
|   |-- loss.py// 相关损失函数
|   |-- metrics.py//计算性能指标的相关函数
|   |-- plots.py
|   -- torch_utils.py//辅助程序代码并行计算,早停策略等函数
-- val.py

目录说明参考:https://blog.youkuaiyun.com/weixin_36714575/article/details/114116862

架构解析

用户数据训练

官方说明

https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data

说明:

  • yolov5s.pt : 网络权重
  • yolov5s.yaml : 网络结构

问题1: 训练参数为什么推荐使用网络权重、而不是网络结构
推荐
python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt
不推荐
python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights ‘’ --cfg yolov5s.yaml

原因:

  1. –weights yolov5s.pt 这种写法,代码是会自动去找对应的网络结构yolov5s.yaml的,所以也是使用了网络结构的,而且也必须使用,权重和结构是必须搭配使用的。
  2. –weights ‘’ --cfg yolov5s.yaml 这种写法,相当于训练一个小白,什么都不懂的小白。
    –weights yolov5s.pt 这种写法,相当于训练一个有经验的人,更快效果更好。

问题2:
同一个网络结构,训练10种类图片和训练100种类图片,会降低每一种的识别率吗
原因:
会的

yolo模型

.pt查看


持续更新中…

### YOLOv5 入门指南:目标检测教程 YOLOv5 是一个高效且易于使用的实时目标检测框架,它基于深度学习模型,并在多种应用场景中表现出色。无论是新手还是有经验的开发者,都可以通过其丰富的文档和社区支持快速上手。 #### 安装环境 在开始之前,确保您的系统满足必要的硬件和软件要求。推荐使用 Python 3.8 或更高版本,并安装 PyTorch 框架(建议版本为 1.7 或以上)。可以通过以下命令克隆官方仓库并安装依赖项: ```bash git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt ``` #### 数据准备 对于标准的目标检测任务,您需要准备标注好的数据集。通常情况下,这些数据集包括图像文件以及对应的标签文件,其中每个标签描述了图像中的对象类别及其边界框坐标。YOLOv5 使用的是归一化的边界框格式,即每个边界框由四个浮点数表示,分别是中心点x、y坐标,宽度w和高度h。 您可以从公开的数据集中获取数据,例如 COCO 数据集或者 Pascal VOC 数据集。如果您打算创建自己的数据集,则可以使用诸如 LabelImg 这样的工具来手动标注图像[^1]。 #### 训练模型 一旦数据准备好后,就可以配置训练参数并开始训练过程。这通常涉及到修改 `data.yaml` 文件以指定类别的数量、训练/验证图像路径等信息。此外,还需要选择合适的预训练权重作为起点,这样可以帮助加速收敛并提高最终性能。 运行训练脚本非常简单,只需执行如下命令: ```bash python train.py --img 640 --batch 16 --epochs 50 --data your_data.yaml --weights yolov5s.pt ``` 这里指定了输入图片大小为 640x640,批量处理大小为 16,总共训练 50 轮次,并采用了小型网络结构 (`yolov5s`) 的预训练权重。 #### 验证与测试 完成训练之后,下一步是对模型进行评估。利用验证集来检查模型的表现如何,同时也可以用来调整超参数或决定何时停止训练。使用以下命令来进行验证: ```bash python val.py --data your_data.yaml --weights runs/train/exp/weights/best.pt --img 640 ``` #### 部署应用 当模型经过充分训练并且达到了满意的准确率时,就可以将其部署到实际的应用场景中去。YOLOv5 支持多种导出格式,包括 ONNX 和 TensorRT 等,便于跨平台移植与优化。具体操作可通过调用 export.py 脚本来实现。 此外,如果您的项目涉及旋转目标检测(如遥感影像分析),那么可能需要考虑采用专门为此设计的变种如 YOLOv5_OBB,该版本能够更好地适应具有角度位置的对象预测需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值