This section is included if you are curious about what has changed between MMSeg 0.x and 1.x.
MMSegmentation 0.x | MMSegmentation 1.x |
mmseg.api | mmseg.api |
- mmseg.core | + mmseg.engine |
mmseg.datasets | mmseg.datasets |
mmseg.models | mmseg.models |
- mmseg.ops | + mmseg.structure |
mmseg.utils | mmseg.utils |
+ mmseg.evaluation | |
+ mmseg.registry | |
In OpenMMLab 2.0, core
package has been removed. hooks
and optimizers
of core
are moved in mmseg.engine
, and evaluation
in core
is mmseg.evaluation currently.
ops
package included encoding
and wrappers
, which are moved in mmseg.models.utils
.
OpenMMLab 2.0 adds a new foundational library for training deep learning, MMEngine. It servers as the training engine of all OpenMMLab codebases.
engine
package of mmseg is some customized modules for semantic segmentation task, like SegVisualizationHook
which works for visualizing segmentation mask.
In OpenMMLab 2.0, we designed data structure for computer vision task, and in mmseg, we implements SegDataSample
in structure
package.
We move all evaluation metric in mmseg.evaluation
.
We moved registry implementations for all kinds of modules in MMSegmentation in mmseg.registry
.
OpenMMLab 2.0 tries to support unified interface for multitasking of Computer Vision, and releases much stronger Runner
, so MMSeg 1.x removed modules in train.py
and test.py
renamed init_segmentor
to init_model
and inference_segmentor
to inference_model
.
Here is the changes of mmseg.apis
:
Function | Changes |
---|---|
init_segmentor |
Renamed to init_model |
inference_segmentor |
Rename to inference_model |
show_result_pyplot |
Implemented based on SegLocalVisualizer |
train_model |
Removed, use runner.train to train. |
multi_gpu_test |
Removed, use runner.test to test. |
single_gpu_test |
Removed, use runner.test to test. |
set_random_seed |
Removed, use mmengine.runner.set_random_seed . |
init_random_seed |
Removed, use mmengine.dist.sync_random_seed . |
OpenMMLab 2.0 defines the BaseDataset
to function and interface of dataset, and MMSegmentation 1.x also follow this protocol and defines the BaseSegDataset
inherited from BaseDataset
. MMCV 2.x collects general data transforms for multiple tasks e.g. classification, detection, segmentation, so MMSegmentation 1.x uses these data transforms and removes them from mmseg.datasets.
Packages/Modules | Changes |
---|---|
mmseg.pipelines |
Moved in mmcv.transforms |
mmseg.sampler |
Moved in mmengine.dataset.sampler |
CustomDataset |
Renamed to BaseSegDataset and inherited from BaseDataset in MMEngine |
DefaultFormatBundle |
Replaced with PackSegInputs |
LoadImageFromFile |
Moved in mmcv.transforms.LoadImageFromFile |
LoadAnnotations |
Moved in mmcv.transforms.LoadAnnotations |
Resize |
Moved in mmcv.transforms and split into Resize , RandomResize and RandomChoiceResize |
RandomFlip |
Moved in mmcv.transforms.RandomFlip |
Pad |
Moved in mmcv.transforms.Pad |
Normalize |
Moved in mmcv.transforms.Normalize |
Compose |
Moved in mmcv.transforms.Compose |
ImageToTensor |
Moved in mmcv.transforms.ImageToTensor |
models
has not changed a lot, just added the encoding
and wrappers
from previous mmseg.ops