代码下载地址: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基本语法规则
其中checkpoints文件夹、logs文件夹、output文件夹在运行时生成,分别存放训练生成权重、运行日志、检测图片结果。 weights文件夹存放预训练权重。 assets文件夹下存放的是预训练模型识别效果图,看看效果就好。
我们最需要关注的文件夹为:config文件夹、data文件夹、utils文件夹 。 train.py、detect.py、test.py三大运行文件,models.py模型文件在图片中已经简要说明它们的作用,后续将会结合config、data、utils文件夹详细解读。
coco文件夹在运行get_coco_dataset.sh文件后生成。 coco.names存放的时coco数据集的80个类别信息。 这里我们关注custom文件夹: 将标注的图片放到images文件夹下。 对应的标签文件放入labels文件夹下。 classes.names存放自定义数据集的类别信息。 train.txt存放的是训练数据集的位置索引。 valid.txt存放的是验证数据集的位置索引。 samples文件夹下存放的文件,在detect时会用到,不是重点。
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文件包含了数据预处理参数信息、超参数信息、模型设置参数(不是权重)信息。 训练时,将会根据这里的信息对传入模型的数据进行预处理、设置模型训练的超参数、生成网络模型。
未完待续!!近期没时间更新了。
