5.0 KiB
Package structures changes
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 | |
Removed packages
mmseg.core
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.
mmseg.ops
ops
package included encoding
and wrappers
, which are moved in mmseg.models.utils
.
Added packages
mmseg.engine
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.
mmseg.structure
In OpenMMLab 2.0, we designed data structure for computer vision task, and in mmseg, we implements SegDataSample
in structure
package.
mmseg.evaluation
We move all evaluation metric in mmseg.evaluation
.
mmseg.registry
We moved registry implementations for all kinds of modules in MMSegmentation in mmseg.registry
.
Modified packages
mmseg.apis
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_segmentor |
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 . |
mmseg.datasets
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 |
Renamed to mmseg.transforms |
mmseg.sampler |
Move in mmengine.dataset.sampler |
CustomDataset |
Renamed to BaseDataset and inherited from BaseDataset in MMEngine |
DefaultFormatBundle |
Replaced with PackSegInputs |
LoadImageFromFile |
Move in mmcv.transforms.LoadImageFromFile |
LoadAnnotations |
Moved in mmcv.transforms.LoadAnnotations |
Resize |
Moved in mmcv.transforms and split into Resize , RandomResize and RandomChoiseResize |
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 |
mmseg.models
models
has not changed a lot, just added the encoding
and wrappers
from previous mmseg.ops