1 PyTorch版YOLOv3 代码中文注释 之 训练 train.py test.py detect.py

文章目录

  • PyTorch版YOLOv3 代码中文注释
    • 1. 相关链接:
    • 2. 代码结构:
    • 3. train.py
      • 3.1. train.py 中包含的主要功能
    • 4. test.py
      • 4.1. test.py 的主要内容
    • 5. detect.py
      • 5.1. detect.py 的主要内容

PyTorch版YOLOv3 代码中文注释

1. 相关链接:

  1. GitHub的pytorch版YOLOv3 链接:https://github.com/eriklindernoren/PyTorch-YOLOv3
  2. YOLOv3 论文作者的github链接:https://github.com/pjreddie/darknet

2. 代码结构:

1 PyTorch版YOLOv3 代码中文注释 之 训练 train.py test.py detect.py_第1张图片

文件或文件夹 文件或文件夹作用 翻译
assets 与 yolov3 无关,存放 github 的写 readme 时需要的图片 n. 资产
config 存放 YOLOv3 的 数据信息和网络结构的配置文件 配置
data 存放数据、训练使用的图片,label ;测试使用的图片,label. 数据
utils 存放一些 py 脚本文件:数据aug, 命令解析,日志记录,对原始图片的 pad 和 resize 操作 n. 跑龙套
weights 存放训练好的的权重;运行download_weights.sh 脚本可以将预训练好的权重下载到本文件夹。 权重
.gitignore 与 yolov3 无关。git commit 时,忽略部分文件,只将重要的文件上传至github。 vt. 驳回诉讼,忽视,不理睬
LICENSE 与 yolov3 无关。新建一个github 工程时,可以自动生成这个文件。 vt. 批准, 许可, 颁发执照
README.md 与 yolov3 代码无关。一个markdown 文件,和前面的 assent 文件夹中的图片配合使用,用来对当前 github 仓库进行说明。
detect.py 检测图片(使用yolov3)的代码:执行该文件时,计算机加载模型、权重、输入图片,输出检测结果。 检测
models.py 模型代码:包含生成整个YOLOv3 模型的函数,和保存训练模型时权重的函数 模型
requirements.txt 该 YOLOv3 正常运行时,需要安装的相关库
test.py 测试(评估)代码:输入当前的 准确率,召回率,AP,等指标 测试
train.py 训练代码:训练模型 训练

3. train.py

3.1. train.py 中包含的主要功能

  1. 构建网络结构的模型 model
  2. 加载预训练好的权重,或之前训练了一半的权重
  3. 遍历训练数据集,进行训练。在每一个 batch 之后计算相应的指标metric(“grid_size”, “loss”,“x”, “y”,“w”,“h”, “conf”, “cls”, “cls_acc”,“recall50”,“recall75”,“precision”,“conf_obj”,“conf_noobj”,),并 print 出来。每 2个 batch 之后更新一次权重
  4. 每个 epoch 之后要在测试数据集上进行evaluation 评估(precision, recall, AP, f1, ap_class)
  5. 训练过程的截图如下:
    1 PyTorch版YOLOv3 代码中文注释 之 训练 train.py test.py detect.py_第2张图片

4. test.py

4.1. test.py 的主要内容

  1. 找到评估模型时使用的数据(路径):valid_path
  2. 加载模型:model = Darknet(opt.model_def).to(device)
  3. 加载需要评估的权重:model.load_state_dict(torch.load(opt.weights_path))
  4. 运行评估函数,计算出评评估指标(precision, recall, AP, f1, ap_class)
  5. pirnt 计算的指标

5. detect.py

5.1. detect.py 的主要内容

  1. 加载模型
  2. 加载权重
  3. 构造好需要检测的数据集
  4. 数据输入模型,输出检结果,之后非极大抑制
  5. 将检测结果绘制在原始图片上,并保持绘制好的图片

你可能感兴趣的:(YOLO)