Skip to main content

mmdetection YOLOX; image encoder transfer learning

· 2 min read
SeulGi Hong

Episode 4 for my VIPrior challenge journey link!

Situation

Following the previous issues (refer to the last posts), I have successfully resolved minor data annotation bugs and retrained the image encoder without any more issues. Now, let's bring it back to mmdetection and train the model.

Experiments

  • Backbone: CSPDarkNet (initialized with classification training)
  • Detection model: YOLOX (one-stage model)
  • Weight and Bias logs: mmdetection, mmclassification
  • The results will be available in 4 hours, so I will update later.

Training Settings

List of transfer learning attempts this time:

  • YOLOX + CSPDarknet (CE loss)
  • YOLOX + CSPDarknet transfer learning
  • Cascade RCNN + ResNet50 (CE loss)
  • Cascade RCNN + CBNetV2 (CE loss): Currently encountering an error.

Results?

  • Augmentation: There was a significant difference between using YOLOXHSVRandomAug or not (mAP difference of 0.1).
  • Weight initialization: Transfer learning with (supervised) classification task performs better than using self-supervised learning for the backbone. Both settings are better than a general random initialization backbone.
  • Loss: There was no significant difference between using CE loss or Label Smooth Loss during backbone training.
  • Bug: Encountering nan loss in a specific model while performing mmclassification (ResNet50).

In any case, we achieved a validation mAP of 0.284 in 300 epochs. Let's try ensemble. Config: /raid/sghong/Detection/mmdetection/work_dirs/yoloxx_0826/yolox_cls_aug.py