前面几节了解了目标检测的一些基础概念之后就可以着手跑程序了,至于环境的配置某站一大堆教程,这里重点推荐up主我是土堆,而且还有一个yolov5的实战教程,非常适合新手了。经过几天的调试终于把程序跑出来了,看着密密麻麻的工程文件夹一时头大,接下来几天要把各个配置文件和代码读懂。
yolov5工程文件分类如下:
(1) .github
github文件夹主要是放置github一些配置文件,这个没咋用过,可能不太重要。
(2)data
image:文件夹中存放官方下载的测试图片,也可以将自己下载的图片或者视频放到这个文件夹来检测
scripts;存放着数据集下载的脚本,后缀都为.sh,对应三个数据集
argoverse_hd.yaml:yaml后缀的都为某一个数据集的配置文件,.前的为数据集的名称
coco.yaml:coco数据集配置文件
coco128.yaml同理:coco128为coco数据集的前128个图片,学习时为了训练快一点从而减小数据量
hyp.finetune.yaml:超参数微调配置文件
hyp.scratch.yaml:超参数起始配置文件
voc.yaml:voc数据集配置文件
model文件夹
hub文件夹:存放着yolov5各种版本的目标检测网络配置模型,各个模型都有其独特的优势,详细信息参考ll链 接:此博文比我的详细,我只是为了学习记忆写此博文
_ init _.py:pycharm创建pakages时加的,项目中的文件是空的
common.py:存放网格结构定义通用模块,比如autopad,Conv,TransformerLayer等
experiment.py:实验性质的代码,包括跨层权重,MixConv2d等
export.py:这个部分是模型的转换部分,将模型转换为torchscript、 onnx、coreml等格式,用于后面的应用中,方便将模型加载到各种设备上
yolo.py:yolo的网络模型搭建模块过程
yolov5l.yaml:网络模型配置文件,large版本,深度和宽度都为1.0
其他的配置文件打开都可以看到详细的信息
run文件夹
run文件夹包含着detect,train,test的运行结果,每次运行结束后都会显示结果保存在那个exp下,有很多的运行数据和测试评估数据等后面的学习再详细的总结
utils文件夹
aws:恢复中断训练,和aws平台使用相关的工具
google_app_engine:和谷歌app引擎相关的工具
wandb_logging:
activations.py:激活函数
autoanchor.py:这个文件是通过 k-means 聚类 + 遗传算法来生成和当前数据集匹配度更高的anchors。如果要使用这个脚本要注意两点:
dataset.py:dataset和dataloader定义代码,图像增强代码,标签处理代码等
general.py:这个文件是yolov5的通用工具类,写了一些通用的工具函数,用的很广,整个项目哪里都可能用到。这个文件的函数非常多,代码量也很大(上千行了),也都比较重要
google_utils.py:google相关代码
loss.py:各种损失函数
metrics.py:这个文件存放的是计算mAP、混淆矩阵、IOU相关的函数,在看之前需要大家了解基本的目标检测指标,mAP的定义,计算方式等知识
plots.py:绘图相关函数,比如loss,ac曲线等
torch_utils.py:辅助函数,torch相关工具的使用
weights
权重下载shell文件
其他一级目录文件
.dockerignore:存放docker的ignore文件
.gitattributes:将.ipynb后缀的文件剔除github语言统计
gitignore:
detect.py:目标检测脚本
Dockerfile:
hubconf.py:pytorch hub相关文件
LICENSE:证书
README.md:markdown格式说明文档
requirements.txt:工程所需文件下载
test.py:测试脚本
train.py:训练脚本
tutorial.ipynb:目标检测教程
yolov5s.pt:coco数据集模型预训练权重,会从项目网址下载