PyTorch版YOLOv3代码解读一

PyTorch版YOLOv3代码解读

  • 1. 环境&基础知识
  • 2. 代码结构
    • 2.1 整体结构图
    • 2.2 数据准备的data文件夹:
    • 2.3 存放配置文件的config文件夹
    • 2.4 存放工具函数的utils文件夹

1. 环境&基础知识

代码下载地址:https://github.com/eriklindernoren/PyTorch-YOLOv3
系统:win10

编译环境:
Package                Version
---------------------- -------------------
torch                  1.6.0+cpu			# 主要
torchvision            0.7.0+cpu			# 主要
tensorflow             2.3.1				# 主要
tensorboard            2.3.0
matplotlib             3.3.2
Pillow                 7.2.0
PyYAML                 5.3.1
# 这里列出了主要的环境,其它的环境查看导入信息,缺少时进行安装即可。

下载的代码本身有两个问题:
一:是从Linux系统上移植过来的和windows系统的兼容问题;
二:是编译环境改变我电脑虚拟环境中torch/tensorflow的版本较高。
所以我在原代码基础上有所修改,主要是解决一些语法问题,大体上没有改动。

需要有的基础知识:

yolov3的模型架构图、pytorch基本语法规则

2. 代码结构

2.1 整体结构图

PyTorch版YOLOv3代码解读一_第1张图片
其中checkpoints文件夹、logs文件夹、output文件夹在运行时生成,分别存放训练生成权重、运行日志、检测图片结果。
weights文件夹存放预训练权重。
assets文件夹下存放的是预训练模型识别效果图,看看效果就好。

我们最需要关注的文件夹为:config文件夹、data文件夹、utils文件夹
train.py、detect.py、test.py三大运行文件,models.py模型文件在图片中已经简要说明它们的作用,后续将会结合config、data、utils文件夹详细解读。

2.2 数据准备的data文件夹:

PyTorch版YOLOv3代码解读一_第2张图片
coco文件夹在运行get_coco_dataset.sh文件后生成。
coco.names存放的时coco数据集的80个类别信息。
这里我们关注custom文件夹:
将标注的图片放到images文件夹下。
对应的标签文件放入labels文件夹下。
classes.names存放自定义数据集的类别信息。
train.txt存放的是训练数据集的位置索引。
valid.txt存放的是验证数据集的位置索引。
samples文件夹下存放的文件,在detect时会用到,不是重点。

2.3 存放配置文件的config文件夹

config文件夹结构图:
PyTorch版YOLOv3代码解读一_第3张图片
yolov3-custom.cfg文件是运行create_custom_model.sh文件生成的。
custom.data和coco.data文件类似,yolov3-tiny.cfg和yolov3.cfg文件类似。
着重介绍coco.data、yolov3.cfg文件
coco.data文件:
PyTorch版YOLOv3代码解读一_第4张图片
coco.data文件包含了coco数据集的类别数量信息、训练文件索引集合位置信息、验证文件索引集合位置信息、类别名称位置信息等。
训练时,将会根据这里的信息查找训练集、验证集、种类数量和种类。

yolov3.cfg文件:
yolov3.cfg之一:数据预处理参数信息
PyTorch版YOLOv3代码解读一_第5张图片
yolov3.cfg之二:超参数设置
PyTorch版YOLOv3代码解读一_第6张图片
yolov3.cfg之三:网络结构参数熟悉yolov3模型的人应该一眼就能看懂这里的参数设置
PyTorch版YOLOv3代码解读一_第7张图片
yolov3.cfg文件包含了数据预处理参数信息、超参数信息、模型设置参数(不是权重)信息
训练时,将会根据这里的信息对传入模型的数据进行预处理、设置模型训练的超参数、生成网络模型。

2.4 存放工具函数的utils文件夹

未完待续!!近期没时间更新了。

你可能感兴趣的:(目标检测,pytorch)