## Motivation
Based on the ImageNet dataset, we propose the ImageNet-S dataset has 1.2 million training images and 50k high-quality semantic segmentation annotations to support unsupervised/semi-supervised semantic segmentation on the ImageNet dataset.
paper:
Large-scale Unsupervised Semantic Segmentation (TPAMI 2022)
[Paper link](https://arxiv.org/abs/2106.03149)
## Modification
1. Support imagenet-s dataset and its' configuration
2. Add the dataset preparation in the documentation
add custom dataset
add face occlusion dataset
add config file for occlusion face
fix format
update prepare.md
formatting
formatting
fix typo error for doc
update downloading process
Update dataset_prepare.md
PR fix version to original repository. change to original repository.
* upload original backbone and configs
* ConvNext Refactor
* ConvNext Refactor
* convnext customization refactor with mmseg style
* convnext customization refactor with mmseg style
* add ade20k_640x640.py
* upload files for training
* delete dist_optimizer_hook and remove layer_decay_optimizer_constructor
* check max(out_indices) < num_stages
* add unittest
* fix lint error
* use MMClassification backbone
* fix bugs in base_1k
* add mmcls in requirements/mminstall.txt
* add mmcls in requirements/mminstall.txt
* fix drop_path_rate and layer_scale_init_value
* use logger.info instead of print
* add mmcls in runtime.txt
* fix f string && delete
* add doctring in LearningRateDecayOptimizerConstructor and fix mmcls version in requirements
* fix typo in LearningRateDecayOptimizerConstructor
* use ConvNext models in unit test for LearningRateDecayOptimizerConstructor
* add unit test
* fix typo
* fix typo
* add layer_wise and fix redundant backbone.downsample_norm in it
* fix unit test
* give a ground truth lr_scale and weight_decay
* upload models and readme
* delete 'backbone.stem_norm' and 'backbone.downsample_norm' in get_num_layer()
* fix unit test and use mmcls url
* update md2yml.py and metafile
* fix typo
* support iSAID aerial dataset
* Update and rename docs/dataset_prepare.md to 博士/dataset_prepare.md
* Update dataset_prepare.md
* fix typo
* fix typo
* fix typo
* remove imgviz
* fix wrong order in annotation name
* upload models&logs
* upload models&logs
* add load_annotations
* fix unittest coverage
* fix unittest coverage
* fix correct crop size in config
* fix iSAID unit test
* fix iSAID unit test
* fix typos
* fix wrong crop size in readme
* use smaller figure as test data
* add smaller dataset in test data
* add blank in docs
* use 0 bytes pseudo data
* add footnote and comments for crop size
* change iSAID to isaid and add default value in it
* change iSAID to isaid in _base_
Co-authored-by: MengzhangLI <mcmong@pku.edu.cn>
* update LoveDA dataset api
* revised lint errors in dataset_prepare.md
* revised lint errors in loveda.py
* revised lint errors in loveda.py
* revised lint errors in dataset_prepare.md
* revised lint errors in dataset_prepare.md
* checked with isort and yapf
* checked with isort and yapf
* checked with isort and yapf
* Revert "checked with isort and yapf"
This reverts commit 686a51d9
* Revert "checked with isort and yapf"
This reverts commit b877e121bb2935ceefc503c09675019489829feb.
* Revert "revised lint errors in dataset_prepare.md"
This reverts commit 2289e27c
* Revert "checked with isort and yapf"
This reverts commit 159db2f8
* Revert "checked with isort and yapf"
This reverts commit 159db2f8
* add configs & fix bugs
* update new branch
* upload models&logs and add format-only
* change pretraied model path of HRNet
* fix the errors in dataset_prepare.md
* fix the errors in dataset_prepare.md and configs in loveda.py
* change the description in docs_zh-CN/dataset_prepare.md
* use init_cfg
* fix test converage
* adding pseudo loveda dataset
* adding pseudo loveda dataset
* adding pseudo loveda dataset
* adding pseudo loveda dataset
* adding pseudo loveda dataset
* adding pseudo loveda dataset
* Update docs/dataset_prepare.md
Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
* Update docs_zh-CN/dataset_prepare.md
Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
* Update docs_zh-CN/dataset_prepare.md
Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
* Delete unused lines of unittest and Add docs
* add convert .py file
* add downloading links from zenodo
* move place of LoveDA and Cityscapes in doc
* move place of LoveDA and Cityscapes in doc
Co-authored-by: MengzhangLI <mcmong@pku.edu.cn>
Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
* Support progressive test with fewer memory cost.
* Temp code
* Using processor to refactor evaluation workflow.
* refactor eval hook.
* Fix process bar.
* Fix middle save argument.
* Modify some variable name of dataset evaluate api.
* Modify some viriable name of eval hook.
* Fix some priority bugs of eval hook.
* Depreciated efficient_test.
* Fix training progress blocked by eval hook.
* Depreciated old test api.
* Fix test api error.
* Modify outer api.
* Build a sampler test api.
* TODO: Refactor format_results.
* Modify variable names.
* Fix num_classes bug.
* Fix sampler index bug.
* Fix grammaly bug.
* Support batch sampler.
* More readable test api.
* Remove some command arg and fix eval hook bug.
* Support format-only arg.
* Modify format_results of datasets.
* Modify tool which use test apis.
* support cityscapes eval
* fixed cityscapes
* 1. Add comments for batch_sampler;
2. Keep eval hook api same and add deprecated warning;
3. Add doc string for dataset.pre_eval;
* Add efficient_test doc string.
* Modify test tool to compat old version.
* Modify eval hook to compat with old version.
* Modify test api to compat old version api.
* Sampler explanation.
* update warning
* Modify deploy_test.py
* compatible with old output, add efficient test back
* clear logic of exclusive
* Warning about efficient_test.
* Modify format_results save folder.
* Fix bugs of format_results.
* Modify deploy_test.py.
* Update doc
* Fix deploy test bugs.
* Fix custom dataset unit tests.
* Fix dataset unit tests.
* Fix eval hook unit tests.
* Fix some imcompatible.
* Add pre_eval argument for eval hooks.
* Update eval hook doc string.
* Make pre_eval false in default.
* Add unit tests for dataset format_results.
* Fix some comments and bc-breaking bug.
* Fix pre_eval set cfg field.
* Remove redundant codes.
Co-authored-by: Jiarui XU <xvjiarui0826@gmail.com>
* [Feature]Segformer re-implementation
* Using act_cfg and norm_cfg to control activation and normalization
* Split this PR into several little PRs
* Fix lint error
* Remove SegFormerHead
* [Feature] Add segformer decode head and related train config
* Add ade20K trainval support for segformer
1. Add related train and val configs;
2. Add AlignedResize;
* Set arg: find_unused_parameters = True
* parameters init refactor
* 1. Refactor segformer backbone parameters init;
2. Remove rebundant functions and unit tests;
* Remove rebundant codes
* Replace Linear Layer to 1X1 Conv
* Use nn.ModuleList to refactor segformer head.
* Remove local to_xtuple
* 1. Remove rebundant codes;
2. Modify module name;
* Refactor the backbone of segformer using mmcv.cnn.bricks.transformer.py
* Fix some code logic bugs.
* Add mit_convert.py to match pretrain keys of segformer.
* Resolve some comments.
* 1. Add some assert to ensure right params;
2. Support flexible peconv position;
* Add pe_index assert and fix unit test.
* 1. Add doc string for MixVisionTransformer;
2. Add some unit tests for MixVisionTransformer;
* Use hw_shape to pass shape of feature map.
* 1. Fix doc string of MixVisionTransformer;
2. Simplify MixFFN;
3. Modify H, W to hw_shape;
* Add more unit tests.
* Add doc string for shape convertion functions.
* Add some unit tests to improve code coverage.
* Fix Segformer backbone pretrain weights match bug.
* Modify configs of segformer.
* resolve the shape convertion functions doc string.
* Add pad_to_patch_size arg.
* Support progressive test with fewer memory cost.
* Modify default value of pad_to_patch_size arg.
* Temp code
* Using processor to refactor evaluation workflow.
* refactor eval hook.
* Fix process bar.
* Fix middle save argument.
* Modify some variable name of dataset evaluate api.
* Modify some viriable name of eval hook.
* Fix some priority bugs of eval hook.
* Fix some bugs about model loading and eval hook.
* Add ade20k 640x640 dataset.
* Fix related segformer configs.
* Depreciated efficient_test.
* Fix training progress blocked by eval hook.
* Depreciated old test api.
* Modify error patch size.
* Fix pretrain of mit_b0
* Fix the test api error.
* Modify dataset base config.
* Fix test api error.
* Modify outer api.
* Build a sampler test api.
* TODO: Refactor format_results.
* Modify variable names.
* Fix num_classes bug.
* Fix sampler index bug.
* Fix grammaly bug.
* Add part of benchmark results.
* Support batch sampler.
* More readable test api.
* Remove some command arg and fix eval hook bug.
* Support format-only arg.
* Modify format_results of datasets.
* Modify tool which use test apis.
* Update readme.
* Update readme of segformer.
* Updata readme of segformer.
* Update segformer readme and fix segformer mit_b4.
* Update readme of segformer.
* Clean AlignedResize related config.
* Clean code from pr #709
* Clean code from pr #709
* Add 512x512 segformer_mit-b5.
* Fix lint.
* Fix some segformer head bugs.
* Add segformer unit tests.
* Replace AlignedResize to ResizeToMultiple.
* Modify readme of segformer.
* Fix bug of ResizeToMultiple.
* Add ResizeToMultiple unit tests.
* Resolve conflict.
* Simplify the implementation of ResizeToMultiple.
* Update test results.
* Fix multi-scale test error when resize_ratio=1.75 and input size=640x640.
* Update segformer results.
* Update Segformer results.
* Fix some url bugs and pipelines bug.
* Move ckpt convertion to tools.
* Add segformer official pretrain weights usage.
* Clean redundant codes.
* Remove redundant codes.
* Unfied format.
* Add description for segformer converter.
* Update workers.
* add config
* add cityscapes config
* add default value to docstring
* fix lint
* add deit-s and deit-b
* add readme
* add eps at norm_cfg
* add drop_path_rate experiment
* add deit case at init_weight
* add upernet result
* update result and add upernet 160k config
* update upernet result and fix settings
* Update iters number
* update result and delete some configs
* fix import error
* fix drop_path_rate
* update result and restore config
* update benchmark result
* remove cityscapes exp
* remove neck
* neck exp
* add more configs
* fix init error
* fix ffn setting
* update result
* update results
* update result
* update results and fill table
* delete or rename configs
* fix link delimiter
* rename configs and fix link
* rename neck to mln
* Adjust vision transformer backbone architectures;
* Add DropPath, trunc_normal_ for VisionTransformer implementation;
* Add class token buring intermediate period and remove it during final period;
* Fix some parameters loss bug;
* * Store intermediate token features and impose no processes on them;
* Remove class token and reshape entire token feature from NLC to NCHW;
* Fix some doc error
* Add a arg for VisionTransformer backbone to control if input class token into transformer;
* Add stochastic depth decay rule for DropPath;
* * Fix output bug when input_cls_token=False;
* Add related unit test;
* Re-implement of SETR
* Add two head -- SETRUPHead (Naive, PUP) & SETRMLAHead (MLA);
* * Modify some docs of heads of SETR;
* Add MLA auxiliary head of SETR;
* * Modify some arg of setr heads;
* Add unit test for setr heads;
* * Add 768x768 cityscapes dataset config;
* Add Backbone: SETR -- Backbone: MLA, PUP, Naive;
* Add SETR cityscapes training & testing config;
* * Fix the low code coverage of unit test about heads of setr;
* Remove some rebundant error capture;
* * Add pascal context dataset & ade20k dataset config;
* Modify auxiliary head relative config;
* Modify folder structure.
* add setr
* modify vit
* Fix the test_cfg arg position;
* Fix some learning schedule bug;
* optimize setr code
* Add arg: final_reshape to control if converting output feature information from NLC to NCHW;
* Fix the default value of final_reshape;
* Modify arg: final_reshape to arg: out_shape;
* Fix some unit test bug;
* Add MLA neck;
* Modify setr configs to add MLA neck;
* Modify MLA decode head to remove rebundant structure;
* Remove some rebundant files.
* * Fix the code style bug;
* Remove some rebundant files;
* Modify some unit tests of SETR;
* Ignoring CityscapesCoarseDataset and MapillaryDataset.
* Fix the activation function loss bug;
* Fix the img_size bug of SETR_PUP_ADE20K
* * Fix the lint bug of transformers.py;
* Add mla neck unit test;
* Convert vit of setr out shape from NLC to NCHW.
* * Modify Resize action of data pipeline;
* Fix deit related bug;
* Set find_unused_parameters=False for pascal context dataset;
* Remove arg: find_unused_parameters which is False by default.
* Error auxiliary head of PUP deit
* Remove the minimal restrict of slide inference.
* Modify doc string of Resize
* Seperate this part of code to a new PR #544
* * Remove some rebundant codes;
* Modify unit tests of SETR heads;
* Fix the tuple in_channels of mla_deit.
* Modify code style
* Move detailed definition of auxiliary head into model config dict;
* Add some setr config for default cityscapes.py;
* Fix the doc string of SETR head;
* Modify implementation of SETR Heads
* Remove setr aux head and use fcn head to replace it;
* Remove arg: img_size and remove last interpolate op of heads;
* Rename arg: conv3x3_conv1x1 to kernel_size of SETRUPHead;
* non-square input support for setr heads
* Modify config argument for above commits
* Remove norm_layer argument of SETRMLAHead
* Add mla_align_corners for MLAModule interpolate
* [Refactor]Refactor of SETRMLAHead
* Modify Head implementation;
* Modify Head unit test;
* Modify related config file;
* [Refactor]MLA Neck
* Fix config bug
* [Refactor]SETR Naive Head and SETR PUP Head
* [Fix]Fix the lack of arg: act_cfg and arg: norm_cfg
* Fix config error
* Refactor of SETR MLA, Naive, PUP heads.
* Modify some attribute name of SETR Heads.
* Modify setr configs to adapt new vit code.
* Fix trunc_normal_ bug
* Parameters init adjustment.
* Remove redundant doc string of SETRUPHead
* Fix pretrained bug
* [Fix] Fix vit init bug
* Add some vit unit tests
* Modify module import
* Remove norm from PatchEmbed
* Fix pretrain weights bug
* Modify pretrained judge
* Fix some gradient backward bugs.
* Add some unit tests to improve code cov
* Fix init_weights of setr up head
* Add DropPath in FFN
* Finish benchmark of SETR
1. Add benchmark information into README.MD of SETR;
2. Fix some name bugs of vit;
* Remove DropPath implementation and use DropPath from mmcv.
* Modify out_indices arg
* Fix out_indices bug.
* Remove cityscapes base dataset config.
Co-authored-by: sennnnn <201730271412@mail.scut.edu.cn>
Co-authored-by: CuttlefishXuan <zhaoxinxuan1997@gmail.com>
* Add support for Pascal Context 59 classes (#459)
* Create PascalContextDataset59 class in mmseg/datasets/pascal_context.py;
* Set reduce_zero_label=True for train_pipeline and PascalContextDataset59;
* Add some configs for Pascal-Context 59 classes training and testing;
* Try to solve the problem about "fence(IoU)=nan grass(IoU)=0";
* Continue(1): Try to solve the problem about "fence(IoU)=nan grass(IoU)=0";
* ignore files and folders named tempxxx;
* Continue(2): Try to solve the problem about "fence(IoU)=nan grass(IoU)=0";
* Modify the calculation of IoU;
* Modify the CLASSES order of PascalContextDataset;
* Add "fcn", "deeplabv3", "deeplabv3+", "pspnet" config file for model training based on PascalContextDataset59;
Add some ignore items in ".gitignore";
* fix the bug "test_cfg specified in both outer field and model field " of pspnet config file;
* * Clean unnecessary codes;
* Add weighs link, config link, log link and evaluation results about PascalContextDataset59 in README.md
* Add command line argument: "-p | --port", this arg can change the transmit port when you transmit data to distributed machine.
* * Remove rebundant config files;
* Remove "-p|--port" command argument;
Co-authored-by: Jiarui XU <xvjiarui0826@gmail.com>
* Add Pascal Context to mmsegmentation
* Add benchmark result to Pascal Context
* fix mmcv version
* fix code syntax
* fix code syntax again
* Update mmseg/models/segmentors/encoder_decoder.py
update hint
Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>
* update comment
* fix pascal context model path
* fix model path mistake again
* fix model path mistake again
* fix model path mistakes again
Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>