往期回顾:YOLOv5源码解读1.0-目录_汉卿HanQ的博客-CSDN博客
目录
大家下载后,如果不出意外就会和我这个一样。本篇解释一下各个文件夹的作用
1.github
这里并不重要,是存放github上的一些配置
2.data
data文件夹主要存放一些超参数的配置文件是用来配置训练集,测试集和验证集路径的,还有一些官方提供的测试图片
data文件夹中有两个很重要的文件-images文件和voc.yaml
运行detect.py后会对images里的图片进行标注,如果训练自己数据集,就需要修改voc.yaml文件(详情见YOLOv5模型搭建博客)
这里不建议把数据集放在这个路径下
3.models
models文件夹是模型文件夹,里面主要是一些网络构建的配置文件和函数,其中包含s m l x四个版本,这几个版本检测速度又快到慢,但精度由低到高。
在训练数据集时,需要修改里面的yaml文件来训练自己的模型
其中yaml不过过多解读,训练模型时搜素一个适合自己的即可,这里对py文件进行解读
- _init_.py 空文件
- common.py 存放网络结构的定义通用模块 包括autopad Conv DwConv TransformerLayer等
- experimental.py 实验性质的代码,包括MixConv2d 跨层权重Sum
- tf.py tensorflow版本的YOLOv5代码
- yolo.py YOLO的特点模块,包括BaseModel DetectionModel ClassificationModel parse_model等
4.runs
runs是我们运行的时候的一些输出图片,每运行一次就会生成一个exp文件夹,其中detect是测试模型,输出图片并标注图片中物体和概率
train是训练模型,输出模型矩阵,混淆矩阵,F1曲线,超参数文件,P曲线,R曲线,PR曲线,结果文件等
- confusion_matix.png 混淆矩阵
- P_cirve.png 精确率和置信度关系图
- R_cirve.png召回率率和置信度关系图
- PR_cirve.png 精确率和召回率关系图
- F1_cirve.png F1分数和置信度关系图
- labels_correlogram.jpg 预测标签长宽和位置分布
- results.png 各种loss和metrics曲线
- results.csv 对应上面png的原始results数据
- hyp.yaml 超参数记录文件
- pp.yaml 模型可选项记录文件
- train_bath*.jpg 训练集图像*
- val_batch*_labels.jpg 验证集图像*
- val_batch*pre.jpg 验证集图像*带预测标注
- weights 权重矩阵
- best.pt 历史最好权重
- last.pt 上次检测点权重
- labels.jpg 1.1表示每个类别的数据量 1.2真实标注的BBox 2.1真实标注的中心点坐标 2.2真实标注的矩阵宽高
5.utils
utils文件是工具文件
- 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 辅助函数
6.VOCdevkit
自己创建的数据集,是使用labelimg标注好的训练集和测试集数据
7.others
这里对目录部分就告一段落,接下来会讲detect.py代码,如果喜欢,别忘了点个赞哦!