YOLOX项目源码结构拆解

YOLOX项目源码结构拆解

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

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

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


文章目录

  • YOLOX项目源码结构拆解
    • YOLOX简介
    • 项目环境
    • 项目结构
      • 1. assets
      • 2. datasets
      • 3. demo
      • 4. doc
      • 5. exps
      • 6. tests
      • 7. tools
      • 8. yolox
        • 8.1 core
        • 8.2 data
        • 8.3 evaluators
        • 8.4 exp
        • 8.5 layers
        • 8.6 models
        • 8.7 tools
        • 8.8 utils
    • 测试一下


YOLOX简介

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

YOLOX项目源码结构拆解_第1张图片

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

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


项目环境

#直接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

YOLOX项目源码结构拆解_第2张图片


1. assets

YOLOX项目源码结构拆解_第3张图片

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


2. datasets

YOLOX项目源码结构拆解_第4张图片

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

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


3. demo

YOLOX项目源码结构拆解_第5张图片

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


4. doc

YOLOX项目源码结构拆解_第6张图片

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


5. exps

YOLOX项目源码结构拆解_第7张图片

这个文件夹里放置不同尺寸模型的配置文件,yolos\m\l\x最主要的区别就是模型深度和宽度差别
YOLOX项目源码结构拆解_第8张图片

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

YOLOX项目源码结构拆解_第9张图片


6. tests

YOLOX项目源码结构拆解_第10张图片

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

YOLOX项目源码结构拆解_第11张图片


7. tools

YOLOX项目源码结构拆解_第12张图片

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


8. yolox

YOLOX项目源码结构拆解_第13张图片

8.1 core

YOLOX项目源码结构拆解_第14张图片

就是一些加载用到的文件

8.2 data

YOLOX项目源码结构拆解_第15张图片

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

8.3 evaluators

YOLOX项目源码结构拆解_第16张图片

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

8.4 exp

YOLOX项目源码结构拆解_第17张图片

8.5 layers

YOLOX项目源码结构拆解_第18张图片

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

8.6 models

YOLOX项目源码结构拆解_第19张图片

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

8.7 tools

在这里插入图片描述

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

8.8 utils

YOLOX项目源码结构拆解_第20张图片

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


测试一下

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

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]

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

在这里插入图片描述

YOLOX项目源码结构拆解_第21张图片

YOLOX项目源码结构拆解_第22张图片


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调参实战,计算机视觉,人工智能)