Commit Graph

131 Commits (72e20a88543a4764780803a66a87d3f4897bc944)

Author SHA1 Message Date
小飞猪 b2f10954e6
[Doc] translate doc for docs/zh_cn/user_guides/5_deployment.md (#3281)
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

translate doc for docs/zh_cn/user_guides/5_deployment.md

## Modification

update `docs/en/user_guides/5_deployment.md`
fix `docs/zh_cn/user_guides/5_deployment.md`

## BC-breaking (Optional)

Does the modification introduce changes that break the
backward-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the
downstream projects should modify their code to keep compatibility with
this PR.

## Use cases (Optional)

If this PR introduces a new feature, it is better to list some use cases
here, and update the documentation.

## Checklist

1. Pre-commit or other linting tools are used to fix the potential lint
issues.
2. The modification is covered by complete unit tests. If not, please
add more unit test to ensure the correctness.
3. If the modification has potential influence on downstream projects,
this PR should be tested with downstream projects, like MMDet or
MMDet3D.
4. The documentation has been modified accordingly, like docstring or
example tutorials.

---------

Co-authored-by: 谢昕辰 <xiexinch@outlook.com>
2023-08-25 10:19:14 +08:00
Peng Lu 788b37f78f
[Feature] Support NYU depth estimation dataset (#3269)
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

Please describe the motivation of this PR and the goal you want to
achieve through this PR.

## Modification

Please briefly describe what modification is made in this PR.
1. add `NYUDataset`class
2. add script to process NYU dataset
3. add transforms for loading depth map
4. add docs & unittest

## BC-breaking (Optional)

Does the modification introduce changes that break the
backward-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the
downstream projects should modify their code to keep compatibility with
this PR.

## Use cases (Optional)

If this PR introduces a new feature, it is better to list some use cases
here, and update the documentation.

## Checklist

1. Pre-commit or other linting tools are used to fix the potential lint
issues.
5. The modification is covered by complete unit tests. If not, please
add more unit test to ensure the correctness.
6. If the modification has potential influence on downstream projects,
this PR should be tested with downstream projects, like MMDet or
MMDet3D.
7. The documentation has been modified accordingly, like docstring or
example tutorials.
2023-08-17 11:39:44 +08:00
谢昕辰 0391bc4998
[Fix] Update dataset mim downloading source to OpenXLab (#3266) 2023-08-16 17:38:46 +08:00
小飞猪 22ffd0d2f6
[Doc]fix inference_segmentor to inference_model (#3261)
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

there is a code mistake in `docs\zh_cn\get_started.md` and
`docs\en\get_started.md`,it use the 0.x api,which is changed in 1.x

## Modification
`docs\zh_cn\get_started.md` ,`docs\en\get_started.md`
fix inference_segmentor --> inference_model

## BC-breaking (Optional)

Does the modification introduce changes that break the
backward-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the
downstream projects should modify their code to keep compatibility with
this PR.

## Use cases (Optional)

If this PR introduces a new feature, it is better to list some use cases
here, and update the documentation.

## Checklist

1. Pre-commit or other linting tools are used to fix the potential lint
issues.
2. The modification is covered by complete unit tests. If not, please
add more unit test to ensure the correctness.
3. If the modification has potential influence on downstream projects,
this PR should be tested with downstream projects, like MMDet or
MMDet3D.
4. The documentation has been modified accordingly, like docstring or
example tutorials.
2023-08-15 14:04:25 +08:00
谢昕辰 30a3f94f3e
bumpv1.1.1 (#3223) 2023-07-24 15:28:21 +08:00
CastleDream 057155d3ab
[Feature] add bdd100K datasets (#3158)
## Motivation
Integrate [BDD100K](https://paperswithcode.com/dataset/bdd100k) dataset.
It shares the same classes as Cityscapes, and it's commonly used for
evaluating segmentation/detection tasks in driving scenes, such as in
[RobustNet](https://arxiv.org/abs/2103.15597),
[WildNet](https://github.com/suhyeonlee/WildNet).

Enhancement for Add BDD100K Dataset #2808

---------

Co-authored-by: xiexinch <xiexinch@outlook.com>
2023-07-14 10:09:16 +08:00
谢昕辰 e4c1865a82
Bump1.1 (#3140)
Co-authored-by: CSH <40987381+csatsurnh@users.noreply.github.com>
2023-07-04 11:11:30 +08:00
谢昕辰 ffb7e2e239
[Fix] Fix dependency (#3136)
## Motivation

Change the dependency `mmcls` to `mmpretrain`

## Modification

- modify `mmcls` to `mmpretrain`
- modify CI requirements

## BC-breaking (Optional)

If users have installed mmcls but not install mmpretrain, it might raise some error.
2023-06-26 16:02:37 +08:00
Tianlong Ai cdc5d4d4ed
[Docs] Add docs contents at README.md (#3083)
Add docs contents at README.md to easily find documents.
Issue: #2664 

![image](https://github.com/open-mmlab/mmsegmentation/assets/50650583/0763e108-f095-44d1-8e2a-ba2e83f02625)

![image](https://github.com/open-mmlab/mmsegmentation/assets/50650583/088e0945-55b4-4d3f-97bb-02e39dfafb5e)

![image](https://github.com/open-mmlab/mmsegmentation/assets/50650583/109e0320-d6a9-405f-b169-87acb5a0f94d)

![image](https://github.com/open-mmlab/mmsegmentation/assets/50650583/d1d72bde-40c0-451a-be6e-010f1f2d193b)
2023-06-07 16:36:48 +08:00
Tianlong Ai 5563480e70
[Doc] Repair invalid link of potsdam and vaihingen (#3042)
Repair invalid link of potsdam and vaihingen in docs
2023-05-30 09:54:55 +08:00
WuFan b89c2c4cb7
[Feature] Support DSDL Dataset (#2925)
- support dsdl seg dataset 
- add dsdl dataset citest
- validated accuracy on voc2012 and cityscapes
2023-05-10 16:54:42 +08:00
zoulinxin 77591b9e7b
[Feature] Add GDAL backend and Support LEVIR-CD Dataset (#2903)
## Motivation

For support with reading multiple remote sensing image formats, please
refer to https://gdal.org/drivers/raster/index.html.

Byte, UInt16, Int16, UInt32, Int32, Float32, Float64, CInt16, CInt32,
CFloat32 and CFloat64 are supported for reading and writing.

Support input of two images for change detection tasks, and support the
LEVIR-CD dataset.

## Modification

Add LoadSingleRSImageFromFile in 'mmseg/datasets/transforms/loading.py'.
Load a single remote sensing image for object segmentation tasks.

Add LoadMultipleRSImageFromFile in
'mmseg/datasets/transforms/loading.py'.
Load two remote sensing images for change detection tasks.

Add ConcatCDInput  in 'mmseg/datasets/transforms/transforms.py'.
Combine images that have been separately augmented for data enhancement.

Add BaseCDDataset in 'mmseg/datasets/basesegdataset.py'
Base class for datasets used in change detection tasks.

---------

Co-authored-by: xiexinch <xiexinch@outlook.com>
2023-05-08 20:09:33 +08:00
JoshuaChou 3b072eb213
Fix typo in docs/en/user_guides/visualization_feature_map.md (#2951)
Motivation

Typo in docs/en/user_guides/visualization_feature_map.md.

Modification

reature -> feature

Checklist

- [x] Pre-commit or other linting tools are used to fix the potential
lint issues.
- [x] The modification is covered by complete unit tests. If not, please
add more unit test to ensure the correctness.
- [x] If the modification has potential influence on downstream
projects, this PR should be tested with downstream projects, like MMDet
or MMDet3D.
- [x] The documentation has been modified accordingly, like docstring or
example tutorials.
2023-04-26 10:57:47 +08:00
Mengyang Liu 969f50459d
Fix typo in tutorial-1 (#2896) 2023-04-13 19:27:19 +08:00
CSH 22032e1de2
[Doc] update doc link (#2863) 2023-04-13 19:21:19 +08:00
谢昕辰 892f9e19e7
bumpv1.0.0 (#2849) 2023-04-06 17:24:57 +08:00
CSH 580887ad10
[Doc] Update version info in doc (#2851) 2023-04-06 16:49:56 +08:00
任祉涵 225e1582a8
[Docs] Add faq in dev-1.x branch (#2765) 2023-04-03 18:49:48 +08:00
CSH 794202e93a
Fix migration doc (#2827) 2023-04-03 11:11:53 +08:00
谢昕辰 c448646a92
[Doc] Refine doc and fix links (#2821)
## Motivation

- Create the `main` branch

## Modification

Modify links from `dev-1.x` to `main`
2023-03-31 16:26:30 +08:00
谢昕辰 15979db1ec
[Doc] Add custom metrics document (#2799) 2023-03-30 15:21:07 +08:00
CSH a7d2e28dca
[Doc] Update dataset_prepare & inference (#2798) 2023-03-30 15:01:27 +08:00
谢昕辰 1dd65813f9
[Doc] Add English version document of the Training Engine (#2797) 2023-03-30 14:19:13 +08:00
CSH 3c26531e69
[Doc] Update add_datasets docs (#2745) 2023-03-23 15:42:16 +08:00
Miao Zheng 1ea397509e
[Doc] Refine training tricks documentation (#2755) 2023-03-22 14:37:54 +08:00
Miao Zheng ff95416c3b
[Features]Support dump segment predition (#2712)
## Motivation

1. It is used to save the segmentation predictions as files and upload
these files to a test server

## Modification

1. Add output_file and format only in `IoUMetric`
 
## BC-breaking (Optional)

No

## Use cases (Optional)

If this PR introduces a new feature, it is better to list some use cases
here, and update the documentation.

## Checklist

1. Pre-commit or other linting tools are used to fix the potential lint
issues.
3. The modification is covered by complete unit tests. If not, please
add more unit test to ensure the correctness.
4. If the modification has potential influence on downstream projects,
this PR should be tested with downstream projects, like MMDet or
MMDet3D.
5. The documentation has been modified accordingly, like docstring or
example tutorials.
2023-03-17 22:58:08 +08:00
Tianlong Ai 8c89ff3dd1
[Datasets] Add Mapillary Vistas Datasets to MMSeg Core Package. (#2576)
## [Datasets] Add Mapillary Vistas Datasets to MMSeg Core Package .
## Motivation
Add Mapillary Vistas Datasets to core package.
Old PR #2484 

## Modification
- Add Mapillary Vistas Datasets to core package.
- Delete `tools/datasets_convert/mapillary.py` , dataset does't need
converting.
- Add `schedule_240k.py`  config.
- Add configs files.  
  ```none
  deeplabv3plus_r101-d8_4xb2-240k_mapillay_v1-512x1024.py
  deeplabv3plus_r101-d8_4xb2-240k_mapillay_v2-512x1024.py
  maskformer_swin-s_4xb2-240k_mapillary_v1-512x1024.py
  maskformer_swin-s_4xb2-240k_mapillary_v2-512x1024.py
  maskformer_r101-d8_4xb2-240k_mapillary_v1-512x1024.py
  maskformer_r101-d8_4xb2-240k_mapillary_v2-512x1024.py
  pspnet_r101-d8_4xb2-240k_mapillay_v1-512x1024.py
  pspnet_r101-d8_4xb2-240k_mapillay_v2-512x1024.py
  ```
- Synchronized changes to `projects/mapillary_datasets`

---------

Co-authored-by: Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
Co-authored-by: xiexinch <xiexinch@outlook.com>
2023-03-15 14:44:38 +08:00
CSH 684d79fedc
[Doc] add zh_cn migration doc (#2733)
as title

---------

Co-authored-by: MeowZheng <meowzheng@outlook.com>
2023-03-13 19:23:22 +08:00
CSH 6468d3150a
[Doc] Add zh_cn transforms doc and format en doc (#2722)
as title
2023-03-09 22:28:58 +08:00
CSH 645dcf8c49
[Doc] Add zh_cn evaluation doc and fix en typo (#2701)
as title

---------

Signed-off-by: csatsurnh <cshan1995@126.com>
2023-03-09 22:27:42 +08:00
jinxianwei 7e41b5af8d
en doc of uisualization_feature_map.md (#2715)
## Motivation

En doc for visualization_feature_map.md and index.rst

## Modification

Add new file and change index.rst
2023-03-07 21:23:04 +08:00
MengzhangLI 91c62abcf4
[Fix] Fix the correct location of FAQ in dev-1.x (#2717) 2023-03-07 21:21:01 +08:00
CSH 6c3599bd9d
[Doc] Add zh_cn models doc and fix en doc typo (#2703)
as title

---------

Co-authored-by: Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
2023-03-07 11:47:10 +08:00
CSH e541d1acd4
[Doc] Add zh_cn add_models doc & fix link (#2702)
as title
2023-03-06 18:03:12 +08:00
谢昕辰 779b86cd74
bump v1.0.0rc6 (#2647)
as title
2023-03-03 16:54:12 +08:00
Miao Zheng aaa08dc4b2
[Doc] Refine MMSegmentation documentation (#2668) 2023-03-03 14:51:38 +08:00
Miao Zheng 310ec4afc7
[Enhancement] Modify interface of MMSeginferencer and add docs (#2658)
## Motivation

Make MMSeginferencer easier to be used

## Modification

1. Add `_load_weights_to_model` to MMSeginferencer, it is for get
`dataset_meta` from ckpt
2. Modify and remove some parameters of `__call__`, `visualization` and
`postprocess`
3. Add function of save seg mask, remove dump pkl.
4. Refine docstring of MMSeginferencer and SegLocalVisualizer
5. Add the user documentation of MMSeginferencer

## BC-breaking (Optional)

yes, remove some parameters, we need to discuss whether keep them with
deprecated waring or just remove them as the MMSeginferencer just merged
in mmseg a few days.

Co-authored-by: xiexinch <xiexinch@outlook.com>
2023-03-03 14:37:54 +08:00
Miao Zheng 619a3c2508
[Enhancement] Remove mmdet and mmcls from mminstall (#2642)
## Motivation

As the mmdet and mmcls are not very stabel, and mim can install repo
from source code, we remove them from mminstall and they won't be
installed automatically when run `mim install mmsegmentation`

## Modification

1. remove mmdet and mcls from mminstall
2. add explanation in faq

---------

Co-authored-by: MengzhangLI <mcmong@pku.edu.cn>
2023-02-24 14:57:54 +08:00
谢昕辰 039ba5d4ca
[Feature] Support auto import modules from registry. (#2481)
## 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
2023-02-23 20:33:17 +08:00
wangjiangben-hw e9d5b03607
[DOC] update link in NPU DOC (#2610)
## Motivation

update link in dock

## Modification

docs/en/device/npu.md
docs/zh_cn/device/npu.md
2023-02-16 17:43:18 +08:00
谢昕辰 a947e3e754
[FIx] Set default `backend_args` values to None (#2597)
## 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`.
2023-02-16 15:33:52 +08:00
wangjiangben-hw 9b8e8b730c
[NPU] add npu result (#2596)
Motivation
add NPU results -- apcnet, bisenetv1, bisenetv2 

Modification
add docs/en/device/npu.md and docs/zh_cn/device/npu.md that accompanies
the submission results.

---------

Co-authored-by: Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
2023-02-15 12:03:01 +08:00
Yijie Zheng 712612b1a1
[Doc] fix api name error in the migration doc (#2601)
as title
2023-02-15 11:14:22 +08:00
wangjiangben-hw 916ed2b2e2
[NPU] add npu result (#2569)
Motivation
add NPU results.

Modification
add docs/en/device/npu.md and docs/zh_cn/device/npu.md that accompanies
the submission results.

---------

Co-authored-by: Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
2023-02-07 16:36:36 +08:00
MengzhangLI b2577e0ba0
[Doc] Add EN custmized runtime doc in dev-1.x (#2533)
## Motivation
Translate Chinese version customized runtime doc into English
https://github.com/open-mmlab/mmsegmentation/pull/2502.
2023-02-07 14:47:22 +08:00
Andrew Lau 49b062e365
CodeCamp #139 [Feature] Support REFUGE dataset. (#2554)
## Motivation 
Add REFUGE datasets
Old PR: https://github.com/open-mmlab/mmsegmentation/pull/2420

---------

Co-authored-by: MengzhangLI <mcmong@pku.edu.cn>
2023-02-03 16:02:19 +08:00
谢昕辰 7ac0888d9f
Bump v1.0.0rc5 (#2549)
as title
2023-02-01 20:34:20 +08:00
Qingyun a092fea8c1
[Fix] Fix MaskFormer and Mask2Former of MMSegmentation (#2532)
## 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>
2023-02-01 18:58:21 +08:00
谢昕辰 124b87ce90
[Refactor] Refactor fileio (#2543)
## 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.
2023-02-01 17:53:22 +08:00
谢昕辰 18ee41eb7a
Bump v1.0.0rc4 (#2529) 2023-01-30 17:53:07 +08:00