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
- Support ConvNeXt (#7281)
- Support DDOD (#7279)
- Support SOLOv2 (#7441)
- Support Mask2Former for instance segmentation (#7571, #8032)
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 callingtorch.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
fromcfg.evaluation.gpu_collect
(#7672) -
Speedup the Video Inference by Accelerating data-loading Stage (#7832)
-
Support replacing the
${key}
with the value ofcfg.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
inDilatedEncoder
(#7812) -
Support panoptic segmentation result analysis (#7922)
-
Release DyHead with Swin-Large backbone (#7733)
-
Documentations updating and adding
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
- @DarthThomas made their first contribution in #7794
- @solyaH made their first contribution in #7912
- @chenxinfeng4 made their first contribution in #7832
- @Chenastron made their first contribution in #7959
- @austinmw made their first contribution in #7937
- @Shanyaliux made their first contribution in #7812
- @Irvingao made their first contribution in #7279
- @zhanggefan made their first contribution in #7441
- @ayulockin made their first contribution in #7459
Full Changelog: v2.24.1...v2.25.0