- Feb 07, 2023
-
-
MengzhangLI authored
## Motivation Translate Chinese version customized runtime doc into English https://github.com/open-mmlab/mmsegmentation/pull/2502.
-
- Feb 06, 2023
-
-
Tianlong Ai authored
## Motivation Supplementary PR #2444 Fix tiny bug and add loss_by_feat() to compute loss to train. The inference process have verified to be accurate. ## Modification - modify `sep_aspp_contrast_head.py` , add `loss_by_feat()` function to train(training still has bug, will fix in future
) - fix testing commands path error `bash tools/dist_test.sh projects/HieraSeg_project/` to `bash tools/dist_test.sh projects/HieraSeg/` at README.md
-
- 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
-
-
谢昕辰 authored
as title
-
zccjjj authored
## Motivation Fix the bug in running ```collect_evn.py```. #2547 ## Modification Rename typing.py to typing_utils.py
-
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.
-
Siddharth Ancha authored
## Motivation This is essentially #2535 that I had intended to submit to the `dev-1.x` branch but accidentally submitted it directly to the `1.x` branch (apologies!). This also got approved possibly because the core devs also didn't realize this. The problem is that now `1.x` and `dev-1.x` are out of sync -- the changes introduced by #2535 will never be reflected in `dev-1.x`. ## Modification I'm proposing this "backward-merge" so that `1.x` and `dev-1.x` can be in sync again. If you look at "files changed", they are exactly the changes introduced by #2535. Co-authored-by:
MeowZheng <meowzheng@outlook.com>
-
- Jan 31, 2023
-
-
MengzhangLI authored
-
- Jan 30, 2023
-
-
谢昕辰 authored
-
Miao Zheng authored
as title
-
Siddharth Ancha authored
## Motivation This is motivated by a previously unfinished PR (#2332). In that PR, the label -1 was changed to 255 in `BaseSegDataset`, which is correct. However, it was changed at only one location. There is another location in `mmseg/datasets/basesegdataset.py` where -1 was still being used that was not converted to 255. I have now converted it to 255. This is exactly same as a similar fix to the `master` branch via #2515 . ## Modification I've simply converted the snipped ```python if new_id != -1: new_palette.append(palette[old_id]) ``` to ```python if new_id != 255: new_palette.append(palette[old_id]) ``` ## Checklist - [x] Pre-commit or other linting tools are used to fix the potential lint issues. - _I've fixed all linting/pre-commit errors._ - [x] The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness. - _No unit tests need to be added or were affected. - [x] If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMDet3D. - _I don't think this change affects MMDet or MMDet3D._ - [x] The documentation has been modified accordingly, like docstring or example tutorials. - _This change fixes an existing bug and doesn't require modifying any documentation/docstring._
-
Siddharth Ancha authored
This is an almost exact duplicate of #2500 (that was made to the `master` branch) now applied to the `1.x` branch. --- ## Motivation I want to fix a bug through this PR. The bug occurs when two options -- `reduce_zero_label=True`, and custom classes are used. `reduce_zero_label` remaps the GT seg labels by remapping the zero-class to 255 which is ignored. Conceptually, this should occur *before* the `label_map` is applied, which maps *already reduced labels*. However, currently, the `label_map` is applied before the zero label is reduced. ## Modification The modification is simple: - I've just interchanged the order of the two operations by moving a few lines from bottom to top. - I've added a test that passes when the fix is introduced, and fails on the original `master` branch. ## BC-breaking (Optional) I do not anticipate this change braking any backward-compatibility. ## Checklist - [x] Pre-commit or other linting tools are used to fix the potential lint issues. - _I've fixed all linting/pre-commit errors._ - [x] The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness. - _I've added a unit test._ - [x] If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMDet3D. - _I don't think this change affects MMDet or MMDet3D._ - [x] The documentation has been modified accordingly, like docstring or example tutorials. - _This change fixes an existing bug and doesn't require modifying any documentation/docstring._
-
Siddharth Ancha authored
Co-authored-by:
xiexinch <xiexinch@outlook.com>
-
谢昕辰 authored
## Motivation https://github.com/open-mmlab/mmeval/pull/85 --------- Co-authored-by:
Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
-
- Jan 22, 2023
-
-
MengzhangLI authored
Add English version of `datasets.md`, the Chinese version is in https://github.com/open-mmlab/mmsegmentation/pull/2387 . Co-authored-by:
MeowZheng <meowzheng@outlook.com>
-
- Jan 20, 2023
-
-
谢昕辰 authored
as title Co-authored-by:
MengzhangLI <mcmong@pku.edu.cn>
-
Leeinsn authored
## Motivation Support for biomedical 3d images augmentation. ## Modification Add BioMedical3DRandomFlip in mmseg/datasets/transforms/transforms.py. Co-authored-by:
MeowZheng <meowzheng@outlook.com>
-
Tianlong Ai authored
## Support `Mapillary Vistas Dataset` ## Motivation Support **`Mapillary Vistas Dataset`** Dataset Paper link : https://ieeexplore.ieee.org/document/9878466/ Download and more information view https://www.mapillary.com/dataset/vistas ``` @InProceedings{Neuhold_2017_ICCV, author = {Neuhold, Gerhard and Ollmann, Tobias and Rota Bulo, Samuel and Kontschieder, Peter}, title = {The Mapillary Vistas Dataset for Semantic Understanding of Street Scenes}, booktitle = {Proceedings of the IEEE International Conference on Computer Vision (ICCV)}, month = {Oct}, year = {2017} } ``` ## Modification Add `Mapillary_dataset` in `mmsegmentation/projects` Add `configs/_base_/mapillary_v1_2.py` and `configs/_base_/mapillary_v2_0.py` Add `configs/deeplabv3plus_r18-d8_4xb2-80k_mapillay-512x1024.py` to test training and testing on Mapillary datasets Add `docs/en/user_guides/2_dataset_prepare.md` , add Mapillary Vistas Dataset Preparing and Structure. Add `tools/dataset_converters/mapillary.py` to convert RGB labels to Mask labels. Co-authored-by:
谢昕辰 <xiexinch@outlook.com>
-
- Jan 19, 2023
-
-
MengzhangLI authored
Old PR: https://github.com/open-mmlab/mmsegmentation/pull/2169
-
MengzhangLI authored
## Motivation Ref: https://github.com/open-mmlab/mmsegmentation/pull/2464#discussion_r1072211706 Co-authored-by:
Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
-
- Jan 17, 2023
-
-
Vladimir Loginov authored
## Motivation Makes docstring to be consistent with actual argument name. ## Modification Minor fix ## BC-breaking (Optional) No
-
- Jan 13, 2023
-
-
谢昕辰 authored
## Motivation As title. ## Modification - docs/en/api.rst - docs/zh_cn/api.rst - add `scipy` to readthedocs requirement.
-
- Jan 12, 2023
-
-
Tianlong Ai authored
## Support `HieraSeg` interface on `cityscapes` ## Motivation Support `HieraSeg` interface on cityscapes dataset Paper link : https://ieeexplore.ieee.org/document/9878466/ ``` @article{li2022deep, title={Deep Hierarchical Semantic Segmentation}, author={Li, Liulei and Zhou, Tianfei and Wang, Wenguan and Li, Jianwu and Yang, Yi}, journal={CVPR}, year={2022} } ``` ## Modification Add `HieraSeg_Projects` on `projects/` Add `sep_aspp_contrast_head` decoder head. Add `HieraSeg` config. Add `hiera_loss`, `hiera_triplet_loss_cityscape`, `tree_triplet_loss`
-
- Jan 11, 2023
-
-
Wencheng Wu authored
## Motivation The motivation of this PR is to add `gt_edge_map` field to support boundary loss. ## Modification - GenerateEdge Modify `gt_edge` field to `gt_edge_map`. - PackSegInputs Add `gt_edge_map` to data_sample. - stack_batch Pad `gt_edge_map` to max_shape. ## BC-breaking (Optional) No ## Use cases (Optional) Reference `GenerateEdge`.
-
MengzhangLI authored
## Motivation - Add Chinese version of Synapse dataset preparation. - Modify all `,` and `。` to `,` and `.` in `docs/zh_cn/user_guides/2_dataset_prepare.md`.
-
- Jan 10, 2023
-
-
谢昕辰 authored
## Motivation Fix incorrect `img_shape` value assignment. ## Modification - mmseg/datasets/transforms/transforms.py
-
Miao Zheng authored
## Motivation as title ## Modification 1. .circleci/test.yml 2. .github/workflows/merge_stage_test.yml
-
- Jan 09, 2023
-
-
谢昕辰 authored
## Motivation As title. ## Modification - projects/isnet/README.md
-
- Jan 06, 2023
-
-
王永韬 authored
## Motivation Add Synapse dataset in MMSegmentation. Old PR: https://github.com/open-mmlab/mmsegmentation/pull/2372.
-
- Jan 04, 2023
-
-
unrealMJ authored
## Motivation Support ISNet. paper link: [ISNet: Integrate Image-Level and Semantic-Level Context for Semantic Segmentation](https://openaccess.thecvf.com/content/ICCV2021/papers/Jin_ISNet_Integrate_Image-Level_and_Semantic-Level_Context_for_Semantic_Segmentation_ICCV_2021_paper.pdf) ## Modification Add ISNet decoder head. Add ISNet config.
-
- Jan 03, 2023
-
-
legendchilli authored
## Motivation Add the 3d pad transform for biomedical images, which follows the design of the nnUNet.
-
- Jan 02, 2023
-
-
Fivethousand authored
Add the random gamma correction transform for biomedical images, which follows the design of the nnUNet.
-
Haoyu Wang authored
## Motivation implement nnUNet-style Gaussian Noise and Blur
-
- Dec 31, 2022
-
-
Miao Zheng authored
## Motivation To release 1.0.0rc3 ## Modification 1. Modify mmseg version 2. Add change log 3. Modify README 4. Modify faq 5. Revise docker file
-
Miao Zheng authored
## Motivation The conflict is caused by: The user requested torch==1.12.1+cpu torchvision 0.13.0+cpu depends on torch==1.12.0 ## Modification modify the torch==1.12.0+cpu
-
- Dec 30, 2022
-
-
Miao Zheng authored
## Motivation Calling `mmseg.utils.register_all_modules` will import `MaskFormerHead` and `Mask2FormerHead`, it will crash if mmdet is not installed as `None` cannot be initialized. ## Modification - Modify `MMDET_MaskFormerHead=BaseModule` and `MMDET_Mask2FormerHead = BaseModule` when cannot import from mmdet
-
谢昕辰 authored
-
谢昕辰 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
-