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

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

Highlights

Backwards Incompatible Changes

MMDetection is going through big refactoring for more general and convenient usages during the releases from v2.12.0 to v2.15.0 (maybe longer).
In v2.12.0 MMDetection inevitably brings some BC-breakings including the MMCV dependency, model initialization, model registry, and mask AP evaluation.

  • MMCV version. MMDetection v2.12.0 relies on the newest features in MMCV 1.3.3, including BaseModule for unified parameter initialization, model registry, and the CUDA operator MultiScaleDeformableAttn for Deformable DETR. Note that MMCV 1.3.2 already contains all the features used by MMDet but has known issues. Therefore, we recommend users to skip MMCV v1.3.2 and use v1.3.2, though v1.3.2 might work for most of the cases.
  • Unified model initialization (#4750). To unify the parameter initialization in OpenMMLab projects, MMCV supports BaseModule that accepts init_cfg to allow the modules' parameters to be initialized in a flexible and unified manner. Now the users need to explicitly call model.init_weights() in the training script to initialize the model (as in here, previously this was handled by the detector. The models in MMDetection have been re-benchmarked to ensure accuracy in PR #4750. The downstream projects should update their code accordingly to use MMDetection v2.12.0.
  • Unified model registry (#5059). To easily use backbones implemented in other OpenMMLab projects, MMDetection migrates to inherit the model registry created in MMCV (#760). In this way, as long as the backbone is supported in an OpenMMLab project and that project also uses the registry in MMCV, users can use that backbone in MMDetection by simply modifying the config without copying the code of that backbone into MMDetection.
  • Mask AP evaluation (#4898). In the previous version, the areas of masks are calculated through the bounding boxes when calculating the mask AP of small, medium, and large instances. To really use the area of masks, we pop the key bbox during mask AP calculation. This change does not affect the overall mask AP evaluation and aligns the mask AP of similar models in other repos like Detectron2.

New Features

Improvements

  • Use MMCV MODEL_REGISTRY (#5059)
  • Unified parameter initialization for more flexible usage (#4750)
  • Rename variable names and fix docstring in anchor head (#4883)
  • Support training with empty GT in Cascade RPN (#4928)
  • Add more details of usage of test_robustness in documentation (#4917)
  • Changing to use pycocotools instead of mmpycocotools to fully support Detectron2 and MMDetection in one environment (#4939)
  • Update torch serve dockerfile to support dockers of more versions (#4954)
  • Add check for training with the single class dataset (#4973)
  • Refactor transformer and DETR Head (#4763)
  • Update FPG model zoo (#5079)
  • More accurate mask AP of small/medium/large instances (#4898)

Bug Fixes

  • Fix bug in mean_ap.py when calculating mAP by 11 points (#4875)
  • Fix error when key meta is not in old checkpoints (#4936)
  • Fix hanging bug when training with empty GT in VFNet, GFL, and FCOS by changing the place of reduce_mean (#4923, #4978, #5058)
  • Fix asyncronized inference error and provide related demo (#4941)
  • Fix IoU losses dimensionality unmatch error (#4982)
  • Fix torch.randperm whtn using PyTorch 1.8 (#5014)
  • Fix empty bbox error in mask_head when using CARAFE (#5062)
  • Fix supplement_mask bug when there are zero-size RoIs (#5065)
  • Fix testing with empty rois in RoI Heads (#5081)

New Contributors

Full Changelog: v2.11.0...v2.12.0

Don't miss a new mmdetection release

NewReleases is sending notifications on new releases.