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数据增强
参考博客










