YOLOX Versions Save

YOLOX is a high-performance anchor-free YOLO, exceeding yolov3~v5 with MegEngine, ONNX, TensorRT, ncnn, and OpenVINO supported. Documentation: https://yolox.readthedocs.io/

0.3.0

1 year ago

YOLOX 0.3.0 version

Updates notes

【2022/04/22】

Features

  • support loading YOLOX model through torch.hub #1189
  • support just-in-time compile op #1241
  • support wandb logger #1144
  • support freeze function for torch module #1156
  • support showing YOLOX demo in a live window #1138
  • support custom dataset for evaluator #1131
  • add option for decode output in export_onnx #1113
  • add HuggingFace web demo, click link here #1184
  • add pre-commit #1263
  • add get_trainer method in Exp class #1263

For pip users

pip install yolox could help you to install yolox for most platform. For windows users, yolox will compile self-defined operator in YOLOX package just-in-time. Otherwise, yolox will compile operator during installation automatically.

Thanks

Contributors (sort by timestamp of commit) @woowonjin @robin-maillot @wico-silva @AaronNZH @nemonameless @ArMaxik @joakimeriksson @shenyi0220 @manangoel99 @wep21 @futabato @AK391 @DoubleChuang @Ar-Ray-code @PieroMacaluso @Joe0120 @Yulv-git

0.2.0

2 years ago

0.2.0

Updates notes

【2022/01/18】

Features

  • Saved 30% memory useage in COCO training. #1066
  • Log per class AP & AP during evaluation. #1026 #1052
  • Users could install yolox from pip now! Supports on more platform is coming. #1020 #1079
  • Optimize dynamic matching in label assignment. #861

For pip users

pip install yolox could help you to install yolox now.

Exp design

YOLOX use Exp as a controller. With Exp object, users could do everything they want. e.g. If you want to get something used in yolox tiny.

from yolox.exp import get_exp
exp = get_exp(exp_name="yolox-tiny")  # yolox-tiny could be replaced by yolox-nano/s/m and so on
model = exp.get_model()  # now you get yolox-tiny model
dataloader = exp.get_data_loader(batch_size=8, is_distributed=False)
optimizer = exp.get_optimizer(batch_size=2)

Training with pip installed yolox

Since pip will auto install yolox in its own way, users may use a environment variable named YOLOX_DATADIR. Check more details from our docs here.

0.1.1rc0

2 years ago

0.1.1pre

Updates notes

【2021/08/19】

Features

  • Support image caching for faster training, which requires large system RAM.
  • Remove the dependence of apex and support torch amp training.
  • Optimize the preprocessing for faster training
  • Replace the older distort augmentation with new HSV aug for faster training and better performance.

2X Faster training

We optimize the data preprocess and support image caching with --cache flag:

python tools/train.py -n yolox-s -d 8 -b 64 --fp16 -o [--cache]
                         yolox-m
                         yolox-l
                         yolox-x
  • -d: number of gpu devices
  • -b: total batch size, the recommended number for -b is num-gpu * 8
  • --fp16: mixed precision training
  • --cache: caching imgs into RAM to accelarate training, which need large system RAM.

Higher performance

New models achive ~1% higher performance! See Model_Zoo for more details.

Support torch amp

We now support torch.cuda.amp training and Apex is not used anymore.

Breaking changes

We remove the normalization operation like -mean/std. This will make the old weights incompatible.

If you still want to use old weights, you can add `--legacy' in demo and eval:

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

and

python tools/eval.py -n  yolox-s -c yolox_s.pth -b 64 -d 8 --conf 0.001 [--fp16] [--fuse] [--legacy]
                         yolox-m
                         yolox-l
                         yolox-x

But for deployment demo, we don't suppor the old weights anymore.

0.1.0

2 years ago

0.1.0 release

Features

  • YOLOX is a high-performance anchor-free YOLO, exceeding yolov3~v5.
  • Support deployment of MegEngine, ONNX, TensorRT, openvino and ncnn.
  • Document website

Bug fixes

  • fix memory leak issues during training. (e.g. #103)

Breaking change

  • Suffix of saved checkpoints become pth instead of tar