github open-mmlab/mmdetection v2.5.0
MMDetection V2.5.0 Release

latest releases: v3.3.0, v3.2.0, v3.1.0...
3 years ago

Highlights

  • Support new methods: YOLACT, CentripetalNet.
  • Add more documentations for easier and more clear usage.

Backwards Incompatible Changes

FP16 related methods are imported from mmcv instead of mmdet. (#3766, #3822)
Mixed precision training utils in mmdet.core.fp16 are moved to mmcv.runner, including force_fp32, auto_fp16, wrap_fp16_model, and Fp16OptimizerHook. A deprecation warning will be raised if users attempt to import those methods from mmdet.core.fp16, and will be finally removed in V2.8.0.

[0, N-1] represents foreground classes and N indicates background classes for all models. (#3221)
Before v2.5.0, the background label for RPN is 0, and N for other heads. Now the behavior is consistent for all models. Thus self.background_labels in dense_heads is removed and all heads use self.num_classes to indicate the class index of background labels.
This change has no effect on the pre-trained models in the v2.x model zoo, but will affect the training of all models with RPN heads. Two-stage detectors whose RPN head uses softmax will be affected because the order of categories is changed.

Only call get_subset_by_classes when test_mode=True and self.filter_empty_gt=True (#3695)
Function get_subset_by_classes in dataset is refactored and only filters out images when test_mode=True and self.filter_empty_gt=True.
In the original implementation, get_subset_by_classes is not related to the flag self.filter_empty_gt and will only be called when the classes is set during initialization no matter test_mode is True or False. This brings ambiguous behavior and potential bugs in many cases. After v2.5.0, if filter_empty_gt=False, no matter whether the classes are specified in a dataset, the dataset will use all the images in the annotations. If filter_empty_gt=True and test_mode=True, no matter whether the classes are specified, the dataset will call ``get_subset_by_classes` to check the images and filter out images containing no GT boxes. Therefore, the users should be responsible for the data filtering/cleaning process for the test dataset.

New Features

  • Test time augmentation for single stage detectors (#3844, #3638)
  • Support to show the name of experiments during training (#3764)
  • Add Shear, Rotate, Translate Augmentation (#3656, #3619, #3687)
  • Add image-only transformations including Constrast, Equalize, Color, and Brightness. (#3643)
  • Support YOLACT (#3456)
  • Support CentripetalNet (#3390)
  • Support PyTorch 1.6 in docker (#3905)

Bug Fixes

  • Fix the bug of training ATSS when there is no ground truth boxes (#3702)
  • Fix the bug of using Focal Loss when there is num_pos is 0 (#3702)
  • Fix the label index mapping in dataset browser (#3708)
  • Fix Mask R-CNN training stuck problem when ther is no positive rois (#3713)
  • Fix the bug of self.rpn_head.test_cfg in RPNTestMixin by using self.rpn_head in rpn head (#3808)
  • Fix deprecated Conv2d from mmcv.ops (#3791)
  • Fix device bug in RepPoints (#3836)
  • Fix SABL validating bug (#3849)
  • Use https://download.openmmlab.com/mmcv/dist/index.html for installing MMCV (#3840)
  • Fix nonzero in NMS for PyTorch 1.6.0 (#3867)
  • Fix the API change bug of PAA (#3883)
  • Fix typo in bbox_flip (#3886)
  • Fix cv2 import error of ligGL.so.1 in Dockerfile (#3891)

Improvements

  • Change to use mmcv.utils.collect_env for collecting environment information to avoid duplicate codes (#3779)
  • Update checkpoint file names to v2.0 models in documentation (#3795)
  • Update tutorials for changing runtime settings (#3778), modifing loss (#3777)
  • Improve the function of simple_test_bboxes in SABL (#3853)
  • Convert mask to bool before using it as img's index for robustness and speedup (#3870)
  • Improve documentation of modules and dataset customization (#3821)

New Contributors

Full Changelog: v2.4.0...v2.5.0

Don't miss a new mmdetection release

NewReleases is sending notifications on new releases.