素材巴巴 > 程序开发 >

YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析

程序开发 2023-09-16 17:34:16

前言

前面简单介绍了YOLOv5的网络结构和创新点(直通车:【YOLO系列】YOLOv5超详细解读(网络详解))

在接下来我们会进入到YOLOv5更深一步的学习,首先从源码解读开始。

因为我是纯小白,刚开始下载完源码时真的一脸懵,所以就先从最基础的项目目录结构开始吧~因为相关解读不是很多,所以有的是我根据作者给的英文文档自己翻译的,如有不对之处欢迎大家指正呀!这篇只是简单介绍每个文件是做什么的,大体上了解这个项目,具体的代码详解后期会慢慢更新,也欢迎大家关注我的专栏,和我一起学习呀!

源码下载地址:mirrors / ultralytics / yolov5 · GitCode

🍀本人YOLOv5源码详解系列:  

YOLOv5源码逐行超详细注释与解读(2)——推理部分detect.py

YOLOv5源码逐行超详细注释与解读(3)——训练部分train.py

YOLOv5源码逐行超详细注释与解读(4)——验证部分val(test).py

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

YOLOv5源码逐行超详细注释与解读(6)——网络结构(1)yolo.py

YOLOv5源码逐行超详细注释与解读(7)——网络结构(2)common.py


目录

前言

 一、项目目录结构

 1.1 .github文件夹

 1.2 datasets

 1.3 data文件夹

 1.4 models文件夹

 1.5 runs文件夹

 1.6 utils文件夹

 1.7其他一级目录文件

 一、项目目录结构

将源码下载好并配置好环境之后,就可以看到YOLOv5的整体目录如上图所示。

接下来我们逐一分析

 1.1 .github文件夹

 github是存放关于github上的一些“配置”的,这个不重要,我们可以不管它。


1.2 datasets

我们刚下载下来的源码是不包含这个文件夹的,datasets用来存放自己的数据集,分为images和labels两部分。同时每一个文件夹下,又应该分为train,val。.cache文件为缓存文件,将数据加载到内存中,方便下次调用快速。可以自命名,比如我的火焰数据集就叫“fire_yolo_format”。


 1.3 data文件夹

 

data文件夹主要是存放一些超参数的配置文件(如.yaml文件)是用来配置训练集和测试集还有验证集的路径的,其中还包括目标检测的种类数和种类的名称;还有一些官方提供测试的图片。YOLOv5 有大约 30 个超参数用于各种训练设置。更好的初始猜测会产生更好的最终结果,因此在演化之前正确初始化这些值很重要。

如果是训练自己的数据集的话,那么就需要修改其中的yaml文件。不过要注意,自己的数据集不建议放在这个路径下面,建议把数据集放到YOLOv5项目的同级目录下面。

详解:

  • images  # 存放着官方给的两张测试图片
  • scripts  # 存放数据集和权重下载shell脚本
  • Argoverse.yaml  # 后面的每个.yaml文件都对应一种标准数据集格式的数据

  • coco.yaml   # COCO数据集配置文件
  • coco128.yaml   # COCO128数据集配置文件
  • voc.yaml   # VOC数据集配置文件

  •  1.4 models文件夹

    models是模型文件夹。里面主要是一些网络构建的配置文件和函数,其中包含了该项目的四个不同的版本,分别为是s、m、l、x。从名字就可以看出,这几个版本的大小。他们的检测速度分别都是从快到慢,但是精确度分别是从低到高。如果训练自己的数据集的话,就需要修改这里面相对应的yaml文件来训练自己模型。

    详解:

  • _int_.py   # 空的
  • common.py   # 放的是一些网络结构的定义通用模块,包括autopad、Conv、DWConv、TransformerLayer等
  • experimental.py   # 实验性质的代码,包括MixConv2d、跨层权重Sum等
  • tf.py  # tensorflow版的yolov5代码
  • yolo.py  # yolo的特定模块,包括BaseModel,DetectionModel,ClassificationModel,parse_model等
  • yolov5l.yaml   # yolov5l网络模型配置文件,large版本,深度1.0,宽度1.0
  • yolov5m.yaml   # yolov5m网络模型配置文件,middle版本,深度0.67,宽度0.75
  • yolov5n.yaml   # yolov5n网络模型配置文件,nano版本,深度0.33,宽度0.25
  • yolov5s.yaml   # yolov5s网络模型配置文件,small版本,深度0.33,宽度0.50
  • yolov5x.yaml   # yolov5x网络模型配置文件,Xlarge版本,深度1.33,宽度1.25

  • 1.5 runs文件夹

    runs是我们运行的时候的一些输出文件。每一次运行就会生成一个exp的文件夹。

     详解:

                                                                   (1,2)真实标注的 bounding_box

                                                                   (2,1) 真实标注的中心点坐标

                                                                   (2,2)真实标注的矩阵宽高


    1.6 utils文件夹

       

     utils工具文件夹。存放的是工具类的函数,里面有loss函数,metrics函数,plots函数等等。

        详解:


    1.7其他一级目录文件

     详解:


    本文参考:

    YOLOV5学习笔记(四)——项目目录及代码讲解

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


    标签:

    上一篇: AngularJS模板标签注入漏洞 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。