PyTorch版YOLOv3代码解读
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 整体结构图
其中checkpoints
文件夹、logs
文件夹、output
文件夹在运行时生成,分别存放训练生成权重、运行日志、检测图片结果。
weights文件夹
存放预训练权重。
assets文件夹
下存放的是预训练模型识别效果图,看看效果就好。
我们最需要关注的文件夹为:config文件夹、data文件夹、utils文件夹
。
train.py、detect.py、test.py
三大运行文件,models.py
模型文件在图片中已经简要说明它们的作用,后续将会结合config、data、utils文件夹详细解读。
2.2 数据准备的data文件夹:
coco文件夹
在运行get_coco_dataset.sh
文件后生成。
coco.names
存放的时coco数据集的80个类别信息。
这里我们关注custom文件夹:
将标注的图片放到images文件夹
下。
对应的标签文件放入labels文件夹
下。
classes.names
存放自定义数据集的类别信息。
train.txt
存放的是训练数据集的位置索引。
valid.txt
存放的是验证数据集的位置索引。
samples文件夹
下存放的文件,在detect时会用到,不是重点。
2.3 存放配置文件的config文件夹
config文件夹结构图:
yolov3-custom.cfg文件
是运行create_custom_model.sh文件
生成的。
custom.data和coco.data文件类似,yolov3-tiny.cfg和yolov3.cfg文件类似。
着重介绍coco.data、yolov3.cfg文件
coco.data文件:
coco.data文件
包含了coco数据集的类别数量信息、训练文件索引集合位置信息、验证文件索引集合位置信息、类别名称位置信息
等。
训练时,将会根据这里的信息查找训练集、验证集、种类数量和种类。
yolov3.cfg文件:
yolov3.cfg之一:数据预处理参数信息
yolov3.cfg之二:超参数设置
yolov3.cfg之三:网络结构参数
(熟悉yolov3模型的人应该一眼就能看懂这里的参数设置)
yolov3.cfg文件
包含了数据预处理参数信息、超参数信息、模型设置参数(不是权重)信息
。
训练时,将会根据这里的信息对传入模型的数据进行预处理、设置模型训练的超参数、生成网络模型。
2.4 存放工具函数的utils文件夹
未完待续!!近期没时间更新了。