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

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

Highlights

  • Support dedicated WandbLogger hook
  • Support ConvNeXt, DDOD, SOLOv2
  • Support Mask2Former for instance segmentation
  • Rename config files of Mask2Former

Backwards incompatible changes

  • Rename config files of Mask2Former (#7571)

    before v2.25.0 after v2.25.0
    • mask2former_xxx_coco.py represents config files for panoptic segmentation.
    • mask2former_xxx_coco.py represents config files for instance segmentation.
    • mask2former_xxx_coco-panoptic.py represents config files for panoptic segmentation.

New Features

Bug Fixes

  • Enable YOLOX training on different devices (#7912)
  • Fix the log plot error when evaluation with interval != 1 (#7784)
  • Fix RuntimeError of HTC (#8083)

Improvements

  • Support dedicated WandbLogger hook (#7459)

    Users can set

    cfg.log_config.hooks = [
      dict(type='MMDetWandbHook',
           init_kwargs={'project': 'MMDetection-tutorial'},
           interval=10,
           log_checkpoint=True,
           log_checkpoint_metadata=True,
           num_eval_images=10)]

    in the config to use MMDetWandbHook. Example can be found in this colab tutorial

  • Add AvoidOOM to avoid OOM (#7434, #8091)

    Try to use AvoidCUDAOOM to avoid GPU out of memory. It will first retry after calling torch.cuda.empty_cache(). If it still fails, it will then retry by converting the type of inputs to FP16 format. If it still fails, it will try to copy inputs from GPUs to CPUs to continue computing. Try AvoidOOM in code to make the code continue to run when GPU memory runs out:

    from mmdet.utils import AvoidCUDAOOM
    
    output = AvoidCUDAOOM.retry_if_cuda_oom(some_function)(input1, input2)

    Users can also try AvoidCUDAOOM as a decorator to make the code continue to run when GPU memory runs out:

    from mmdet.utils import AvoidCUDAOOM
    
    @AvoidCUDAOOM.retry_if_cuda_oom
    def function(*args, **kwargs):
        ...
        return xxx
  • Support reading gpu_collect from cfg.evaluation.gpu_collect (#7672)

  • Speedup the Video Inference by Accelerating data-loading Stage (#7832)

  • Support replacing the ${key} with the value of cfg.key (#7492)

  • Accelerate result analysis in analyze_result.py. The evaluation time is speedup by 10 ~ 15 times and only tasks 10 ~ 15 minutes now. (#7891)

  • Support to set block_dilations in DilatedEncoder (#7812)

  • Support panoptic segmentation result analysis (#7922)

  • Release DyHead with Swin-Large backbone (#7733)

  • Documentations updating and adding

    • Fix wrong default type of act_cfg in SwinTransformer (#7794)
    • Fix text errors in the tutorials (#7959)
    • Rewrite the installation guide (#7897)
    • Useful hooks (#7810)
    • Fix heading anchor in documentation (#8006)
    • Replace markdownlint with mdformat for avoiding installing ruby (#8009)

Contributors

A total of 20 developers contributed to this release.

Thanks @ZwwWayne, @DarthThomas, @solyaH, @LutingWang, @chenxinfeng4, @Czm369, @Chenastron, @chhluo, @austinmw, @Shanyaliux @hellock, @Y-M-Y, @jbwang1997, @hhaAndroid, @Irvingao, @zhanggefan, @BIGWangYuDong, @Keiku, @PeterVennerstrom, @ayulockin

New Contributors

Full Changelog: v2.24.1...v2.25.0

Don't miss a new mmdetection release

NewReleases is sending notifications on new releases.