mirror of
https://github.com/open-mmlab/mmsegmentation.git
synced 2025-06-03 22:03:48 +08:00
[Feature] Support LoveDA dataset (#1028)
* 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>
This commit is contained in:
parent
6070a0e1e7
commit
2bd7f60785
54
configs/_base_/datasets/loveda.py
Normal file
54
configs/_base_/datasets/loveda.py
Normal file
@ -0,0 +1,54 @@
|
||||
# dataset settings
|
||||
dataset_type = 'LoveDADataset'
|
||||
data_root = 'data/loveDA'
|
||||
img_norm_cfg = dict(
|
||||
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
|
||||
crop_size = (512, 512)
|
||||
train_pipeline = [
|
||||
dict(type='LoadImageFromFile'),
|
||||
dict(type='LoadAnnotations', reduce_zero_label=True),
|
||||
dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)),
|
||||
dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
|
||||
dict(type='RandomFlip', prob=0.5),
|
||||
dict(type='PhotoMetricDistortion'),
|
||||
dict(type='Normalize', **img_norm_cfg),
|
||||
dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
|
||||
dict(type='DefaultFormatBundle'),
|
||||
dict(type='Collect', keys=['img', 'gt_semantic_seg']),
|
||||
]
|
||||
test_pipeline = [
|
||||
dict(type='LoadImageFromFile'),
|
||||
dict(
|
||||
type='MultiScaleFlipAug',
|
||||
img_scale=(1024, 1024),
|
||||
# img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
|
||||
flip=False,
|
||||
transforms=[
|
||||
dict(type='Resize', keep_ratio=True),
|
||||
dict(type='RandomFlip'),
|
||||
dict(type='Normalize', **img_norm_cfg),
|
||||
dict(type='ImageToTensor', keys=['img']),
|
||||
dict(type='Collect', keys=['img']),
|
||||
])
|
||||
]
|
||||
data = dict(
|
||||
samples_per_gpu=4,
|
||||
workers_per_gpu=4,
|
||||
train=dict(
|
||||
type=dataset_type,
|
||||
data_root=data_root,
|
||||
img_dir='img_dir/train',
|
||||
ann_dir='ann_dir/train',
|
||||
pipeline=train_pipeline),
|
||||
val=dict(
|
||||
type=dataset_type,
|
||||
data_root=data_root,
|
||||
img_dir='img_dir/val',
|
||||
ann_dir='ann_dir/val',
|
||||
pipeline=test_pipeline),
|
||||
test=dict(
|
||||
type=dataset_type,
|
||||
data_root=data_root,
|
||||
img_dir='img_dir/val',
|
||||
ann_dir='ann_dir/val',
|
||||
pipeline=test_pipeline))
|
@ -85,6 +85,14 @@
|
||||
| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | - | 52.86 | 54.54 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59_20210416_111233-ed937f15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59/deeplabv3plus_r101-d8_480x480_40k_pascal_context_59-20210416_111233.log.json) |
|
||||
| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 53.2 | 54.67 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59-20210416_111127.log.json) |
|
||||
|
||||
#### LoveDA
|
||||
|
||||
| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download |
|
||||
| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| DeepLabV3+ | R-18-D8 | 512x512 | 80000 | 1.93 | 25.57 | 50.28 | 50.47 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda/deeplabv3plus_r18-d8_512x512_80k_loveda_20211104_132800-ce0fa0ca.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda/deeplabv3plus_r18-d8_512x512_80k_loveda_20211104_132800.log.json) |
|
||||
| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 7.37 | 6.00 | 50.99 | 50.65 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda/deeplabv3plus_r50-d8_512x512_80k_loveda_20211105_080442-f0720392.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda/deeplabv3plus_r50-d8_512x512_80k_loveda_20211105_080442.log.json) |
|
||||
| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 10.84 | 4.33 | 51.47 | 51.32 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda/deeplabv3plus_r101-d8_512x512_80k_loveda_20211105_110759-4c1f297e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda/deeplabv3plus_r101-d8_512x512_80k_loveda_20211105_110759.log.json) |
|
||||
|
||||
Note:
|
||||
|
||||
- `FP16` means Mixed Precision (FP16) is adopted in training.
|
||||
|
@ -599,3 +599,69 @@ Models:
|
||||
mIoU(ms+flip): 54.67
|
||||
Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59/deeplabv3plus_r101-d8_480x480_80k_pascal_context_59_20210416_111127-7ca0331d.pth
|
||||
- Name: deeplabv3plus_r18-d8_512x512_80k_loveda
|
||||
In Collection: deeplabv3plus
|
||||
Metadata:
|
||||
backbone: R-18-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 39.11
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 1.93
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: ADE20K
|
||||
Metrics:
|
||||
mIoU: 50.28
|
||||
mIoU(ms+flip): 50.47
|
||||
Config: configs/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x512_80k_loveda/deeplabv3plus_r18-d8_512x512_80k_loveda_20211104_132800-ce0fa0ca.pth
|
||||
- Name: deeplabv3plus_r50-d8_512x512_80k_loveda
|
||||
In Collection: deeplabv3plus
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 166.67
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 7.37
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: ADE20K
|
||||
Metrics:
|
||||
mIoU: 50.99
|
||||
mIoU(ms+flip): 50.65
|
||||
Config: configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_loveda/deeplabv3plus_r50-d8_512x512_80k_loveda_20211105_080442-f0720392.pth
|
||||
- Name: deeplabv3plus_r101-d8_512x512_80k_loveda
|
||||
In Collection: deeplabv3plus
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 230.95
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 10.84
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: ADE20K
|
||||
Metrics:
|
||||
mIoU: 51.47
|
||||
mIoU(ms+flip): 51.32
|
||||
Config: configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_loveda/deeplabv3plus_r101-d8_512x512_80k_loveda_20211105_110759-4c1f297e.pth
|
||||
|
@ -0,0 +1,6 @@
|
||||
_base_ = './deeplabv3plus_r50-d8_512x512_80k_loveda.py'
|
||||
model = dict(
|
||||
backbone=dict(
|
||||
depth=101,
|
||||
init_cfg=dict(
|
||||
type='Pretrained', checkpoint='open-mmlab://resnet101_v1c')))
|
@ -0,0 +1,13 @@
|
||||
_base_ = './deeplabv3plus_r50-d8_512x512_80k_loveda.py'
|
||||
model = dict(
|
||||
backbone=dict(
|
||||
depth=18,
|
||||
init_cfg=dict(
|
||||
type='Pretrained', checkpoint='open-mmlab://resnet18_v1c')),
|
||||
decode_head=dict(
|
||||
c1_in_channels=64,
|
||||
c1_channels=12,
|
||||
in_channels=512,
|
||||
channels=128,
|
||||
),
|
||||
auxiliary_head=dict(in_channels=256, channels=64))
|
@ -0,0 +1,6 @@
|
||||
_base_ = [
|
||||
'../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/loveda.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=7), auxiliary_head=dict(num_classes=7))
|
@ -73,3 +73,11 @@
|
||||
| ------ | ------------ | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| FCN | HRNetV2p-W48 | 480x480 | 40000 | - | - | 50.33 | 52.83 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59_20210410_122738-b808b8b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context_59/fcn_hr48_480x480_40k_pascal_context_59-20210410_122738.log.json) |
|
||||
| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 51.12 | 53.56 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59-20210411_003240.log.json) |
|
||||
|
||||
#### LoveDA
|
||||
|
||||
| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download |
|
||||
| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 1.72 | 30.07 | 49.3 | 49.23 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18s_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_loveda/fcn_hr18s_512x512_80k_loveda_20211105_180825-41dcc5dc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_loveda/fcn_hr18s_512x512_80k_loveda_20211105_180825.log.json) |
|
||||
| FCN | HRNetV2p-W18 | 512x512 | 80000 | 2.90 | 16.77 | 50.87 | 51.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr18_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_loveda/fcn_hr18_512x512_80k_loveda_20211105_165542-95be4d2b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_loveda/fcn_hr18_512x512_80k_loveda_20211105_165542.log.json) |
|
||||
| FCN | HRNetV2p-W48 | 512x512 | 80000 | 6.25 | 9.09 | 51.04 | 51.12 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet/fcn_hr48_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_loveda/fcn_hr48_512x512_80k_loveda_20211105_131509-f07e47c6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_loveda/fcn_hr48_512x512_80k_loveda_20211105_131509.log.json) |
|
||||
|
4
configs/hrnet/fcn_hr18_512x512_80k_loveda.py
Normal file
4
configs/hrnet/fcn_hr18_512x512_80k_loveda.py
Normal file
@ -0,0 +1,4 @@
|
||||
_base_ = [
|
||||
'../_base_/models/fcn_hr18.py', '../_base_/datasets/loveda.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
|
||||
]
|
11
configs/hrnet/fcn_hr18s_512x512_80k_loveda.py
Normal file
11
configs/hrnet/fcn_hr18s_512x512_80k_loveda.py
Normal file
@ -0,0 +1,11 @@
|
||||
_base_ = './fcn_hr18_512x512_80k_loveda.py'
|
||||
model = dict(
|
||||
backbone=dict(
|
||||
init_cfg=dict(
|
||||
type='Pretrained',
|
||||
checkpoint='open-mmlab://msra/hrnetv2_w18_small'),
|
||||
extra=dict(
|
||||
stage1=dict(num_blocks=(2, )),
|
||||
stage2=dict(num_blocks=(2, 2)),
|
||||
stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
|
||||
stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
|
11
configs/hrnet/fcn_hr48_512x512_80k_loveda.py
Normal file
11
configs/hrnet/fcn_hr48_512x512_80k_loveda.py
Normal file
@ -0,0 +1,11 @@
|
||||
_base_ = './fcn_hr18_512x512_80k_loveda.py'
|
||||
model = dict(
|
||||
backbone=dict(
|
||||
init_cfg=dict(
|
||||
type='Pretrained', checkpoint='open-mmlab://msra/hrnetv2_w48'),
|
||||
extra=dict(
|
||||
stage2=dict(num_channels=(48, 96)),
|
||||
stage3=dict(num_channels=(48, 96, 192)),
|
||||
stage4=dict(num_channels=(48, 96, 192, 384)))),
|
||||
decode_head=dict(
|
||||
in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
|
@ -447,3 +447,69 @@ Models:
|
||||
mIoU(ms+flip): 53.56
|
||||
Config: configs/hrnet/fcn_hr48_480x480_80k_pascal_context_59.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context_59/fcn_hr48_480x480_80k_pascal_context_59_20210411_003240-3ae7081e.pth
|
||||
- Name: fcn_hr18s_512x512_80k_loveda
|
||||
In Collection: hrnet
|
||||
Metadata:
|
||||
backbone: HRNetV2p-W18-Small
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 33.26
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 1.72
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: Pascal Context 59
|
||||
Metrics:
|
||||
mIoU: 49.3
|
||||
mIoU(ms+flip): 49.23
|
||||
Config: configs/hrnet/fcn_hr18s_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_loveda/fcn_hr18s_512x512_80k_loveda_20211105_180825-41dcc5dc.pth
|
||||
- Name: fcn_hr18_512x512_80k_loveda
|
||||
In Collection: hrnet
|
||||
Metadata:
|
||||
backbone: HRNetV2p-W18
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 59.63
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 2.9
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: Pascal Context 59
|
||||
Metrics:
|
||||
mIoU: 50.87
|
||||
mIoU(ms+flip): 51.24
|
||||
Config: configs/hrnet/fcn_hr18_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_loveda/fcn_hr18_512x512_80k_loveda_20211105_165542-95be4d2b.pth
|
||||
- Name: fcn_hr48_512x512_80k_loveda
|
||||
In Collection: hrnet
|
||||
Metadata:
|
||||
backbone: HRNetV2p-W48
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 110.01
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 6.25
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: Pascal Context 59
|
||||
Metrics:
|
||||
mIoU: 51.04
|
||||
mIoU(ms+flip): 51.12
|
||||
Config: configs/hrnet/fcn_hr48_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_loveda/fcn_hr48_512x512_80k_loveda_20211105_131509-f07e47c6.pth
|
||||
|
@ -98,21 +98,29 @@ We support evaluation results on these two datasets using models above trained o
|
||||
|
||||
| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download |
|
||||
| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| PSPNet | R-50-D8 | 512x512 | 20000 | 9.6 | 20.5 | 35.69 | 36.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258-b88df27f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 20000 | 13.2 | 11.1 | 37.26 | 38.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135-76aae482.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 36.33 | 37.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857-92e2902b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 37.76 | 38.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022-831aec95.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 20000 | 9.6 | 20.5 | 35.69 | 36.62 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258-b88df27f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k_20210820_203258.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 20000 | 13.2 | 11.1 | 37.26 | 38.52 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135-76aae482.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k_20210820_232135.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 36.33 | 37.24 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857-92e2902b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_030857.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 37.76 | 38.86 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022-831aec95.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_014022.log.json) |
|
||||
|
||||
### COCO-Stuff 164k
|
||||
|
||||
| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download |
|
||||
| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| PSPNet | R-50-D8 | 512x512 | 80000 | 9.6 | 20.5 | 38.80 | 39.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-0e41b2db.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 80000 | 13.2 | 11.1 | 40.34 | 40.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-7eb41789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 39.64 | 39.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-51276a57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 41.28 | 41.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 320000 | - | - | 40.53 | 40.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 320000 | - | - | 41.95 | 42.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 80000 | 9.6 | 20.5 | 38.80 | 39.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-0e41b2db.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 80000 | 13.2 | 11.1 | 40.34 | 40.79 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034-7eb41789.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k_20210707_152034.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 39.64 | 39.97 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-51276a57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 41.28 | 41.66 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004-4af9621b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k_20210707_152004.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 320000 | - | - | 40.53 | 40.75 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-be9610cc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 320000 | - | - | 41.95 | 42.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004.log.json) |
|
||||
|
||||
#### LoveDA
|
||||
|
||||
| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download |
|
||||
| ---------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| PSPNet | R-18-D8 | 512x512 | 80000 | 1.45 | 26.87 | 48.62 | 47.57 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x512_80k_loveda/pspnet_r18-d8_512x512_80k_loveda_20211105_052100-b97697f1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x512_80k_loveda/pspnet_r18-d8_512x512_80k_loveda_20211105_052100.log.json) |
|
||||
| PSPNet | R-50-D8 | 512x512 | 80000 | 6.14 | 6.60 | 50.46 | 50.19 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_loveda/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_loveda/pspnet_r50-d8_512x512_80k_loveda_20211104_155728.log.json) |
|
||||
| PSPNet | R-101-D8 | 512x512 | 80000 | 9.61 | 4.58 | 51.86 | 51.34 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_loveda/pspnet_r101-d8_512x512_80k_loveda_20211104_153212-1c06c6a8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_loveda/pspnet_r101-d8_512x512_80k_loveda_20211104_153212.log.json) |
|
||||
|
||||
Note:
|
||||
|
||||
|
@ -741,3 +741,69 @@ Models:
|
||||
mIoU(ms+flip): 42.42
|
||||
Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k_20210707_152004-72220c60.pth
|
||||
- Name: pspnet_r18-d8_512x512_80k_loveda
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-18-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 37.22
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 1.45
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 48.62
|
||||
mIoU(ms+flip): 47.57
|
||||
Config: configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x512_80k_loveda/pspnet_r18-d8_512x512_80k_loveda_20211105_052100-b97697f1.pth
|
||||
- Name: pspnet_r50-d8_512x512_80k_loveda
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 151.52
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 6.14
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 50.46
|
||||
mIoU(ms+flip): 50.19
|
||||
Config: configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_loveda/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth
|
||||
- Name: pspnet_r101-d8_512x512_80k_loveda
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 80000
|
||||
inference time (ms/im):
|
||||
- value: 218.34
|
||||
hardware: V100
|
||||
backend: PyTorch
|
||||
batch size: 1
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
memory (GB): 9.61
|
||||
Results:
|
||||
- Task: Semantic Segmentation
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 51.86
|
||||
mIoU(ms+flip): 51.34
|
||||
Config: configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_loveda/pspnet_r101-d8_512x512_80k_loveda_20211104_153212-1c06c6a8.pth
|
||||
|
6
configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py
Normal file
6
configs/pspnet/pspnet_r101-d8_512x512_80k_loveda.py
Normal file
@ -0,0 +1,6 @@
|
||||
_base_ = './pspnet_r50-d8_512x512_80k_loveda.py'
|
||||
model = dict(
|
||||
backbone=dict(
|
||||
depth=101,
|
||||
init_cfg=dict(
|
||||
type='Pretrained', checkpoint='open-mmlab://resnet101_v1c')))
|
11
configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py
Normal file
11
configs/pspnet/pspnet_r18-d8_512x512_80k_loveda.py
Normal file
@ -0,0 +1,11 @@
|
||||
_base_ = './pspnet_r50-d8_512x512_80k_loveda.py'
|
||||
model = dict(
|
||||
backbone=dict(
|
||||
depth=18,
|
||||
init_cfg=dict(
|
||||
type='Pretrained', checkpoint='open-mmlab://resnet18_v1c')),
|
||||
decode_head=dict(
|
||||
in_channels=512,
|
||||
channels=128,
|
||||
),
|
||||
auxiliary_head=dict(in_channels=256, channels=64))
|
6
configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py
Normal file
6
configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py
Normal file
@ -0,0 +1,6 @@
|
||||
_base_ = [
|
||||
'../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/loveda.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=7), auxiliary_head=dict(num_classes=7))
|
@ -108,6 +108,14 @@ mmsegmentation
|
||||
| | └── leftImg8bit
|
||||
| | | └── test
|
||||
| | | └── night
|
||||
│ ├── loveDA
|
||||
│ │ ├── img_dir
|
||||
│ │ │ ├── train
|
||||
│ │ │ ├── val
|
||||
│ │ │ ├── test
|
||||
│ │ ├── ann_dir
|
||||
│ │ │ ├── train
|
||||
│ │ │ ├── val
|
||||
```
|
||||
|
||||
### Cityscapes
|
||||
@ -253,3 +261,28 @@ Since we only support test models on this dataset, you may only download [the va
|
||||
### Nighttime Driving
|
||||
|
||||
Since we only support test models on this dataset, you may only download [the test set](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip).
|
||||
|
||||
### LoveDA
|
||||
|
||||
The data could be downloaded from Google Drive [here](https://drive.google.com/drive/folders/1ibYV0qwn4yuuh068Rnc-w4tPi0U0c-ti?usp=sharing).
|
||||
|
||||
Or it can be downloaded from [zenodo](https://zenodo.org/record/5706578#.YZvN7SYRXdF), you should run the following command:
|
||||
|
||||
```shell
|
||||
# Download Train.zip
|
||||
wget https://zenodo.org/record/5706578/files/Train.zip
|
||||
# Download Val.zip
|
||||
wget https://zenodo.org/record/5706578/files/Val.zip
|
||||
# Download Test.zip
|
||||
wget https://zenodo.org/record/5706578/files/Test.zip
|
||||
```
|
||||
|
||||
For LoveDA dataset, please run the following command to download and re-organize the dataset.
|
||||
|
||||
```shell
|
||||
python tools/convert_datasets/loveda.py /path/to/loveDA
|
||||
```
|
||||
|
||||
Using trained model to predict test set of LoveDA and submit it to server can be found [here](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/inference.md).
|
||||
|
||||
More details about LoveDA can be found [here](https://github.com/Junjue-Wang/LoveDA).
|
||||
|
@ -101,3 +101,25 @@ Assume that you have already downloaded the checkpoints to the directory `checkp
|
||||
```
|
||||
|
||||
Using ```pmap``` to view CPU memory footprint, it used 2.25GB CPU memory with ```efficient_test=True``` and 11.06GB CPU memory with ```efficient_test=False``` . This optional parameter can save a lot of memory. (After mmseg v0.17, efficient_test has not effect and we use a progressive mode to evaluation and format results efficiently by default.)
|
||||
|
||||
7. Test PSPNet on LoveDA test split with 1 GPU, and generate the png files to be submit to the official evaluation server.
|
||||
|
||||
First, add following to config file `configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py`,
|
||||
|
||||
```python
|
||||
data = dict(
|
||||
test=dict(
|
||||
img_dir='img_dir/test',
|
||||
ann_dir='ann_dir/test'))
|
||||
```
|
||||
|
||||
Then run test.
|
||||
|
||||
```shell
|
||||
python ./tools/test.py configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py \
|
||||
checkpoints/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth \
|
||||
--format-only --eval-options "imgfile_prefix=./pspnet_test_results"
|
||||
```
|
||||
|
||||
You will get png files under `./pspnet_test_results` directory.
|
||||
You may run `zip -r -j Results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://competitions.codalab.org/competitions/35865#participate-submit_results).
|
||||
|
@ -89,6 +89,14 @@ mmsegmentation
|
||||
| | └── leftImg8bit
|
||||
| | | └── test
|
||||
| | | └── night
|
||||
│ ├── loveDA
|
||||
│ │ ├── img_dir
|
||||
│ │ │ ├── train
|
||||
│ │ │ ├── val
|
||||
│ │ │ ├── test
|
||||
│ │ ├── ann_dir
|
||||
│ │ │ ├── train
|
||||
│ │ │ ├── val
|
||||
```
|
||||
|
||||
### Cityscapes
|
||||
@ -190,8 +198,33 @@ python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels
|
||||
|
||||
### Dark Zurich
|
||||
|
||||
因为我们只支持在此数据集上测试模型,所以您只需下载[验证集](https://data.vision.ee.ethz.ch/csakarid/shared/GCMA_UIoU/Dark_Zurich_val_anon.zip)。
|
||||
因为我们只支持在此数据集上测试模型,所以您只需下载[验证集](https://data.vision.ee.ethz.ch/csakarid/shared/GCMA_UIoU/Dark_Zurich_val_anon.zip) 。
|
||||
|
||||
### Nighttime Driving
|
||||
|
||||
因为我们只支持在此数据集上测试模型,所以您只需下载[测试集](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip)。
|
||||
因为我们只支持在此数据集上测试模型,所以您只需下载[测试集](http://data.vision.ee.ethz.ch/daid/NighttimeDriving/NighttimeDrivingTest.zip) 。
|
||||
|
||||
### LoveDA
|
||||
|
||||
可以从 Google Drive 里下载 [LoveDA数据集](https://drive.google.com/drive/folders/1ibYV0qwn4yuuh068Rnc-w4tPi0U0c-ti?usp=sharing) 。
|
||||
|
||||
或者它还可以从 [zenodo](https://zenodo.org/record/5706578#.YZvN7SYRXdF) 下载, 您需要运行如下命令:
|
||||
|
||||
```shell
|
||||
# Download Train.zip
|
||||
wget https://zenodo.org/record/5706578/files/Train.zip
|
||||
# Download Val.zip
|
||||
wget https://zenodo.org/record/5706578/files/Val.zip
|
||||
# Download Test.zip
|
||||
wget https://zenodo.org/record/5706578/files/Test.zip
|
||||
```
|
||||
|
||||
对于 LoveDA 数据集,请运行以下命令下载并重新组织数据集
|
||||
|
||||
```shell
|
||||
python tools/convert_datasets/loveda.py /path/to/loveDA
|
||||
```
|
||||
|
||||
请参照 [这里](https://github.com/open-mmlab/mmsegmentation/blob/master/docs_zh-CN/inference.md) 来使用训练好的模型去预测 LoveDA 测试集并且提交到官网。
|
||||
|
||||
关于 LoveDA 的更多细节可以在[这里](https://github.com/Junjue-Wang/LoveDA) 找到。
|
||||
|
@ -84,7 +84,7 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}]
|
||||
```
|
||||
|
||||
您会在文件夹 `./pspnet_test_results` 里得到生成的 png 文件。
|
||||
您也许可以运行 `zip -r results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://www.cityscapes-dataset.com/submit/)。
|
||||
您也许可以运行 `zip -r results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://www.cityscapes-dataset.com/submit/) 。
|
||||
|
||||
6. 在 Cityscapes 数据集上使用 CPU 高效内存选项来测试 DeeplabV3+ `mIoU` 指标 (没有保存测试结果)
|
||||
|
||||
@ -97,3 +97,25 @@ python tools/test.py ${配置文件} ${检查点文件} [--out ${结果文件}]
|
||||
```
|
||||
|
||||
使用 ```pmap``` 可查看 CPU 内存情况, ```efficient_test=True``` 会使用约 2.25GB 的 CPU 内存, ```efficient_test=False``` 会使用约 11.06GB 的 CPU 内存。 这个可选参数可以节约很多 CPU 内存。(MMseg v0.17 之后, `efficient_test` 参数将不再生效, 我们使用了一种渐近的方式来更加有效快速地评估和保存结果。)
|
||||
|
||||
7. 在 LoveDA 数据集上1卡 GPU 测试 PSPNet, 并生成 png 文件以便提交给官方评估服务器
|
||||
|
||||
首先,在配置文件里添加内容: `configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py`,
|
||||
|
||||
```python
|
||||
data = dict(
|
||||
test=dict(
|
||||
img_dir='img_dir/test',
|
||||
ann_dir='ann_dir/test'))
|
||||
```
|
||||
|
||||
随后,进行测试。
|
||||
|
||||
```shell
|
||||
python ./tools/test.py configs/pspnet/pspnet_r50-d8_512x512_80k_loveda.py \
|
||||
checkpoints/pspnet_r50-d8_512x512_80k_loveda_20211104_155728-88610f9f.pth \
|
||||
--format-only --eval-options "imgfile_prefix=./pspnet_test_results"
|
||||
```
|
||||
|
||||
您会在文件夹 `./pspnet_test_results` 里得到生成的 png 文件。
|
||||
您也许可以运行 `zip -r -j Results.zip pspnet_test_results/` 并提交 zip 文件给 [evaluation server](https://competitions.codalab.org/competitions/35865#participate-submit_results) 。
|
||||
|
@ -9,6 +9,7 @@ from .dark_zurich import DarkZurichDataset
|
||||
from .dataset_wrappers import ConcatDataset, RepeatDataset
|
||||
from .drive import DRIVEDataset
|
||||
from .hrf import HRFDataset
|
||||
from .loveda import LoveDADataset
|
||||
from .night_driving import NightDrivingDataset
|
||||
from .pascal_context import PascalContextDataset, PascalContextDataset59
|
||||
from .stare import STAREDataset
|
||||
@ -20,5 +21,5 @@ __all__ = [
|
||||
'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset',
|
||||
'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset',
|
||||
'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset',
|
||||
'COCOStuffDataset'
|
||||
'COCOStuffDataset', 'LoveDADataset'
|
||||
]
|
||||
|
@ -94,7 +94,7 @@ class ADE20KDataset(CustomDataset):
|
||||
"""Write the segmentation results to images.
|
||||
|
||||
Args:
|
||||
results (list[list | tuple | ndarray]): Testing results of the
|
||||
results (list[ndarray]): Testing results of the
|
||||
dataset.
|
||||
imgfile_prefix (str): The filename prefix of the png files.
|
||||
If the prefix is "somepath/xxx",
|
||||
|
@ -52,7 +52,7 @@ class CityscapesDataset(CustomDataset):
|
||||
"""Write the segmentation results to images.
|
||||
|
||||
Args:
|
||||
results (list[list | tuple | ndarray]): Testing results of the
|
||||
results (list[ndarray]): Testing results of the
|
||||
dataset.
|
||||
imgfile_prefix (str): The filename prefix of the png files.
|
||||
If the prefix is "somepath/xxx",
|
||||
|
92
mmseg/datasets/loveda.py
Normal file
92
mmseg/datasets/loveda.py
Normal file
@ -0,0 +1,92 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import os.path as osp
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
|
||||
from .builder import DATASETS
|
||||
from .custom import CustomDataset
|
||||
|
||||
|
||||
@DATASETS.register_module()
|
||||
class LoveDADataset(CustomDataset):
|
||||
"""LoveDA dataset.
|
||||
|
||||
In segmentation map annotation for LoveDA, 0 is the ignore index.
|
||||
``reduce_zero_label`` should be set to True. The ``img_suffix`` and
|
||||
``seg_map_suffix`` are both fixed to '.png'.
|
||||
"""
|
||||
CLASSES = ('background', 'building', 'road', 'water', 'barren', 'forest',
|
||||
'agricultural')
|
||||
|
||||
PALETTE = [[255, 255, 255], [255, 0, 0], [255, 255, 0], [0, 0, 255],
|
||||
[159, 129, 183], [0, 255, 0], [255, 195, 128]]
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(LoveDADataset, self).__init__(
|
||||
img_suffix='.png',
|
||||
seg_map_suffix='.png',
|
||||
reduce_zero_label=True,
|
||||
**kwargs)
|
||||
|
||||
def results2img(self, results, imgfile_prefix, indices=None):
|
||||
"""Write the segmentation results to images.
|
||||
|
||||
Args:
|
||||
results (list[ndarray]): Testing results of the
|
||||
dataset.
|
||||
imgfile_prefix (str): The filename prefix of the png files.
|
||||
If the prefix is "somepath/xxx",
|
||||
the png files will be named "somepath/xxx.png".
|
||||
indices (list[int], optional): Indices of input results, if not
|
||||
set, all the indices of the dataset will be used.
|
||||
Default: None.
|
||||
|
||||
Returns:
|
||||
list[str: str]: result txt files which contains corresponding
|
||||
semantic segmentation images.
|
||||
"""
|
||||
|
||||
mmcv.mkdir_or_exist(imgfile_prefix)
|
||||
result_files = []
|
||||
for result, idx in zip(results, indices):
|
||||
|
||||
filename = self.img_infos[idx]['filename']
|
||||
basename = osp.splitext(osp.basename(filename))[0]
|
||||
|
||||
png_filename = osp.join(imgfile_prefix, f'{basename}.png')
|
||||
|
||||
# The index range of official requirement is from 0 to 6.
|
||||
output = Image.fromarray(result.astype(np.uint8))
|
||||
output.save(png_filename)
|
||||
result_files.append(png_filename)
|
||||
|
||||
return result_files
|
||||
|
||||
def format_results(self, results, imgfile_prefix, indices=None):
|
||||
"""Format the results into dir (standard format for LoveDA evaluation).
|
||||
|
||||
Args:
|
||||
results (list): Testing results of the dataset.
|
||||
imgfile_prefix (str): The prefix of images files. It
|
||||
includes the file path and the prefix of filename, e.g.,
|
||||
"a/b/prefix".
|
||||
indices (list[int], optional): Indices of input results,
|
||||
if not set, all the indices of the dataset will be used.
|
||||
Default: None.
|
||||
|
||||
Returns:
|
||||
tuple: (result_files, tmp_dir), result_files is a list containing
|
||||
the image paths, tmp_dir is the temporal directory created
|
||||
for saving json/png files when img_prefix is not specified.
|
||||
"""
|
||||
if indices is None:
|
||||
indices = list(range(len(self)))
|
||||
|
||||
assert isinstance(results, list), 'results must be a list.'
|
||||
assert isinstance(indices, list), 'indices must be a list.'
|
||||
|
||||
result_files = self.results2img(results, imgfile_prefix, indices)
|
||||
|
||||
return result_files
|
BIN
tests/data/pseudo_loveda_dataset/ann_dir/0.png
Normal file
BIN
tests/data/pseudo_loveda_dataset/ann_dir/0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
BIN
tests/data/pseudo_loveda_dataset/ann_dir/1.png
Normal file
BIN
tests/data/pseudo_loveda_dataset/ann_dir/1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
tests/data/pseudo_loveda_dataset/ann_dir/2.png
Normal file
BIN
tests/data/pseudo_loveda_dataset/ann_dir/2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
BIN
tests/data/pseudo_loveda_dataset/img_dir/0.png
Normal file
BIN
tests/data/pseudo_loveda_dataset/img_dir/0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
BIN
tests/data/pseudo_loveda_dataset/img_dir/1.png
Normal file
BIN
tests/data/pseudo_loveda_dataset/img_dir/1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
BIN
tests/data/pseudo_loveda_dataset/img_dir/2.png
Normal file
BIN
tests/data/pseudo_loveda_dataset/img_dir/2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 MiB |
@ -13,8 +13,8 @@ from PIL import Image
|
||||
|
||||
from mmseg.core.evaluation import get_classes, get_palette
|
||||
from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,
|
||||
ConcatDataset, CustomDataset, PascalVOCDataset,
|
||||
RepeatDataset, build_dataset)
|
||||
ConcatDataset, CustomDataset, LoveDADataset,
|
||||
PascalVOCDataset, RepeatDataset, build_dataset)
|
||||
|
||||
|
||||
def test_classes():
|
||||
@ -622,6 +622,32 @@ def test_concat_cityscapes(separate_eval):
|
||||
separate_eval=separate_eval)
|
||||
|
||||
|
||||
def test_loveda():
|
||||
test_dataset = LoveDADataset(
|
||||
pipeline=[],
|
||||
img_dir=osp.join(
|
||||
osp.dirname(__file__), '../data/pseudo_loveda_dataset/img_dir'),
|
||||
ann_dir=osp.join(
|
||||
osp.dirname(__file__), '../data/pseudo_loveda_dataset/ann_dir'))
|
||||
assert len(test_dataset) == 3
|
||||
|
||||
gt_seg_maps = list(test_dataset.get_gt_seg_maps())
|
||||
|
||||
# Test format_results
|
||||
pseudo_results = []
|
||||
for idx in range(len(test_dataset)):
|
||||
h, w = gt_seg_maps[idx].shape
|
||||
pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w)))
|
||||
file_paths = test_dataset.format_results(pseudo_results, '.format_loveda')
|
||||
assert len(file_paths) == len(test_dataset)
|
||||
# Test loveda evaluate
|
||||
|
||||
test_dataset.evaluate(
|
||||
pseudo_results, metric='mIoU', imgfile_prefix='.format_loveda')
|
||||
|
||||
shutil.rmtree('.format_loveda')
|
||||
|
||||
|
||||
@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock)
|
||||
@patch('mmseg.datasets.CustomDataset.__getitem__',
|
||||
MagicMock(side_effect=lambda idx: idx))
|
||||
|
73
tools/convert_datasets/loveda.py
Normal file
73
tools/convert_datasets/loveda.py
Normal file
@ -0,0 +1,73 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import argparse
|
||||
import os
|
||||
import os.path as osp
|
||||
import shutil
|
||||
import tempfile
|
||||
import zipfile
|
||||
|
||||
import mmcv
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Convert LoveDA dataset to mmsegmentation format')
|
||||
parser.add_argument('dataset_path', help='LoveDA folder path')
|
||||
parser.add_argument('--tmp_dir', help='path of the temporary directory')
|
||||
parser.add_argument('-o', '--out_dir', help='output path')
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
dataset_path = args.dataset_path
|
||||
if args.out_dir is None:
|
||||
out_dir = osp.join('data', 'loveDA')
|
||||
else:
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'test'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
|
||||
assert 'Train.zip' in os.listdir(dataset_path), \
|
||||
'Train.zip is not in {}'.format(dataset_path)
|
||||
assert 'Val.zip' in os.listdir(dataset_path), \
|
||||
'Val.zip is not in {}'.format(dataset_path)
|
||||
assert 'Test.zip' in os.listdir(dataset_path), \
|
||||
'Test.zip is not in {}'.format(dataset_path)
|
||||
|
||||
with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
|
||||
for dataset in ['Train', 'Val', 'Test']:
|
||||
zip_file = zipfile.ZipFile(
|
||||
os.path.join(dataset_path, dataset + '.zip'))
|
||||
zip_file.extractall(tmp_dir)
|
||||
data_type = dataset.lower()
|
||||
for location in ['Rural', 'Urban']:
|
||||
for image_type in ['images_png', 'masks_png']:
|
||||
if image_type == 'images_png':
|
||||
dst = osp.join(out_dir, 'img_dir', data_type)
|
||||
else:
|
||||
dst = osp.join(out_dir, 'ann_dir', data_type)
|
||||
if dataset == 'Test' and image_type == 'masks_png':
|
||||
continue
|
||||
else:
|
||||
src_dir = osp.join(tmp_dir, dataset, location,
|
||||
image_type)
|
||||
src_lst = os.listdir(src_dir)
|
||||
for file in src_lst:
|
||||
shutil.move(osp.join(src_dir, file), dst)
|
||||
print('Removing the temporary files...')
|
||||
|
||||
print('Done!')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
x
Reference in New Issue
Block a user