思维导图
.dockerignore
docker的ignore文件
.gitattributes
用于将.ipynb后缀的文件剔除GitHub语言统计
.gitignore
docker的ignore文件
train.py
训练自己的权重
detect.py
利用训练好的权重进行目标检测,可以进行图像、视频和摄像头的检测。
val.py
在自定义数据集上验证经过训练的YOLOv5模型精度
export.py
将YOLOv5 PyTorch模型导出为其他格式:
TorchScript
ONNX
OpenVINO
TensorRT
CoreML
TensorFlow SavedModel
TensorFlow GraphDef
TensorFlow Lite
TensorFlow Edge TPU
TensorFlow.js
hubconf.py
pytorch hub 相关代码
README.md
描述文件
requirements.txt
运行所需环境
tutorial.ipynb
相当于使用说明书
classify
6.x新添加的分类功能
predict.py
预测
train.py
训练
val.py
验证
data
主要是存放一些超参数的配置文件(这些文件是用来配置训练集和测试集还有验证集的路径的,其中还包括目标检测的种类数和种类的名称);还有一些官方提供测试的图片。训练自己的数据集需要安装数据集格式修改其中的yaml文件。
hyps
超参数微调配置文件
hyp.Objects365.yaml
hyp.scratch-high.yaml
hyp.scratch-low.yaml
hyp.scratch-med.yaml
hyp.VOC.yaml
images
存放着官方给的两张测试图片
bus.jpg
zidane.jpg
scripts
存放着下载数据集或者权重的shell命令
download_weights.sh
下载权重文件,包括五种大小的P5版和P6版以及分类器版
get_coco.sh
下载coco数据集
get_coco128.sh
下载coco128(只有128张)
get_imagenet.sh
下载imagenet数据集
Argoverse.yaml
后面的每个.yaml文件都对应一种标准数据集格式的数据
coco.yaml
coco128.yaml
GlobalWheat2020.yaml
ImageNet.yaml
Objects365.yaml
SKU-110K.yaml
VisDrone.yaml
VOC.yaml
xView.yaml
models
存放模型结构配置文件与实现函数
init.py
空的
common.py
通用模块,包括autopad、Conv、DWConv、TransformerLayer等
experimental.py
实验用模块,包括MixConv2d、跨层权重Sum等
tf.py
YOLOv5的TensorFlow、Keras和TFLite版本(这何尝不是一种ntr。。。)
yolo.py
YOLO的特定模块,包括BaseModel,DetectionModel,ClassificationModel,parse_model等
yolov5n.yaml
nano版本,深度0.33,宽度0.25
yolov5s.yaml
small版本,深度0.33,宽度0.50
yolov5m.yaml
middle版本,深度0.67,宽度0.75
yolov5l.yaml
large版本,深度1.0,宽度1.0
yolov5x.yaml
Xlarge版本,深度1.33,宽度1.25
hub
官方的模型库中的文件
anchors.yaml
COCO数据的默认锚点
yolov3-spp.yaml
带spp的yolov3
yolov3-tiny.yaml
精简版yolov3
yolov3.yaml
yolov3
yolov5-bifpn.yaml
带二值fpn的yolov5l
yolov5-fpn.yaml
带fpn的yolov5
yolov5-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的yolov5l
yolov5n6.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形式的yolov5s,anchor已预定义
yolov5s-transformer.yaml
backbone最后的C3卷积添加了Transformer模块的yolov5s,anchor已预定义
dataset
存放自己的数据集,分为images和labels两部分(按照常用格式排布文件夹,此处以VOC为例)
images
原图
train
val
labels
标签
train
val
runs
存放日志文件,包含权重文件,训练数据,直方图等
detect
预测日志
train
训练日志
expn
第n次实验数据
confusion_matrix.png
混淆矩阵
P_curve.png
准确率与置信度的关系图线
R_curve.png
精准率与置信度的关系图线
PR_curve.png
精准率与召回率的关系图线
F1_curve.png
F1分数与置信度(x轴)之间的关系
labels_correlogram.jpg
预测标签长宽和位置分布
labels.jpg
4张图,(1,1)表示每个类别的数据量
(1,2)真实标注的 bounding_box
(2,1) 真实标注的中心点坐标
(2,2)真实标注的矩阵宽高
results.png
各种loss和metrics(p、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
上次检测点权重
utils
工具函数
general.py
全项目通用代码
init.py
notebook的初始化,检查系统软件和硬件
activations.py
存放各种激活函数
augmentations.py
存放各种图像增强技术
loss.py
存放各种损失函数
autoanchor.py
自动根据数据集使用K-means聚类出ancnchor的函数
autobatch.py
自动评估最适合cuda内存的batchsize
benchmarks.py
对模型进行性能评估(推理速度和内存占用上的评估)
callbacks.py
回调函数,主要为logger服务
dataloaders.py
载入数据集并做些预处理
downloads.py
下载权重文件等
metrics.py
模型验证指标,包括ap,混淆矩阵等
plots.py
绘图相关函数,如绘制loss、ac曲线,还能单独将一个box存储为图像
torch_utils.py
torch相关工具,辅助程序代码并行计算,早停策略等函数
aws
和aws平台使用相关的工具,暂且略过
init.py
mime.sh
resume.py
userdata.sh
docker
和docker相关的工具,暂且略过
Dockerfile
Dockerfile-arm64
Dockerfile-cpu
flask_rest_api
将一些输出放到本地端口上的工具,暂且略过
example_request.py
README.md
restapi.py
google_app_engine
和google平台使用相关的工具,暂且略过
additional_requirements.txt
app.yaml
Dockerfile
loggers
用于日志输出的工具
init.py
可以选择输出到.csv, TensorBoard, Weights & Biases, ClearML
clearml
输出到ClearML所必须的程序
init.py
clearml_utils.py
hpo.py
README.md
wandb
输出Weights & Biases所需的函数