YOLOX源码解读系列

1.YOLOX总体结构

demo

在这里插入图片描述

MegEngine:旷视深度学习开源框架–天元(2020.03.25发布)
ONNX:Open Neural Network Exchange ,是微软和 Facebook 发布的一个深度学习开发工具生态系统,旨在让 AI 开发人员能够随着项目发展而选择正确的工具,可以直接在不同的框架上训练网络。
TensorRT:英伟达推出的高性能深度学习支持引擎,为了能更好地利用GPU
openvino :英特尔推出的一款全面的工具套件,用于快速部署应用和解决方案
ncnn:腾讯开放的一个专门针对移动设备(尤其是android)的开源深度学习前向框架

docs

在这里插入图片描述

manipulate_training_image_size.md:介绍了如何在对自己的数据进行训练时控制图像大小。
modle_zoo.md:介绍了各种标准模型。
quick_run.md:介绍了代码的使用操作
train_custom_data.md介绍如何使用YOLOX训练您自己的自定义数据。我们以VOC数据集上微调YOLOX-S模型为例,给出了更清晰的指导。
updates_note.md讲了对代码的更新。比如:支持图像缓存以加快培训速度,这需要较大的系统RAM。消除对apex的依赖,支持torch放大器培训。优化预处理以加快训练速度用新的HSV aug替换旧的扭曲增强,以实现更快的训练和更好的性能。

exps:examples

介绍了对不同标准模型进行使用的配置文件,包括各种输入参数、模块方法选择, 具体的配置示例
在这里插入图片描述

tools

一些训练用的通用文件,训练、测试、demo等
在这里插入图片描述

yolox

核心部分
在这里插入图片描述

在这里插入图片描述
core:一些加载文件

在这里插入图片描述
datasets:数据处理
coco_classes.py:coco数据集的类别
coco.py:coco数据集的初始化、进行数据读取
voc_classes.py:voc数据集的类别
voc.py:是voc数据集的初始化、进行数据读取。
datasets_wrapper.py:将处理后的数据集,进行整理和封装
mosaicdetection.py:进行马赛克操作,实现数据增强
data_augment.py:模块进行相关数据处理,包含hsv等一些数据增强方法
data_prefetcher.py:加快pytorch的数据加载
dataloading.py:该模块进行数据加载,获取数据集的文件
samplers.py:该模块进行抽样,批取样器,将从另一个取样器生成(马赛克,索引)元组的小批
init.py:一些依赖库
在这里插入图片描述
evaluator:测评

在这里插入图片描述
exp:base examples

在这里插入图片描述
model:模型主体代码
init.py:一些依赖包,导入模块和函数
darknet.py:主干网络Darknet53
losses.pyloss:函数使用了IOUloss,计算交并比
network_blocks.py:网络需要调用的模块,使用silu激活函数
yolo_fpn.py:YOLOFPN模块。Darknet 53是此模型的默认主干。调用Darknet 53作为主干网络
yolo_head.py:本模块有三个操作:decoupled head,Multi positives,SimOTA
yolo_pafpn.py:另一个主干网络,backbone-YOLOPAFPN。PA指的是PANet的结构,FPN指的是特征金字塔结构。
yolox.py:YOLOX模型模块。调用之前的主干网络和组件,模块列表由create_yolov3_modules函数定义。网络在训练期间从三个YOLO层返回损耗值,以及测试期间的检测结果。
在这里插入图片描述
utils:工具代码

2.datasets模块解读

2.1 Mosaic数据增强

参考博客

猜你喜欢

转载自blog.csdn.net/weixin_46297585/article/details/123469585