- Feb 28, 2023
-
-
谢昕辰 authored
[Fix] Add out_channels in `CascadeEncoderDecoder` and update OCRNet and MobileNet v2 results (#2656) ## Motivation As title. ## Modification 1. update results in readme 2. fix attr error in cascade encoder decoder
-
- Feb 23, 2023
-
-
谢昕辰 authored
## Motivation The registry now supports auto-import modules from the given location. register_all_modules before running is no longer needed. The modules will be lazy-imported during building. - [x] This PR can be merged after https://github.com/open-mmlab/mmengine/pull/643. The MMEngine version should be updated. Ref: https://github.com/open-mmlab/mmdetection/pull/9143
-
- Feb 16, 2023
-
-
谢昕辰 authored
## Motivation In MMEngine >= 0.2.0, it might directly determine what the backend is by using the `data_root` path. ## Modification Set all default `backend_args` values are `None`.
-
- Feb 03, 2023
-
-
Andrew Lau authored
## Motivation Add REFUGE datasets Old PR: https://github.com/open-mmlab/mmsegmentation/pull/2420 --------- Co-authored-by:
MengzhangLI <mcmong@pku.edu.cn>
-
- Feb 01, 2023
-
-
Qingyun authored
## Motivation The DETR-related modules have been refactored in open-mmlab/mmdetection#8763, which causes breakings of MaskFormer and Mask2Former in both MMDetection (has been fixed in open-mmlab/mmdetection#9515) and MMSegmentation. This pr fix the bugs in MMSegmentation. ### TO-DO List - [x] update configs - [x] check and modify data flow - [x] fix unit test - [x] aligning inference - [x] write a ckpt converter - [x] write ckpt update script - [x] update model zoo - [x] update model link in readme - [x] update [faq.md](https://github.com/open-mmlab/mmsegmentation/blob/dev-1.x/docs/en/notes/faq.md#installation ) ## Tips of Fixing other implementations based on MaskXFormer of mmseg 1. The Transformer modules should be built directly. The original building with register manner has been refactored. 2. The config requires to be modified. Delete `type` and modify several keys, according to the modifications in this pr. 3. The `batch_first` is set `True` uniformly in the new implementations. Hence the data flow requires to be transposed and config of `batch_first` needs to be modified. 4. The checkpoint trained on the old implementation should be converted to be used in the new one. ### Convert script ```Python import argparse from copy import deepcopy from collections import OrderedDict import torch from mmengine.config import Config from mmseg.models import build_segmentor from mmseg.utils import register_all_modules register_all_modules(init_default_scope=True) def parse_args(): parser = argparse.ArgumentParser( description='MMSeg convert MaskXFormer model, by Li-Qingyun') parser.add_argument('Mask_what_former', type=int, help='Mask what former, can be a `1` or `2`', choices=[1, 2]) parser.add_argument('CFG_FILE', help='config file path') parser.add_argument('OLD_CKPT_FILEPATH', help='old ckpt file path') parser.add_argument('NEW_CKPT_FILEPATH', help='new ckpt file path') args = parser.parse_args() return args args = parse_args() def get_new_name(old_name: str): new_name = old_name if 'encoder.layers' in new_name: new_name = new_name.replace('attentions.0', 'self_attn') new_name = new_name.replace('ffns.0', 'ffn') if 'decoder.layers' in new_name: if args.Mask_what_former == 2: # for Mask2Former new_name = new_name.replace('attentions.0', 'cross_attn') new_name = new_name.replace('attentions.1', 'self_attn') else: # for Mask2Former new_name = new_name.replace('attentions.0', 'self_attn') new_name = new_name.replace('attentions.1', 'cross_attn') return new_name def cvt_sd(old_sd: OrderedDict): new_sd = OrderedDict() for name, param in old_sd.items(): new_name = get_new_name(name) assert new_name not in new_sd new_sd[new_name] = param assert len(new_sd) == len(old_sd) return new_sd if __name__ == '__main__': cfg = Config.fromfile(args.CFG_FILE) model_cfg = cfg.model segmentor = build_segmentor(model_cfg) refer_sd = segmentor.state_dict() old_ckpt = torch.load(args.OLD_CKPT_FILEPATH) old_sd = old_ckpt['state_dict'] new_sd = cvt_sd(old_sd) print(segmentor.load_state_dict(new_sd)) new_ckpt = deepcopy(old_ckpt) new_ckpt['state_dict'] = new_sd torch.save(new_ckpt, args.NEW_CKPT_FILEPATH) print(f'{args.NEW_CKPT_FILEPATH} has been saved!') ``` Usage: ```bash # for example python ckpt4pr2532.py 1 configs/maskformer/maskformer_r50-d32_8xb2-160k_ade20k-512x512.py original_ckpts/maskformer_r50-d32_8xb2-160k_ade20k-512x512_20221030_182724-cbd39cc1.pth cvt_outputs/maskformer_r50-d32_8xb2-160k_ade20k-512x512_20221030_182724.pth python ckpt4pr2532.py 2 configs/mask2former/mask2former_r50_8xb2-160k_ade20k-512x512.py original_ckpts/mask2former_r50_8xb2-160k_ade20k-512x512_20221204_000055-4c62652d.pth cvt_outputs/mask2former_r50_8xb2-160k_ade20k-512x512_20221204_000055.pth ``` --------- Co-authored-by:
MeowZheng <meowzheng@outlook.com>
-
谢昕辰 authored
## Motivation Use the new fileio from mmengine https://github.com/open-mmlab/mmengine/pull/533 ## Modification 1. Use `mmengine.fileio` to repalce FileClient in mmseg/datasets 2. Use `mmengine.fileio` to repalce FileClient in mmseg/datasets/transforms 3. Use `mmengine.fileio` to repalce FileClient in mmseg/visualization ## BC-breaking (Optional) we modify all the dataset configurations, so please use the latest config file.
-
- Jan 31, 2023
-
-
MengzhangLI authored
-
- Jan 06, 2023
-
-
王永韬 authored
## Motivation Add Synapse dataset in MMSegmentation. Old PR: https://github.com/open-mmlab/mmsegmentation/pull/2372.
-
- Dec 30, 2022
-
-
谢昕辰 authored
* tta init * use mmcv transform * test city * add multiscale * fix merge * add softmax to post process * add ut * add tta pipeline to other datasets * remove softmax * add encoder_decoder_tta ut * add encoder_decoder_tta ut * rename * rename file * rename config * rm aug_test * move flip to post process * fix channel
-
haofeng authored
-
- Dec 05, 2022
-
-
谢昕辰 authored
* init commits * fix crop size * add seg_data2instance_data method * add ut and update requirement * update configs and readme * add model-indel * update optional requirements * fix results * fix lint error * update results * update results * remove mmdet from requirements/optional.txt * use try import and update README * add docstring to overwrtied method * minor change Co-authored-by:
MengzhangLI <mcmong@pku.edu.cn>
-
- Dec 01, 2022
-
-
MengzhangLI authored
* [Feature] Support MaskFormer(NeurIPS'2021) in MMSeg 1.x * add mmdet try except logic * refactor config files * add readme * fix config * update models & logs * add MMDET installation and fix info * fix comments * fix * fix config norm optimizer setting * update models & logs & unittest * add docstring of MaskFormerHead * wait for mmdet 3.0.0rc4 * replace seg_mask with seg_logits & add docstring for batch_input_shape * use mmdet3.0.0rc4 * fix readme and modify config comments * add mmdet installation in pr_stage_test.yml * update mmcv version in pr_stage_test.yml * add mmdet in build_cpu of pr_stage_test.yml * modify mmdet& mmcv installation in merge_stage_test.yml * fix typo * update test.yml * update test.yml
-
- Oct 27, 2022
-
-
谢昕辰 authored
-
- Oct 19, 2022
-
-
MengzhangLI authored
* [Feature] 2.0 PoolFormer * fix mmcls version * fix ut error * fix ut * fix ut
-
- Oct 18, 2022
-
-
Miao Zheng authored
-
- Oct 14, 2022
-
-
MengzhangLI authored
-
- Sep 14, 2022
-
-
MengzhangLI authored
-
- Aug 30, 2022
-
-
MengzhangLI authored
* [Fix] Fix several config file errors in 2.0 * change _base_ config file name in configs
-
- Aug 29, 2022
-
-
Miao Zheng authored
-
- Aug 26, 2022
-
-
Miao Zheng authored
-
谢昕辰 authored
* rename ann configs * update ann yml * update * update * update * update * update * update ann readme * update * update deeplabv3 * update readme * fix yml * fix beit
-
- Aug 19, 2022
-
-
谢昕辰 authored
-
- Aug 09, 2022
-
-
Miao Zheng authored
-
Miao Zheng authored
-
- Aug 04, 2022
-
-
MengzhangLI authored
-
- Aug 01, 2022
-
-
MengzhangLI authored
* [Fix] Fix SegLocalVisualizer gt_sem_seg cuda tensor error * fix ut error and add config visualizer dict * fix ut error
-
- Jul 14, 2022
-
-
xiexinchen.vendor authored
-
- Jul 07, 2022
-
-
xiexinch authored
-
- Jul 06, 2022
-
-
xiexinch authored
-
xiexinchen.vendor authored
-
- Jul 05, 2022
-
-
xiexinch authored
-
- Jun 27, 2022
-
-
limengzhang.vendor authored
-
- Jun 20, 2022
-
-
MengzhangLI authored
-
linfangjian01 authored
-
zhengmiao authored
-
- Jun 19, 2022
-
-
zhengmiao authored
-
- Jun 16, 2022
-
-
limengzhang.vendor authored
-
- Jun 13, 2022
-
-
limengzhang.vendor authored
-
- Jun 12, 2022
-
-
limengzhang.vendor authored
-
- Jun 10, 2022
-
-
linfangjian.vendor authored
-