torch--yoloV5学习

  1. 网络可视化工具:netron
netron官方的github链接: https://github.com/lutzroeder/netron
netron对pt格式的权重文件兼容性不好,直接使用netron工具打开,无法显示整个网络

可以使用yolo 代码中models/export.py脚本将pt权重文件转换为onnx格式,再用netron工具打开,就可以看yolo v5网络的整体架构。

导出ONNX文件
pip install onnx>=1.7.0
pip install coremltools==4.0

python models/export.py --weights weights/yolov5s.pt --img 640 --batch 1

转换后的权重onnx文件路径: weights/yolov5s.onnx

打开https://github.com/lutzroeder/netron
![](https://img2024.cnblogs.com/blog/3437857/202410/3437857-20241007121311098-414529444.png)
点击红框,打开权重文件yolov5s.onnx即可看到网络结构

  1. yolov5灵活配置不同复杂度的模型
![](https://img2024.cnblogs.com/blog/3437857/202410/3437857-20241011133845195-1104693097.png)

  1. yolov5坐标格式

3.1 xyxy2xywh格式

xy,xy 分别为左上角和右下角坐标x,y值转化为中心点格式

x = x_center/width
y = y_center/height
w = (xmax - xmin)/width
h = (ymax - ymin)/height

3.2 xywh2xyxy格式

将中心点格式数据转化为xy,xy 分别为左上角和右下角坐标x,y值

4、目录结构

----yolov5-3.1\
    |----detect.py        # 检测脚本
    |----hubconf.py       # PyTorch Hub相关代码
    |----LICENSE          # 版权文件
    |----README.md        # README markdown文件
    |----requirements.txt # 项目所需的安装包列表
    |----sotabench.py     # COCO数据集测试脚本
    |----train.py         # 模型训练脚本
    |----test.py          # 模型测试脚本
    |----tutorial.ipynb   # Jupyter Notebook演示代码
    |----data\
    |    |----coco.yaml           # COCO数据集配置文件
    |    |----coco128.yaml        # COCO128数据集配置文件
    |    |----hyp.finetune.yaml   # 超参数微调配置文件
    |    |----hyp.scratch.yaml    # 超参数起始配置文件
    |    |----voc.yaml            # VOC数据集配置文件
    |    |----scripts\
    |    |    |----get_coco.sh  # 下载COCO数据集shell命令
    |    |    |----get_voc.sh   # 下载VOC数据集shell命令
    |----inference\
    |    |----images    # 示例图片文件夹
    |    |    |----bus.jpg
    |    |    |----zidane.jpg
    |    |----output    # output输出文件
    |----models\
    |    |----common.py          # 模型组件定义代码
    |    |----experimental.py    # 实验性质的代码
    |    |----export.py          # 模型导出脚本
    |    |----yolo.py            # Detect及Model构建代码
    |    |----yolov5l.yaml       # yolov5l网络模型配置文件
    |    |----yolov5m.yaml       # yolov5m网络模型配置文件
    |    |----yolov5s.yaml       # yolov5s网络模型配置文件
    |    |----yolov5x.yaml       # yolov5x网络模型配置文件
    |    |----hub\    #
    |    |    |----yolov3-spp.yaml
    |    |    |----yolov5-fpn.yaml
    |    |    |----yolov5-panet.yaml
    |----weights\    # 权重文件夹
    |    |----yolov5l.pt       # yolov5l权重文件
    |    |----yolov5m.pt       # yolov5m权重文件
    |    |----yolov5s.pt       # yolov5s权重文件
    |    |----yolov5x.pt       # yolov5x权重文件
    |----utils\
    |    |----activations.py     # 激活函数定义代码
    |    |----datasets.py        # dataset及Dataloader定义代码
    |    |----evolve.sh          # 超参数进化命令
    |    |----general.py         # 项目通用函数代码
    |    |----google_utils.py    # 谷歌云使用相关代码
    |    |----torch_utils.py     # 辅助程序代码
    |    |----google_app_engine\
    |    |    |----additional_requirements.txt
    |    |    |----app.yaml
    |    |    |----Dockerfile
    |----VOC\    # 数据集目录
    |    |----images\
    |    |    |----train\     # 训练集图片文件夹
    |    |    |----val\       # 验证集图片文件夹
    |    |----labels\         # 数据集标签目录
    |    |    |----train.cache   # 训练缓存文件
    |    |    |----val.cache     # 验证缓存文件
    |    |    |----train\     # 训练集标签
    |    |    |----val\       # 验证集标签


断点续训

posted @ 2024-10-11 16:12  星空28  阅读(13)  评论(0编辑  收藏  举报