yjh0410 b1ed050e0e update 1 year ago
..
README.md 614d0ada89 update README 2 years ago
build.py f73a52f516 modify post-process 1 year ago
loss.py efa0bed448 debug YOLOX-style Transform with Rotation 2 years ago
matcher.py 2727b6adb1 debug trainer 2 years ago
yolox.py b1ed050e0e update 1 year ago
yolox_backbone.py 8785462882 use RTCDet trainer for our YOLOv5 2 years ago
yolox_basic.py 3246f3efdd update 2 years ago
yolox_head.py 311a9b89b7 fix a unknown bug in YOLOX 2 years ago
yolox_neck.py c099f5dbdb design YOLOX2 2 years ago
yolox_pafpn.py 3246f3efdd update 2 years ago

README.md

YOLOX:

  • For training, we train YOLOX series with 300 epochs on COCO.
  • For data augmentation, we use the large scale jitter (LSJ), Mosaic augmentation and Mixup augmentation.
  • For optimizer, we use SGD with weight decay 0.0005 and base per image lr 0.01 / 64,.
  • For learning rate scheduler, we use Cosine decay scheduler.

On the other hand, we are trying to use AdamW to train our reproduced YOLOX. We will update the new results as soon as possible.

Model Batch Scale APval
0.5:0.95
APval
0.5
FLOPs
(G)
Params
(M)
Weight
YOLOX-S 8xb8 640 40.1 60.3 26.8 8.9 ckpt
YOLOX-M 8xb8 640 46.2 66.0 74.3 25.4 ckpt
YOLOX-L 8xb8 640 48.7 68.0 155.4 54.2 ckpt
YOLOX-X 8xb8 640
  • For training, we train YOLOX series with 300 epochs on COCO.
  • For data augmentation, we use the large scale jitter (LSJ), Mosaic augmentation and Mixup augmentation.
  • For optimizer, we use AdamW with weight decay 0.05 and base per image lr 0.001 / 64,.
  • For learning rate scheduler, we use linear decay scheduler.

Train YOLOX

Single GPU

Taking training YOLOX-S on COCO as the example,

python train.py --cuda -d coco --root path/to/coco -m yolox_s -bs 16 -size 640 --wp_epoch 3 --max_epoch 300 --eval_epoch 10 --no_aug_epoch 20 --ema --fp16 --multi_scale 

Multi GPU

Taking training YOLOX-S on COCO as the example,

python -m torch.distributed.run --nproc_per_node=8 train.py --cuda -dist -d coco --root /data/datasets/ -m yolox_s -bs 128 -size 640 --wp_epoch 3 --max_epoch 300  --eval_epoch 10 --no_aug_epoch 20 --ema --fp16 --sybn --multi_scale --save_folder weights/ 

Test YOLOX

Taking testing YOLOX-S on COCO-val as the example,

python test.py --cuda -d coco --root path/to/coco -m yolox_s --weight path/to/yolox_s.pth -size 640 -vt 0.4 --show 

Evaluate YOLOX

Taking evaluating YOLOX-S on COCO-val as the example,

python eval.py --cuda -d coco-val --root path/to/coco -m yolox_s --weight path/to/yolox_s.pth 

Demo

Detect with Image

python demo.py --mode image --path_to_img path/to/image_dirs/ --cuda -m yolox_s --weight path/to/weight -size 640 -vt 0.4 --show

Detect with Video

python demo.py --mode video --path_to_vid path/to/video --cuda -m yolox_s --weight path/to/weight -size 640 -vt 0.4 --show --gif

Detect with Camera

python demo.py --mode camera --cuda -m yolox_s --weight path/to/weight -size 640 -vt 0.4 --show --gif
Model Batch Scale APval
0.5:0.95
APval
0.5
FLOPs
(G)
Params
(M)
Weight
YOLOX-N 8xb16 640
YOLOX-T 8xb16 640
YOLOX-S 8xb16 640
YOLOX-M 8xb16 640
YOLOX-L 8xb16 640
YOLOX-X 8xb16 640