YOLOX项目源码结构拆解

Posted 迪菲赫尔曼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YOLOX项目源码结构拆解相关的知识,希望对你有一定的参考价值。

YOLOX项目源码结构拆解

本篇博文主要对YOLOX官方源码的项目结构进行拆解

项目地址:https://github.com/Megvii-BaseDetection/YOLOX

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


文章目录


YOLOX简介

‎YOLOX是一个anchor-free 版本的‎‎YOLO,设计更简单,但性能更好

左侧图代表模型的速度-精度权衡

右侧图代表在移动设备上的精简版模型的尺寸-精度曲线


项目环境

#直接pip就好了
pip install -r requirements

项目结构

项目的整体代码结构就是这样子的

YOLOX-MAIN
├─assets
├─datasets
├─demo
│  ├─MegEngine
│  │  ├─cpp
│  │  └─python
│  │      └─models
│  ├─ncnn
│  │  ├─android
│  │  │  ├─app
│  │  │  │  └─src
│  │  │  │      └─main
│  │  │  │          ├─assets
│  │  │  │          ├─java
│  │  │  │          │  └─com
│  │  │  │          │      └─megvii
│  │  │  │          │          └─yoloXncnn
│  │  │  │          ├─jni
│  │  │  │          └─res
│  │  │  │              ├─layout
│  │  │  │              └─values
│  │  │  └─gradle
│  │  │      └─wrapper
│  │  └─cpp
│  ├─ONNXRuntime
│  ├─OpenVINO
│  │  ├─cpp
│  │  └─python
│  └─TensorRT
│      ├─cpp
│      └─python
├─docs
│  ├─demo
│  └─_static
│      └─css
├─exps
│  ├─default
│  └─example
│      ├─custom
│      └─yolox_voc
├─tests
│  └─utils
├─tools
└─yolox
    ├─core
    ├─data
    │  └─datasets
    ├─evaluators
    ├─exp
    │  └─default
    ├─layers
    │  └─cocoeval
    ├─models
    ├─tools
    └─utils


1. assets

这个文件夹就是存放一些项目里用到的图片的


2. datasets

这个文件夹就是存放你数据集的文件夹

我这里顺便放上COCO数据集的下载地址https://cocodataset.org


3. demo

这个文件夹是用来存放一些部署用到的文件的,里面提供了C、Python、android版本


4. doc

这个文件夹里面放了各种的md文件,md文件内容包括安装、训练、验证、模型的参数、训练尺度的选择、更新日志等


5. exps

这个文件夹里放置不同尺寸模型的配置文件,yolos\\m\\l\\x最主要的区别就是模型深度和宽度差别

example文件夹里面也给出了一些例子,除了深度宽度以外还有数据集类别,预热参数和数据增强等信息


6. tests

这个就是用来测试模型的文件,运行后就可以显示测试结果


7. tools

这文件夹里面就是一些常用的工具,包括训练、验证、模型转换等


8. yolox

8.1 core

就是一些加载用到的文件

8.2 data

里面主要是处理数据和对数据进行增强的文件

8.3 evaluators

主要是模型评估验证时用到的一些文件

8.4 exp

8.5 layers

这放了一些对COCO数据集快速验证的api文件

8.6 models

模型的主要结构代码,主要包括backbone、loss、fpn等

8.7 tools

用于安装包的一个工具文件

8.8 utils

这里面就是放一些工具文件


测试一下

介绍完结构以后我们可以通过如下指令来测试一下项目

python tools/demo.py image -f exps/default/yolox_s.py -c yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu

视频测试指令:(注意更改路径)

python tools/demo.py video -n yolox-s -c /path/to/your/yolox_s.pth --path /path/to/your/video --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]

如果没问题就会在根目录下生成如下的文件夹


Q1:No module named yolox

A:在demo.pyfrom yolox.data.data_augment import ValTransform上加入如下代码,路径要改成自己的路径

import sys
sys.path.append(r'D:\\Pycharm_Projects\\YOLOX-main')

以上是关于YOLOX项目源码结构拆解的主要内容,如果未能解决你的问题,请参考以下文章

Anchor free系列网络之YOLOX源码逐行讲解篇--解耦Head的搭建及分析

Anchor free系列网络之YOLOX源码逐行讲解篇--mosaic数据增强及数学理解

Anchor free系列网络之YOLOX源码逐行讲解篇--coco数据载入及分布式训练

睿智的目标检测53——Pytorch搭建YoloX目标检测平台

睿智的目标检测52——Keras搭建YoloX目标检测平台

睿智的目标检测54——Tensorflow2 搭建YoloX目标检测平台