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.data文件包含了coco数据集的类别数量信息、训练文件索引集合位置信息、验证文件索引集合位置信息、类别名称位置信息等。
训练时,将会根据这里的信息查找训练集、验证集、种类数量和种类。

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

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

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

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLOv3是一种目标检测算法,它在PyTorch框架下实现。你可以在GitHub上找到YOLOv3PyTorch代码,地址是https://github.com/ultralytics/yolov3。这个代码库提供了一些教程和运行结果,但不一定能直接运行成功。你可以在同目录下新建一个.ipynb文件,并在其中运行代码"%run detect.py"来尝试运行。\[1\] 在代码解读方面,首先需要准备数据集和关键文件。然后,代码的大致流程包括数据与标签的读取、模型构造、前向传播和计算损失。具体来说,模型构造部分包括构建convolutional层、rout层和shortcut层,以及构建yolo层。\[2\] 如果你想深入了解YOLOv3PyTorch代码,可以参考官方教程,地址是https://github.com/ultralytics/yolov3/wiki/Train-Custom-Data。这个教程提供了更详细的训练自定义数据集的指导。\[3\] #### 引用[.reference_title] - *1* *3* [YOLOv3 Pytorch代码及原理分析(一):跑通代码](https://blog.csdn.net/weixin_43605641/article/details/107524168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [YOLOV3 Pytorch代码解读](https://blog.csdn.net/Weary_PJ/article/details/128749270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值