23 Commits

Author SHA1 Message Date
Pan Zhang
990063e59b
[Feature] Support DDRNet (#2855)
Thanks for your contribution and we appreciate it a lot. The following
instructions would make your pull request more healthy and more easily
get feedback. If you do not understand some items, don't worry, just
make the pull request and seek help from maintainers.

## Motivation

Support DDRNet
Paper: [Deep Dual-resolution Networks for Real-time and Accurate
Semantic Segmentation of Road Scenes](https://arxiv.org/pdf/2101.06085)
official Code: https://github.com/ydhongHIT/DDRNet


There is already a PR
https://github.com/open-mmlab/mmsegmentation/pull/1722 , but it has been
inactive for a long time.

## Current Result

### Cityscapes

#### inference with converted official weights

| Method | Backbone      | mIoU(official) | mIoU(converted weight) |
| ------ | ------------- | -------------- | ---------------------- |
| DDRNet | DDRNet23-slim | 77.8           | 77.84                  |
| DDRNet | DDRNet23 | 79.5 | 79.53 |

#### training with converted pretrained backbone

| Method | Backbone | Crop Size | Lr schd | Inf time(fps) | Device |
mIoU | mIoU(ms+flip) | config | download |
| ------ | ------------- | --------- | ------- | ------- | -------- |
----- | ------------- | ------------ | ------------ |
| DDRNet | DDRNet23-slim | 1024x1024 | 120000 | 85.85 | RTX 8000 | 77.85
| 79.80 |
[config](https://github.com/whu-pzhang/mmsegmentation/blob/ddrnet/configs/ddrnet/ddrnet_23-slim_in1k-pre_2xb6-120k_cityscapes-1024x1024.py)
| model \| log |
| DDRNet | DDRNet23 | 1024x1024 | 120000 | 33.41 | RTX 8000 | 79.53 |
80.98 |
[config](https://github.com/whu-pzhang/mmsegmentation/blob/ddrnet/configs/ddrnet/ddrnet_23_in1k-pre_2xb6-120k_cityscapes-1024x1024.py)
| model \| log |


The converted pretrained backbone weights download link:

1.
[ddrnet23s_in1k_mmseg.pth](https://drive.google.com/file/d/1Ni4F1PMGGjuld-1S9fzDTmneLfpMuPTG/view?usp=sharing)
2.
[ddrnet23_in1k_mmseg.pth](https://drive.google.com/file/d/11rsijC1xOWB6B0LgNQkAG-W6e1OdbCyJ/view?usp=sharing)

## To do

- [x] support inference with converted official weights
- [x] support training on cityscapes dataset

---------

Co-authored-by: xiexinch <xiexinch@outlook.com>
2023-04-27 09:44:30 +08:00
MengzhangLI
ff8d971988
[Feature] Support SegNeXt in MMSegmentation 2.0 (#2654)
## Motivation

Support SegNeXt in MMSeg 1.x branch.

0.x PR: https://github.com/open-mmlab/mmsegmentation/pull/2600

---------

Co-authored-by: xiexinch <xiexinch@outlook.com>
2023-03-16 16:49:15 +08:00
谢昕辰
dd47cef801
[Feature] Support PIDNet (#2609)
## Motivation

Support SOTA real-time semantic segmentation method in [Paper with
code](https://paperswithcode.com/task/real-time-semantic-segmentation)

Paper: https://arxiv.org/pdf/2206.02066.pdf
Official repo: https://github.com/XuJiacong/PIDNet

## Current results

**Cityscapes**

|Model|Ref mIoU|mIoU (ours)|
|---|---|---|
|PIDNet-S|78.8|78.74|
|PIDNet-M|79.9|80.22|
|PIDNet-L|80.9|80.89|

## TODO

- [x] Support inference with official weights
- [x] Support training on Cityscapes
- [x] Update docstring
- [x] Add unit test
2023-03-15 14:55:30 +08:00
Yuan Liu
43b8a1d8dc [Feature]: Add MAE (#1307)
* [Fix]: Fix lint

* [WIP]: Add mae seg config

* [Feature]: Add MAE seg

* [Fix]: Fix mae dataset img scale bug

* [Fix]: Fix lint

* [Feature]: Change mae config to mae_segmentation's config

* [Feature]: Add interpolate pe when loading

* [Fix]: Fix pos_embed not used bug

* [Fix]: Fix lint

* [Fix]: Init rel pos embed with zeros

* [Fix]: Fix lint

* [Fix]: Change the type name of backbone to MAE

* [Fix]: Delete ade20k_512x512.py

* [Fix]: Use mmseg provided ade20k.py

* [Fix]: Change 1 sample per gpu to 2 samples per gpu

* [Fix]: Fix conflict

* [Refactor]: Use the TransformerEncoderLayer of  BEiT

* [Feature]: Add UT

* [Fix]: Change the default value of qv bias to False

* [Fix]: Initialize relative pos table with zeros

* [Fix]: Delete redundant code in mae

* [Fix]: Fix lint

* [Fix]: Rename qkv_bias to qv_bias

* [Fix]: Add docstring to weight_init of MAEAttention

* [Refactor]: Delete qv_bias param

* [Fix]: Add reference to fix_init_weight

* [Fix]: Fix lint

* [Fix]: Delete extra crop size

* [Refactor]: Rename mae

* [Fix]: Set bias to True

* [Fix]: Delete redundant params

* [Fix]: Fix lint

* [Fix]: Fix UT

* [Fix]: Add resize abs pos embed

* [Fix]: Fix UT

* [Refactor]: Use build layer

* [Fix]: Add licsense and fix docstring

* [Fix]: Fix docstring

* [Feature]: Add README metafile

* [Fix]: Change 640 to 512

* [Fix]: Fix README

* fix readme of MAE

Co-authored-by: MengzhangLI <mcmong@pku.edu.cn>
2022-04-28 00:54:20 +08:00
FangjianLin
d1b8eae35e [Feature] Add BEiT backbone (#1404)
* [Feature] Add BEiT backbone

* fix

* fix

* fix

* fix

* add readme

* fix

* fix

* fix

* fix

* fix

* add link

* fix memory

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix test_beit.py

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix
2022-03-30 15:25:10 +08:00
MengzhangLI
c1e72513c9 [Feature] Support STDC Network (new) (#995)
* refactor stdc code

* update key

* fix backbone inference

* remove comments

* fixing errors

* fixing version conflict

* fux typo

* use STDCHead

* upload models&logs

* adding model converters script and fix unittest

* fix error

* fix error

* fix error

* delete redundant keys in config

* fix errors in configs and unittest

* fix errors in configs and unittest

* fix errors in configs and unittest

* change Memory name

* refactor stdc2mmseg

* change name to STDC

* refactor stdc

* refactor stdc

* stdc refactor

* stdc refactor

* stdc refactor

* stdc refactor

* stdc refactor

* stdc refactor

* refactor stdc

* stdc refactor

Co-authored-by: xiexinch <xinchen.xie@qq.com>
2021-12-10 23:09:32 +08:00
Lxinyang
cd246e3635 [Feature] Support Twins (NeurIPS2021) (#989)
* debug

* debug

* debug

* this is a debug step, and needs to be recovered

* need recover

* git

* debug

* git

* git

* git

* git

* git

* git

* debug need recover

* debug

* git

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debugf

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* git

* git

* git

* use config small/base/large

* debug

* debug

* git

* debug

* git

* debug

* debug

* debug args

* debug

* debug

* git

* git

* debug

* git

* git

* git

* git

* git

* debug

* debug

* git

* debug

* git

* debug

* debug

* debug

* debug

* git

* debug

* git

* git

* debug

* debug

* git

* git

* git

* git

* debug

* debug

* debug

* debug

* git

* debug

* debug

* git

* git

* debug

* debug

* git

* debug

* debug

* debug

* git

* debug

* debug

* debug

* Please enter the commit message for your changes. Lines starting

* git

* git

* debug

* debug

* debug

* git

* git

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* git

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* git

* fix pre-commit error

* fix error

* git

* git

* git

* git

* git

* git

* debug

* debug

* debug

* debug

* debug

* debug

* git

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* git

* git

* git

* debug

* debug

* debug

* git

* git

* git

* git

* git

* git

* git

* git

* git

* debug

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* fix unittest error

* fix config errors

* fix twins2mmseg bug

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* git

* fix init_weights() in twins.py

* git

* git

* git

* git

* fix comment

* fix comment

* fix comment

* fix comment

* fix unit test coverage in TwinsPR

* Add Twins README

* Add Twins README

* twins refactor

* twins refactor

* delete init_cfg in FFN

* delete init_cfg in FFN

* Update mmseg/models/backbones/twins.py

* Update mmseg/models/backbones/twins.py

* Update mmseg/models/backbones/twins.py

Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>

* Update mmseg/models/backbones/twins.py

* add conference name

Co-authored-by: linxinyang <linxinyang@meituan.com>
Co-authored-by: MengzhangLI <mcmong@pku.edu.cn>
Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
2021-12-09 19:18:10 +08:00
MengzhangLI
6a2cfea73b [Feature] Support Real-time model ERFNet (#960)
* first commit

* Fixing Unittest Error

* first refactory of ERFNet

* Refactorying NonBottleneck1d Module

* uploading models&logs

* uploading models&logs

* fix partial bugs & typos

* ERFNet

* add ERFNet with FCNHead

* fix typos of ERFNet

* add name on README.md cover

* chane name to T-ITS'2017

* fix lint error
2021-12-01 23:54:39 -08:00
Junjun2016
0a06853bb6 [Feature] Support TIMMBackbone (#998)
* add TIMMBackbone and unittests

* add timm to tests requirements

* deprecate pt1.3.1

* reduce the unittests input of timm backbone

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* fix ci

* remove unittests of large models of timm backbone

* generate coverage report for all unittests env

* reduce the unittests input of timm backbone

* reduce the unittests input of timm backbone
2021-11-02 12:51:11 +08:00
MengzhangLI
7db1cbb181 [Feature] Support ICNet (#884)
* add icnet backbone

* add icnet head

* add icnet configs

* nclass -> num_classes

* Support ICNet

* ICNet

* ICNet

* Add ICNeck

* Add ICNeck

* Add ICNeck

* Add ICNeck

* Adding unittest

* Uploading models & logs

* Uploading models & logs

* add comment

* smaller test_swin.py

* try to delete test_swin.py

* delete test_unet.py

* delete test_unet.py

* temp

* smaller test_unet.py

Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
2021-09-30 09:31:57 -07:00
MengzhangLI
e701497a36 [Feature] Support BiSeNetV1 (#851)
* First Commit

* fix typos

* fix typos

* Fix assertion bug

* Adding Assert

* Adding Unittest

* Fixing typo

* Uploading models & logs

* Fixing unittest error

* changing README.md

* changing README.md
2021-09-29 02:12:57 +08:00
MengzhangLI
f82e4d6fc9 [Feature] Support BiSeNetV2 (#804)
* BiSeNetV2 first commit

* BiSeNetV2 unittest

* remove pytest

* add pytest module

* fix ConvModule input name

* fix pytest error

* fix unittest

* refactor

* BiSeNetV2 Refactory

* fix docstrings and add some small changes

* use_sigmoid=False

* fix potential bugs about upsampling

* Use ConvModule instead

* Use ConvModule instead

* fix typos

* fix typos

* fix typos

* discard nn.conv2d

* discard nn.conv2d

* discard nn.conv2d

* delete **kwargs

* uploading markdown and model

* final commit

* BiSeNetV2 adding Unittest for its modules

* BiSeNetV2 adding Unittest for its modules

* BiSeNetV2 adding Unittest for its modules

* BiSeNetV2 adding Unittest for its modules

* BiSeNetV2 adding Unittest for its modules

* BiSeNetV2 adding Unittest for its modules

* BiSeNetV2 adding Unittest for its modules

* Fix README conflict

* Fix unittest problem

* Fix unittest problem

* BiSeNetV2

* Fixing fps

* Fixing typpos

* bisenetv2
2021-09-26 18:52:16 +08:00
Junjun2016
2fe0bddf5e [Dcos] Add header for files (#796)
* Add header for files

* Delete header in config files
2021-08-16 23:16:55 -07:00
sennnnn
095ed243c0 [Feature] Segformer backbone re-implementation (#594)
* [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

* parameters init refactor

* 1. Refactor segformer backbone parameters init;

2. Remove rebundant functions and unit tests;

* Remove rebundant codes

* 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.

* resolve the shape convertion functions doc string.

* Add pad_to_patch_size arg.

* Modify default value of pad_to_patch_size arg.
2021-07-19 09:40:40 -07:00
Ze Liu
214d083cce [WIP] Add Swin Transformer (#511)
* add Swin Transformer

* add Swin Transformer

* fixed import

* Add some swin training settings.

* Fix some filename error.

* Fix attribute name: pretrain -> pretrained

* Upload mmcls implementation of swin transformer.

* Refactor Swin Transformer to follow mmcls style.

* Refactor init_weigths of swin_transformer.py

* Fix lint

* Match inference precision

* Add some comments

* Add swin_convert to load official style ckpt

* Remove arg: auto_pad

* 1. Complete comments for each block;

2. Correct weight convert function;

3. Fix the pad of Patch Merging;

* Clean function args.

* Fix vit unit test.

* 1. Add swin transformer unit tests;

2. Fix some pad bug;

3. Modify config to adapt new swin implementation;

* Modify config arg

* Update readme.md of swin

* Fix config arg error and Add some swin benchmark msg.

* Add MeM and ms test content for readme.md of swin transformer.

* Fix doc string of swin module

* 1. Register swin transformer to model list;

2. Modify pth url which keep meta attribute;

* Update swin.py

* Merge config settings.

* Modify config style.

* Update README.md

Add ViT link

* Modify main readme.md

Co-authored-by: Jiarui XU <xvjiarui0826@gmail.com>
Co-authored-by: sennnnn <201730271412@mail.scut.edu.cn>
Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
2021-07-01 23:41:55 +08:00
谢昕辰
b379b5a5b3 support transformer backbone (#465)
* vit backbone

* fix lint

* add docstrings and fix pretrained pos_embed dim not match prob

* add unittest for vit

* fix lint

* add vit based fcn configs

* fix import error

* support multiple resolution input images

* upsample pos_embed at init_weights

* support resize pos_embed at evaluation

* fix training errors

* add more unitest code for vit backbone

* unitest for uncovered code

* add norm_eval unittest

* refactor _pos_embeding

* minor change

* change var name

* rafactor init_weight

* load weights after resize

* ignore 'module' in pretrain checkpoint

* add with_cp

* add with_cp

Co-authored-by: Jiarui XU <xvjiarui0826@gmail.com>
2021-04-21 20:19:55 -07:00
yamengxi
25d8d77fab [New model] Support MobileNetV3 (#268)
* delete markdownlint

* Support MobileNetV3

* fix import

* add mobilenetv3 head and configs

* Modify MobileNetV3 to semantic segmentation version

* modify mobilenetv3 configs

* add std configs

* fix Conv2dAdaptivePadding bug

* add configs

* add unitest and fix bugs

* fix lraspp unitest bugs

* restore

* fix unitest

* add MobileNetV3 docstring

* add mmcv

* add mmcv

* fix syntax bug

* fix unitest bug

* fix unitest bug

* fix unitest bugs

* fix docstring

* add configs

* restore

* delete unnecessary assert

* modify unitest

* delete benchmark
2020-12-26 00:02:50 -08:00
yamengxi
86d473002f [New model] Support CGNet (#223)
* added cgnet

* added testing for cgnet

* git test

* add cgnet

* fix __init__

* rename FGlo with GlobalContextExtractor

* add readme.md and rename bn with norm

* delete cg_head

* fix a language mistake

* rename cgnet_m3n21.py to cgnet.py

* modify README.md

* modify list to tuple

* add fcn_head test

* add assert to fcn_head

* blank

* fix fcn_head assert bug

* add

* add cgnet to README.md and model_zoo.md

* modify cgnet README.md

Co-authored-by: KID <wps_@mail.nankai.edu.cn>
2020-11-03 00:05:25 -08:00
Junjun2016
5956451014 add unet (#161)
* add unet

* add unet

* add unet

* update test_unet

* update test_unet

* update test_unet

* update test_unet

* fix bugs

* add init method for unet

* add test of UNet init_weights method

* add registry

* merge upsample

* fix test

* Update mmseg/models/backbones/unet.py

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>

* Update mmseg/models/backbones/unet.py

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>

* split UpConvBlock from UNet

* use reversed

* rename upsample module

* rename upsample module

* rename upsample module

* rename upsample module

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>
2020-10-21 11:24:38 -07:00
Jerry Jiarui XU
1fbb537958 [Feature] Support MobileNetV2 backbone (#86)
* [Feature] Support MobileNetV2 backbone

* Fixed import

* Fixed test

* Fixed test

* Fixed dilate

* upload model

* update table

* update table

* update bibtex

* update MMCV requirement
2020-09-04 15:35:52 +08:00
John Zhu
f6b9da55f3 Fast-SCNN implemented (#58)
* init commit: fast_scnn

* 247917iters

* 4x8_80k

* configs placed in configs_unify.  4x8_80k exp.running.

* mmseg/utils/collect_env.py modified to support Windows

* study on lr

* bug in configs_unify/***/cityscapes.py fixed.

* lr0.08_100k

* lr_power changed to 1.2

* log_config by_epoch set to False.

* lr1.2

* doc strings added

* add fast_scnn backbone  test

* 80k 0.08,0.12

* add 450k

* fast_scnn test: fix BN bug.

* Add different config files into configs/

* .gitignore recovered.

* configs_unify del

* .gitignore recovered.

* delete sub-optimal config files of fast-scnn

* Code style improved.

* add docstrings to component modules of fast-scnn

* relevant files modified according to Jerry's instructions

* relevant files modified according to Jerry's instructions

* lint problems fixed.

* fast_scnn config extremely simplified.

* InvertedResidual

* fixed padding problems

* add unit test for inverted_residual

* add unit test for inverted_residual: debug 0

* add unit test for inverted_residual: debug 1

* add unit test for inverted_residual: debug 2

* add unit test for inverted_residual: debug 3

* add unit test for sep_fcn_head: debug 0

* add unit test for sep_fcn_head: debug 1

* add unit test for sep_fcn_head: debug 2

* add unit test for sep_fcn_head: debug 3

* add unit test for sep_fcn_head: debug 4

* add unit test for sep_fcn_head: debug 5

* FastSCNN type(dwchannels) changed to tuple.

* t changed to expand_ratio.

* Spaces fixed.

* Update mmseg/models/backbones/fast_scnn.py

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>

* Update mmseg/models/decode_heads/sep_fcn_head.py

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>

* Update mmseg/models/decode_heads/sep_fcn_head.py

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>

* Docstrings fixed.

* Docstrings fixed.

* Inverted Residual kept coherent with mmcl.

* Inverted Residual kept coherent with mmcl. Debug 0

* _make_layer parameters renamed.

* final commit

* Arg scale_factor deleted.

* Expand_ratio docstrings updated.

* final commit

* Readme for Fast-SCNN added.

* model-zoo.md modified.

* fast_scnn README updated.

* Move InvertedResidual module into mmseg/utils.

* test_inverted_residual module corrected.

* test_inverted_residual.py moved.

* encoder_decoder modified to avoid bugs when running PSPNet.
getting_started.md bug fixed.

* Revert "encoder_decoder modified to avoid bugs when running PSPNet. "

This reverts commit dd0aadfb

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>
2020-08-18 23:33:05 +08:00
Jerry Jiarui XU
c8b250df4a Support ResNeSt backbone (#47)
* Support ResNeSt backbone

* fixed avg_down

* add docstring and test

* update table

* update docs and tests

* fixed test

* rename

* refactor splits
2020-08-17 00:54:01 +08:00
Jiarui XU
b2724da80b init commit 2020-07-10 02:39:01 +08:00