代码基于yolov5 v6.0
目录:
- yolo源码注释1——文件结构
- yolo源码注释2——数据集配置文件
- yolo源码注释3——模型配置文件
- yolo源码注释4——yolo-py
- datasets # 用于存放数据集的默认文件夹
- yolov5
- data # 模型训练的超参数配置文件以及数据集配置文件
- hyps # 存放超参数配置文件(yaml格式)
- hyp.scratch-high.yaml:适用于较大的模型结构,如 yolol
- hyp.scratch-low.yaml:适用于较小的模型结构,如 yolos
- hyp.scratch-med.yaml:适用于中等模型结构,如 yolom
- images # 存放了官方提供的两张测试图片:bus.jpg 和 zidane.jpg
- scripts # 用于下载数据集以及权重文件的shell脚本
- download_weight.sh:下载权重文件
- get_coco.sh:下载 coco 数据集
- get_coco128.sh:下载 coco128 数据集
- XXX.yaml:各种数据集的配置文件,如 coco.yaml 是 coco 数据集的配置文件
- models # 搭建模型的相关配置文件及代码
- hub # 存放各版本网络模型的配置文件
- anchors.yaml:coco 数据集的默认 anchor
- yolovX-XXX.yaml:模型配置文件
- common.py:用于搭建网络的模块,如Conv、DWConv、TransformerLayer等
- experimental.py:实验性质的代码,其中一些模块是近几年提出来的,如CrossConv、Sum等,yolov5的作者尝试将其融合进yolov5中
- tf.py:TensorFlow版本的yolov5代码
- yolo.py:主要用于搭建yolov5的网络模型
- yolov5X.yaml:yolov5的模型配置文件
- runs #运行过程中产生的文件夹,每运行一次都会生成一个名为 expN 的文件夹(N代表运行次数)
- detect # 运行 detect.py 产生的图片,图片中标注出识别到的物体及其概率
- train # 运行 train.py 产生的文件
- weights # 权重(包括训练出的最好权重 best.pt 以及上次训练的权重 last.pt)
- confusion_matrix.png:混淆矩阵
- F1_curve.png:F1 score 与置信度之间的关系
- hyp.yaml:超参数记录文件
- labels.jpg:包含四张子图,从左上到右下分别是每个类别的个数、标注的 bbox、标注的bbox的中心点坐标热图、bbox的宽高热图
- labels_correlogram.jpg:预测框的宽高以及中心坐标热图
- opt.yaml:模型记录文件
- P_curve.png:准确率与置信度之间的关系
- PR_curve.png:精准率与召回率之间的关系
- R_curve.png:精准率与置信度之间的关系
- results.csv:模型训练过程中的指标,如损失函数、准确率等
- results.png:训练集以及验证集在验证过程中的损失函数、mAP等指标的曲线
- train_bathN.jpg:训练集图像(带bbox)
- val_batchN_labels.jpg:验证集图像(带bbox)
- val_batchN_pred.jpg:验证集图像(带预测框)
- utils # 通用的工具类函数
- aws:恢复中断训练相关
- docker:docker配置相关
- flash_rest_api:flask接口相关
- google_app_engine:google app相关
- loggers:日志打印(包括TensorBoard)
- activations.py:激活函数
- augmentations.py:图像增强
- autoanchor.py:自动生成 anchor
- autobatch.py:自动生成 batch size
- benchmarks.py:评估模型的推理速度以及分析内存占用
- callbacks.py:主要是 logger 的回调函数
- datasets.py:配置 dataloader 和 datasets
- downloads.py:下载数据集
- general.py:通用函数
- loss.py:损失函数
- metrics.py:模型验证指标
- plots.py:绘制损失函数等的曲线、bbox等
- torch_utils.py:其他一些通用函数
- detect.py:将训练好的模型用于图片、视频等进行目标检测
- export.py:导出模型
- hubconf.py:pytorch hub 相关,用于定义和管理模型的预训练权重和配置信息
- train.py:训练模型
- val.py:验证模型,评估模型性能