OpenMMLab Detection Toolbox and Benchmark
projects/
folder, which will be a place for some experimental models/features.projects
projects/
folder, which will be a place for some experimental models/features (#9341)projects
(#9377)pixel_decoder_type
discrimination in MaskFormer Head. (#9176)utils/typing.py
to utils/typing_utils.py
to fix collect_env
error (#9265)inference_detector
(#9144)counts
in COCO’s compressed RLE (#9274)print_config
(#9276)A total of 13 developers contributed to this release.
Thanks @JunyaoHu, @sanbuphy, @Czm369, @Daa98, @jbwang1997, @BIGWangYuDong, @JosonChan1998, @lvhan028, @RunningLeon, @RangiLyu, @Daa98, @ZwwWayne, @hhaAndroid
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v3.0.0rc3...v3.0.0rc4
A total of 11 developers contributed to this release. Thanks @wangjiangben-hw, @motokimura, @AdorableJiang, @BainOuO, @JarvisKevin, @wanghonglie, @zytx121, @BIGWangYuDong, @hhaAndroid, @RangiLyu, @ZwwWayne
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v2.25.3...v2.26.0
ignore_key
of ConcatDataset
for training VOC datasets (#9058)XMLDataset
image size error (#9216)ignore_key
in VOC ConcatDataset
(#9058)box_type
support for DynamicSoftLabelAssigner
(#9179)seg_map_suffix
in BaseDetDataset
(#9088)A total of 13 developers contributed to this release.
Thanks @wanghonglie, @Wwupup, @sanbuphy, @BIGWangYuDong, @liuyanyi, @cxiang26, @jbwang1997, @ZwwWayne, @yuyoujiang, @RangiLyu, @hhaAndroid, @JosonChan1998, @Czm369
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v3.0.0rc2...v3.0.0rc3
A total of 13 developers contributed to this release. Thanks @Zheng-LinXiao, @i-aki-y, @fbagci, @sudoAimer, @Czm369, @DrRyanHuang, @RangiLyu, @wanghonglie, @shinya7y, @Ryoo72, @akshaygulabrao, @gy-7, @Neesky
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v2.25.2...v2.25.3
CrowdHumanDataset
and Metric (#8430)FixShapeResize
to support resize of fixed shape (#8665)ConcatDataset
Import Error (#8909)CircleCI
and readthedoc
build failed (#8980, #8963)out_shape
is different (#8993)Conv2d
weight channels (#8948)albumentations
(#9074)RTMDet
in metafile (#9098)OpenImageMetrics
in the config (#9061)box type
(#8658)BitmapMasks
and PolygonMasks
(#9006)robustness_eval.py
and print_config
(#8452)ConfigDict
and dict
in dense_heads
(#8942)Normalize
transform (#8913)PackDetInputs
(#8982)A total of 13 developers contributed to this release.
Thanks @RangiLyu, @jbwang1997, @wanghonglie, @Chan-Sun, @RangeKing, @chhluo, @MambaWong, @yuyoujiang, @hhaAndroid, @sltlls, @Nioolek, @ZwwWayne, @wufan-tb
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v3.0.0rc1...v3.0.0rc2
NumClassCheckHook
bug when model is wrapped (#8794)FSAF
and RepPoints
Head (#8813)box type
(#8625)SemiBaseDetector
and SoftTeacher
(#8786)analyze_results.py
, analyze_logs.py
and loading.py
(#8430, #8402, #8784)test.py
(#8814)DetLocalVisualizer._draw_instances
(#8830)floordiv
warning in SOLO
(#8738)A total of 16 developers contributed to this release.
Thanks @ZwwWayne, @jbwang1997, @Czm369, @ice-tong, @Zheng-LinXiao, @chhluo, @RangiLyu, @liuyanyi, @wanghonglie, @levan92, @JiayuXu0, @nye0, @hhaAndroid, @xin-li-67, @shuxp, @zytx121
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v3.0.0rc0...v3.0.0rc1
BboxOverlaps2D
(#8512)A total of 16 developers contributed to this release. Thanks @daquexian, @lyq10085, @ZwwWayne, @fbagci, @BubblyYi, @fathomson, @ShunchiZhang, @ceasona, @Happylkx, @normster, @chhluo, @Lehsuby, @JiayuXu0, @Nourollah, @hewanru-bit, @RangiLyu
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v2.25.1...v2.25.2
We are excited to announce the release of MMDetection 3.0.0rc0. MMDet 3.0.0rc0 is the first version of MMDetection 3.x, a part of the OpenMMLab 2.0 projects. Built upon the new training engine, MMDet 3.x unifies the interfaces of the dataset, models, evaluation, and visualization with faster training and testing speed. It also provides a general semi-supervised object detection framework and strong baselines.
New engine. MMDet 3.x is based on MMEngine, which provides a universal and powerful runner that allows more flexible customizations and significantly simplifies the entry points of high-level interfaces.
Unified interfaces. As a part of the OpenMMLab 2.0 projects, MMDet 3.x unifies and refactors the interfaces and internal logic of training, testing, datasets, models, evaluation, and visualization. All the OpenMMLab 2.0 projects share the same design in those interfaces and logic to allow the emergence of multi-task/modality algorithms.
Faster speed. We optimize the training and inference speed for common models and configurations, achieving faster or similar speed in comparison with Detection2. Model details of benchmark will be updated in this note.
General semi-supervised object detection. Benefitting from the unified interfaces, we support a general semi-supervised learning framework that works with all the object detectors supported in MMDet 3.x. Please refer to semi-supervised object detection for details.
Strong baselines. We release strong baselines of many popular models to enable fair comparisons among state-of-the-art models.
New features and algorithms:
More documentation and tutorials. We add a bunch of documentation and tutorials to help users get started more smoothly. Read it here.
MMDet 3.x has gone through big changes to have better design, higher efficiency, more flexibility, and more unified interfaces. Besides the changes in API, we briefly list the major breaking changes in this section. We will update the migration guide to provide complete details and migration instructions. Users can also refer to the API doc for more details.
mmcv
is the version that provides pre-built CUDA operators and mmcv-lite
does not since MMCV 2.0.0rc0, while mmcv-full
has been deprecated since 2.0.0rc0.mmdet.train.apis
and tools/train.py
. Those codes have been migrated into MMEngine. Please refer to the migration guide of Runner in MMEngine for more details.The Dataset classes implemented in MMDet 3.x all inherit from the BaseDetDataset
, which inherits from the BaseDataset in MMEngine. In addition to the changes in interfaces, there are several changes in Dataset in MMDet 3.x.
The data transforms in MMDet 3.x all inherits from BaseTransform
in MMCV>=2.0.0rc0, which defines a new convention in OpenMMLab 2.0 projects.
Besides the interface changes, there are several changes listed below:
Resize
) are decomposed into several transforms to simplify and clarify the usages.Resize
in MMDet 3.x and MMSeg 1.x will resize the image in the exact same manner given the same arguments.The models in MMDet 3.x all inherit from BaseModel
in MMEngine, which defines a new convention of models in OpenMMLab 2.0 projects.
Users can refer to the tutorial of the model in MMengine for more details.
Accordingly, there are several changes as the following:
inputs
and data_samples
, where inputs
contains model inputs like a list of image tensors, and data_samples
contains other information of the current data sample such as ground truths, region proposals, and model predictions. In this way, different tasks in MMDet 3.x can share the same input arguments, which makes the models more general and suitable for multi-task learning and some flexible training paradigms like semi-supervised learning.forward_train
, forward_test
, simple_test
, and aug_test
to deal with different model forward logics. In MMDet 3.x and OpenMMLab 2.0, the forward function has three modes: 'loss', 'predict', and 'tensor' for training, inference, and tracing or other purposes, respectively.
The forward function calls self.loss
, self.predict
, and self._forward
given the modes 'loss', 'predict', and 'tensor', respectively.The evaluation in MMDet 2.x strictly binds with the dataset. In contrast, MMDet 3.x decomposes the evaluation from the dataset so that all the detection datasets can evaluate with COCO AP and other metrics implemented in MMDet 3.x. MMDet 3.x mainly implements corresponding metrics for each dataset, which are manipulated by Evaluator to complete the evaluation. Users can build an evaluator in MMDet 3.x to conduct offline evaluation, i.e., evaluate predictions that may not produce in MMDet 3.x with the dataset as long as the dataset and the prediction follow the dataset conventions. More details can be found in the tutorial in mmengine.
The functions of visualization in MMDet 2.x are removed. Instead, in OpenMMLab 2.0 projects, we use Visualizer to visualize data. MMDet 3.x implements DetLocalVisualizer
to allow visualization of ground truths, model predictions, feature maps, etc., at any place. It also supports sending the visualization data to any external visualization backends such as Tensorboard.
HorizontalBoxes
and BaseBoxes
to encapsulate different kinds of bounding boxes. We are migrating to use data structures of boxes to replace the use of pure tensor boxes. This will unify the usages of different kinds of bounding boxes in MMDet 3.x and MMRotate 1.x to simplify the implementation and reduce redundant codes.We list several planned changes of MMDet 3.0.0rc0 so that the community could more comprehensively know the progress of MMDet 3.x. Feel free to create a PR, issue, or discussion if you are interested, have any suggestions and feedback, or want to participate.
tools
directory will have their python interfaces so that they can be used in Jupyter Notebook, Colab, and downstream libraries.DetWandbVisualizer
and maybe a hook are planned to fully migrate those functionalities from MMDet 2.x.A total of 11 developers contributed to this release. Thanks @shuxp, @wanghonglie, @Czm369, @BIGWangYuDong, @zytx121, @jbwang1997, @chhluo, @jshilong, @RangiLyu, @hhaAndroid, @ZwwWayne
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v2.25.0...v3.0.0rc0
WandbLoggerHook
error (#8273)mim
to extras_require
in setup.py (#8194)mim
in CI (#8230 & #8240)maskformer
to be compatible when cfg is a dictionary (#8263)Pillow
version check in CI (#8229)A total of 15 developers contributed to this release. Thanks @ZwwWayne, @ayulockin, @Mxbonn, @p-mishra1, @Youth-Got, @MiXaiLL76, @chhluo, @jbwang1997, @atinfinity, @shinya7y, @duanzhihua, @STLAND-admin, @BIGWangYuDong, @grimoire, @xiaoyuan0203
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v2.25.0...v2.25.1
WandbLogger
hookRename config files of Mask2Former (#7571)
before v2.25.0 | after v2.25.0 |
|
|
---|
interval != 1
(#7784)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
act_cfg
in SwinTransformer
(#7794)markdownlint
with mdformat
for avoiding installing ruby (#8009)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
Full Changelog: https://github.com/open-mmlab/mmdetection/compare/v2.24.1...v2.25.0