YOLOv5-6.2版本代码Project逐文件详解

思维导图

.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所需的函数

init.py

log_dataset.py

README.md

sweep.py

sweep.yaml

wandb_utils.py

你可能感兴趣的:(深度学习,人工智能,神经网络)