网站建设到运营赚钱,建设网站会员登陆,兰州发布紧急通知,一般网络推广应该怎么做前言
前面简单介绍了YOLOv5的网络结构和创新点#xff08;直通车#xff1a;【YOLO系列】YOLOv5超详细解读#xff08;网络详解#xff09;#xff09;
在接下来我们会进入到YOLOv5更深一步的学习#xff0c;首先从源码解读开始。
因为我是纯小白#xff0c;刚开始下…
前言
前面简单介绍了YOLOv5的网络结构和创新点直通车【YOLO系列】YOLOv5超详细解读网络详解
在接下来我们会进入到YOLOv5更深一步的学习首先从源码解读开始。
因为我是纯小白刚开始下载完源码时真的一脸懵所以就先从最基础的项目目录结构开始吧~因为相关解读不是很多所以有的是我根据作者给的英文文档自己翻译的如有不对之处欢迎大家指正呀这篇只是简单介绍每个文件是做什么的大体上了解这个项目具体的代码详解后期会慢慢更新也欢迎大家关注我的专栏和我一起学习呀
源码下载地址mirrors / ultralytics / yolov5 · GitCode 目录
前言 一、项目目录结构 1.1 .github文件夹 1.2 datasets 1.3 data文件夹 1.4 models文件夹 1.5 runs文件夹 1.6 utils文件夹 1.7其他一级目录文件 一、项目目录结构
将源码下载好并配置好环境之后就可以看到YOLOv5的整体目录如上图所示。
接下来我们逐一分析 1.1 .github文件夹
github是存放关于github上的一些“配置”的这个不重要我们可以不管它。 1.2 datasets
我们刚下载下来的源码是不包含这个文件夹的datasets用来存放自己的数据集分为images和labels两部分。同时每一个文件夹下又应该分为trainval。.cache文件为缓存文件将数据加载到内存中方便下次调用快速。可以自命名比如我的火焰数据集就叫“fire_yolo_format”。 1.3 data文件夹
data文件夹主要是存放一些超参数的配置文件如.yaml文件是用来配置训练集和测试集还有验证集的路径的其中还包括目标检测的种类数和种类的名称还有一些官方提供测试的图片。YOLOv5 有大约 30 个超参数用于各种训练设置。更好的初始猜测会产生更好的最终结果因此在演化之前正确初始化这些值很重要。
如果是训练自己的数据集的话那么就需要修改其中的yaml文件。不过要注意自己的数据集不建议放在这个路径下面建议把数据集放到YOLOv5项目的同级目录下面。
详解
hyps文件夹 # 存放yaml格式的超参数配置文件 hyps.scratch-high.yaml # 数据增强高适用于大型型号即v3、v3-spp、v5l、v5x hyps.scratch-low.yaml # 数据增强低适用于较小型号即v5n、v5s hyps.scratch-med.yaml # 数据增强中适用于中型型号。即v5m images # 存放着官方给的两张测试图片scripts # 存放数据集和权重下载shell脚本 download_weights.sh # 下载权重文件包括五种大小的P5版和P6版以及分类器版 get_coco.sh # 下载coco数据集 get_coco128.sh # 下载coco128只有128张 Argoverse.yaml # 后面的每个.yaml文件都对应一种标准数据集格式的数据 coco.yaml # COCO数据集配置文件coco128.yaml # COCO128数据集配置文件voc.yaml # VOC数据集配置文件1.4 models文件夹
models是模型文件夹。里面主要是一些网络构建的配置文件和函数其中包含了该项目的四个不同的版本分别为是s、m、l、x。从名字就可以看出这几个版本的大小。他们的检测速度分别都是从快到慢但是精确度分别是从低到高。如果训练自己的数据集的话就需要修改这里面相对应的yaml文件来训练自己模型。
详解
hub # 存放yolov5各版本目标检测网络模型配置文件 anchors.yaml # COCO数据的默认锚点yolov3-spp.yaml # 带spp的yolov3yolov3-tiny.yaml # 精简版yolov3yolov3.yaml # yolov3yolov5-bifpn.yaml # 带二值fpn的yolov5lyolov5-fpn.yaml # 带fpn的yolov5yolov5-p2.yaml # (P2, P3, P4, P5)都输出宽深与large版本相同相当于比large版本能检测更小物体yolov5-p34.yaml # 只输出(P3, P4)宽深与small版本相同相当于比small版本更专注于检测中小物体yolov5-p6.yaml # (P3, P4, P5, P6)都输出宽深与large版本相同相当于比large版本能检测更大物体yolov5-p7.yaml # (P3, P4, P5, P6, P7)都输出宽深与large版本相同相当于比large版本能检测更更大物体yolov5-panet.yaml # 带PANet的yolov5lyolov5n6.yaml # (P3, P4, P5, P6)都输出宽深与nano版本相同相当于比nano版本能检测更大物体anchor已预定义yolov5s6.yaml # (P3, P4, P5, P6)都输出宽深与small版本相同相当于比small版本能检测更大物体anchor已预定义yolov5m6.yaml # (P3, P4, P5, P6)都输出宽深与middle版本相同相当于比middle版本能检测更大物体anchor已预定义yolov5l6.yaml # (P3, P4, P5, P6)都输出宽深与large版本相同相当于比large版本能检测更大物体anchor已预定义推测是作者做实验的产物yolov5x6.yaml # (P3, P4, P5, P6)都输出宽深与Xlarge版本相同相当于比Xlarge版本能检测更大物体anchor已预定义yolov5s-ghost.yaml # backbone的卷积换成了GhostNet形式的yolov5sanchor已预定义yolov5s-transformer.yaml # backbone最后的C3卷积添加了Transformer模块的yolov5sanchor已预定义_int_.py # 空的common.py # 放的是一些网络结构的定义通用模块包括autopad、Conv、DWConv、TransformerLayer等experimental.py # 实验性质的代码包括MixConv2d、跨层权重Sum等tf.py # tensorflow版的yolov5代码yolo.py # yolo的特定模块包括BaseModelDetectionModelClassificationModelparse_model等yolov5l.yaml # yolov5l网络模型配置文件large版本深度1.0宽度1.0yolov5m.yaml # yolov5m网络模型配置文件middle版本深度0.67宽度0.75yolov5n.yaml # yolov5n网络模型配置文件nano版本深度0.33宽度0.25yolov5s.yaml # yolov5s网络模型配置文件small版本深度0.33宽度0.50yolov5x.yaml # yolov5x网络模型配置文件Xlarge版本深度1.33宽度1.251.5 runs文件夹 runs是我们运行的时候的一些输出文件。每一次运行就会生成一个exp的文件夹。 详解
detect # 测试模型输出图片并在图片中标注出物体和概率train # 训练模型输出内容模型(最好、最新)权重、混淆矩阵、F1曲线、超参数文件、P曲线、R曲线、PR曲线、结果文件loss值、P、R等expn expn # 第n次实验数据confusion_matrix.png # 混淆矩阵P_curve.png # 准确率与置信度的关系图线R_curve.png # 精准率与置信度的关系图线PR_curve.png # 精准率与召回率的关系图线F1_curve.png # F1分数与置信度x轴之间的关系labels_correlogram.jpg # 预测标签长宽和位置分布 results.png # 各种loss和metricsp、r、mAP等详见utils/metrics曲线results.csv # 对应上面png的原始result数据hyp.yaml # 超参数记录文件opt.yaml # 模型可选项记录文件train_batchx.jpg # 训练集图像x带标注val_batchx_labels.jpg # 验证集图像x带标注val_batchx_pred.jpg # 验证集图像x带预测标注weights # 权重best.pt # 历史最好权重last.pt # 上次检测点权重labels.jpg # 4张图 4张图11表示每个类别的数据量12真实标注的 bounding_box 21 真实标注的中心点坐标 22真实标注的矩阵宽高 1.6 utils文件夹 utils工具文件夹。存放的是工具类的函数里面有loss函数metrics函数plots函数等等。 详解 aws # 恢复中断训练,和aws平台使用相关的工具flask_rest_api # 和flask 相关的工具google_app_engine # 和谷歌app引擎相关的工具loggers # 日志打印_init_.py # notebook的初始化检查系统软件和硬件activations.py # 激活函数augmentations # 存放各种图像增强技术autoanchor.py # 自动生成锚框autobatch.py # 自动生成批量大小benchmarks.py # 对模型进行性能评估推理速度和内存占用上的评估callbacks.py # 回调函数主要为logger服务datasets # dateset和dateloader定义代码downloads.py # 谷歌云盘内容下载general.py # 全项目通用代码相关实用函数实现loss.py # 存放各种损失函数metrics.py # 模型验证指标包括ap混淆矩阵等plots.py # 绘图相关函数如绘制loss、ac曲线还能单独将一个bbox存储为图像torch_utils.py # 辅助函数1.7其他一级目录文件 详解
.dockerignore # docker的ignore文件.gitattributes # 用于将.ipynb后缀的文件剔除GitHub语言统计.gitignore # docker的ignore文件CONTRIBUTING.md # markdown格式说明文档detect.py # 目标检测预测脚本export.py # 模型导出hubconf.py # pytorch hub相关LICENSE # 证书README.md # markdown格式说明文档requirements.txt # 可以通过pip install requirement进行依赖环境下载setup.cfg # 项目打包文件train.py # 目标检测训练脚本tutorial.ipynb # 目标检测上手教程val.py # 目标检测验证脚本yolov5s.pt # coco数据集模型预训练权重运行代码的时候会自动从网上下载本文参考 YOLOV5学习笔记四——项目目录及代码讲解 YOLOv5-6.2版本代码Project逐文件详解