Yolox的论文及代码

Yolox论文名:《YOLOX: Exceeding YOLO Series in 2021》

Yolox论文地址:https://arxiv.org/abs/2107.08430

Yolox代码地址:https://github.com/Megvii-BaseDetection/YOLOX

源码的文件结构和注释(加粗部分是重点文件,应详细分析):

YOLOX-main:.
.gitignore
.readthedocs.yaml
hubconf.py
LICENSE
README.md
requirements.txt
setup.cfg
setup.py
yolox_s.pth


├─assets:里面图片是doc或者demo要用的,这个文件不用管它,

├─build:应该是用来部署或者封装的吧?一般不用动这个文件夹,里面的文件我就不展开了。

├─datasets:自己的训练集放在这个文件夹下面

├─demo:demo文件,一般不要动他。里面的文件我就不展开了。

├─dist
│ yolox-0.2.0-py3.7-win-amd64.egg
│ yolox-0.2.0-py3.8-win-amd64.egg

├─docs
│ │ .gitignore
│ │ conf.py
│ │ freeze_module.md:指导用户在YOLOX中冻结模块。
│ │ index.rst
│ │ Makefile
│ │ manipulate_training_image_size.md:介绍了如何在对自己的数据进行训练时控制图像大小。
│ │ model_zoo.md:介绍了各种标准模型。
│ │ quick_run.md:介绍了代码的使用操作
│ │ requirements-doc.txt
│ │ train_custom_data.md:介绍如何使用YOLOX训练您自己的自定义数据。我们以VOC数据集上微调YOLOX-S模型为例,给出了更清晰的指导。
│ │ updates_note.md:讲了对代码的更新。比如:支持图像缓存以加快培训速度,这需要较大的系统RAM。消除对apex的依赖,支持torch放大器培训。优化预处理以加快训练速度用新的HSV aug替换旧的扭曲增强,以实现更快的训练和更好的性能。
│ │
│ ├─demo
│ │ megengine_cpp_readme.md
│ │ megengine_py_readme.md
│ │ ncnn_android_readme.md
│ │ ncnn_cpp_readme.md
│ │ onnx_readme.md
│ │ openvino_cpp_readme.md
│ │ openvino_py_readme.md
│ │ trt_cpp_readme.md
│ │ trt_py_readme.md
│ │
│ └─_static
│ └─css
custom.css

├─exps
│ │
│ ├─default:各种model的配置文件
│ │ │ yolov3.py
│ │ │ yolox_l.py
│ │ │ yolox_m.py
│ │ │ yolox_nano.py
│ │ │ yolox_s.py
│ │ │ yolox_tiny.py
│ │ │ yolox_x.py
│ │ │ __init__.py
│ │ │
│ │ └─__pycache__
│ │ yolox_s.cpython-38.pyc
│ │
│ └─example
│ ├─custom
│ │ nano.py
│ │ yolox_s.py
│ │
│ └─yolox_voc
yolox_voc_s.py

├─tests
│ │ __init__.py
│ │
│ └─utils
test_model_utils.py

├─tools
demo.py
eval.py
export_onnx.py
export_torchscript.py
train.py
trt.py
__init__.py

├─yolox
│ │ __init__.py
│ │
│ ├─core:一些加载文件
│ │ launch.py
│ │ trainer.py
│ │ __init__.py
│ │
│ ├─data
│ │ │ dataloading.py:该模块进行数据加载,获取数据集的文件
│ │ │ data_augment.py:模块进行相关数据处理,包含hsv等一些数据增强方法
│ │ │ data_prefetcher.py:加快pytorch的数据加载
│ │ │ samplers.py:该模块进行抽样,批取样器,将从另一个取样器生成(马赛克,索引)元组的小批
│ │ │ __init__.py
│ │ │
│ │ └─datasets:数据处理
│ │ coco.py:coco数据集的初始化、进行数据读取
│ │ coco_classes.py:coco数据集的类别
│ │ datasets_wrapper.py:将处理后的数据集,进行整理和封装
│ │ mosaicdetection.py:进行马赛克操作,实现数据增强
│ │ voc.py:voc数据集的初始化、进行数据读取
│ │ voc_classes.py:voc数据集的类别
│ │ __init__.py
│ │
│ ├─evaluators:测评
│ │ coco_evaluator.py
│ │ voc_eval.py
│ │ voc_evaluator.py
│ │ __init__.py
│ │
│ ├─exp:./exps/default中的模型配置使用这些组件组成不同的model
│ │ │ base_exp.py:任何experiment的基类
│ │ │ build.py:通过名字或地址构建experiment
│ │ │ yolox_base.py:Exp类,./exps/default中的模型配置基于这个类来构建完整的model
│ │ │ __init__.py
│ │ │
│ │ └─default
│ │ __init__.py
│ │
│ ├─layers
│ │ │ fast_coco_eval_api.py:改进的COCO PythonAPI
│ │ │ __init__.py
│ │ │
│ │ └─csrc
│ │ │ vision.cpp
│ │ │
│ │ └─cocoeval
│ │ cocoeval.cpp
│ │ cocoeval.h
│ │
│ ├─models:用来定义yolox的baseline、neck和head。
│ │ build.py:通过名字或地址构建yolox模型
│ │ darknet.py:构建darknet的dark2到dark5
│ │ losses.py:iou的loss函数
│ │ network_blocks.py:封装SiLU损失函数和各种最基础的layers
│ │ yolox.py:由create_yolov3_modules函数定义的yolox模块,返回三个YOLO层的损失值,并在测试期间返回检测结果
│ │ yolo_fpn.py:封装的FPN,默认用darknet53作为baseline
│ │ yolo_head.py:预测层,本模块有三个操作:decoupled head,Multi positives,SimOTA
│ │ yolo_pafpn.py:封装的PAFPN,这是另一个主干网络,backbone-YOLOPAFPN。PA指的是PANet的结构,FPN指的是特征金字塔结构。
│ │ __init__.py
│ │
│ ├─tools
│ │ __init__.py
│ │
│ └─utils:工具代码
allreduce_norm.py
boxes.py
checkpoint.py
compat.py
demo_utils.py
dist.py
ema.py
logger.py
lr_scheduler.py
metric.py
model_utils.py
setup_env.py
visualize.py
__init__.py

├─yolox.egg-info
dependency_links.txt
PKG-INFO
requires.txt
SOURCES.txt
top_level.txt

└─YOLOX_outputs:模型的results保存在这里

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐