support coco stuff-10k/164k (#625)
* support coco stuff-10k/164k * update docs * fix docs * update docs * fix import lints * Update docs/dataset_prepare.md * Update docs/dataset_prepare.md * Update tools/convert_datasets/coco_stuff164k.py * Update tools/convert_datasets/coco_stuff10k.py * Update tools/convert_datasets/coco_stuff10k.py * Update tools/convert_datasets/coco_stuff10k.py * Update tools/convert_datasets/coco_stuff10k.py * Update coco_stuff.py fix the description of the dataset * Update dataset_prepare.md fix the doc tree of coco stuff 10k * Update coco_stuff10k.py fix img_dir * Update coco_stuff.py fix descriptions * Update coco_stuff164k.py fix out_dir * Update coco_stuff10k.py fix save file name * Update coco_stuff.py fix seg_map_suffix * Update dataset_prepare.md fix -p * Update dataset_prepare.md fix doc tree * modify coco stuff convertor * Remove redundant code * fix 164k convert bug * remove redundant comment * add deeplabv3 configs and more iterations * replace shutil.move with shtil.copyfile * Update deeplabv3_r50-d8_512x512_4x4_80k_coco_stuff10k.py fix wrong config * Update deeplabv3_r101-d8_512x512_4x4_80k_coco_stuff164k.py fix wrong config * fix wrong configs * fix wrong configs * fix wrong path for coco stuff 10k * fix convert bugs * fix seg_filename bug * when nproc=0, use track progress * rename configs: coco_stuff --> coco-stuff * add coco-stuff 10k and 164k to README.md * update configs * add deeplabv3 benchmark * add pspnet benchmark * remove redundant comma Co-authored-by: Junjun2016 <hejunjun@sjtu.edu.cn>
This commit is contained in:
parent
4e6f2ebced
commit
62f70ebedd
@ -102,12 +102,15 @@ Supported datasets:
|
||||
- [x] [PASCAL VOC](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-voc)
|
||||
- [x] [ADE20K](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#ade20k)
|
||||
- [x] [Pascal Context](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-context)
|
||||
- [x] [COCO-Stuff 10k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-10k)
|
||||
- [x] [COCO-Stuff 164k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-164k)
|
||||
- [x] [CHASE_DB1](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#chase-db1)
|
||||
- [x] [DRIVE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#drive)
|
||||
- [x] [HRF](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#hrf)
|
||||
- [x] [STARE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#stare)
|
||||
- [x] [Dark Zurich](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#dark-zurich)
|
||||
- [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving)
|
||||
- [x] [Nighttime Driving](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#nighttime-driving)
|
||||
|
||||
## Installation
|
||||
|
||||
|
||||
@ -101,6 +101,8 @@ MMSegmentation 是一个基于 PyTorch 的语义分割开源工具箱。它是 O
|
||||
- [x] [PASCAL VOC](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-voc)
|
||||
- [x] [ADE20K](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#ade20k)
|
||||
- [x] [Pascal Context](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#pascal-context)
|
||||
- [x] [COCO-Stuff 10k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-10k)
|
||||
- [x] [COCO-Stuff 164k](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#coco-stuff-164k)
|
||||
- [x] [CHASE_DB1](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#chase-db1)
|
||||
- [x] [DRIVE](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#drive)
|
||||
- [x] [HRF](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/dataset_prepare.md#hrf)
|
||||
|
||||
57
configs/_base_/datasets/coco-stuff10k.py
Normal file
57
configs/_base_/datasets/coco-stuff10k.py
Normal file
@ -0,0 +1,57 @@
|
||||
# dataset settings
|
||||
dataset_type = 'COCOStuffDataset'
|
||||
data_root = 'data/coco_stuff10k'
|
||||
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=(2048, 512),
|
||||
# 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,
|
||||
reduce_zero_label=True,
|
||||
img_dir='images/train2014',
|
||||
ann_dir='annotations/train2014',
|
||||
pipeline=train_pipeline),
|
||||
val=dict(
|
||||
type=dataset_type,
|
||||
data_root=data_root,
|
||||
reduce_zero_label=True,
|
||||
img_dir='images/test2014',
|
||||
ann_dir='annotations/test2014',
|
||||
pipeline=test_pipeline),
|
||||
test=dict(
|
||||
type=dataset_type,
|
||||
data_root=data_root,
|
||||
reduce_zero_label=True,
|
||||
img_dir='images/test2014',
|
||||
ann_dir='annotations/test2014',
|
||||
pipeline=test_pipeline))
|
||||
54
configs/_base_/datasets/coco-stuff164k.py
Normal file
54
configs/_base_/datasets/coco-stuff164k.py
Normal file
@ -0,0 +1,54 @@
|
||||
# dataset settings
|
||||
dataset_type = 'COCOStuffDataset'
|
||||
data_root = 'data/coco_stuff164k'
|
||||
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'),
|
||||
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=(2048, 512),
|
||||
# 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='images/train2017',
|
||||
ann_dir='annotations/train2017',
|
||||
pipeline=train_pipeline),
|
||||
val=dict(
|
||||
type=dataset_type,
|
||||
data_root=data_root,
|
||||
img_dir='images/val2017',
|
||||
ann_dir='annotations/val2017',
|
||||
pipeline=test_pipeline),
|
||||
test=dict(
|
||||
type=dataset_type,
|
||||
data_root=data_root,
|
||||
img_dir='images/val2017',
|
||||
ann_dir='annotations/val2017',
|
||||
pipeline=test_pipeline))
|
||||
9
configs/_base_/schedules/schedule_320k.py
Normal file
9
configs/_base_/schedules/schedule_320k.py
Normal file
@ -0,0 +1,9 @@
|
||||
# optimizer
|
||||
optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
|
||||
optimizer_config = dict()
|
||||
# learning policy
|
||||
lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
|
||||
# runtime settings
|
||||
runner = dict(type='IterBasedRunner', max_iters=320000)
|
||||
checkpoint_config = dict(by_epoch=False, interval=32000)
|
||||
evaluation = dict(interval=32000, metric='mIoU')
|
||||
@ -73,3 +73,23 @@
|
||||
| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| DeepLabV3 | R-101-D8 | 480x480 | 40000 | - | - | 52.61 | 54.28 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59_20210416_110332-cb08ea46.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context_59/deeplabv3_r101-d8_480x480_40k_pascal_context_59-20210416_110332.log.json) |
|
||||
| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 52.46 | 54.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59-20210416_113002.log.json) |
|
||||
|
||||
### COCO-Stuff 10k
|
||||
|
||||
| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download |
|
||||
| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 9.6 | 10.8 | 34.66 | 36.08 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-b35f789d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025.log.json) |
|
||||
| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 13.2 | 8.7 | 37.30 | 38.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-c49752cb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025.log.json) |
|
||||
| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 35.73 | 37.09 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-dc76f3ff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305.log.json) |
|
||||
| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 37.81 | 38.80 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-636cb433.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305.log.json) |
|
||||
|
||||
### COCO-Stuff 164k
|
||||
|
||||
| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | config | download |
|
||||
| --------- | -------- | --------- | ------: | -------- | -------------- | ----: | ------------: | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 9.6 | 10.8 | 39.38 | 40.03 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k_20210709_163016-88675c24.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k_20210709_163016.log.json) |
|
||||
| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 13.2 | 8.7 | 40.87 | 41.50 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k_20210709_201252-13600dc2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k_20210709_201252.log.json) |
|
||||
| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 41.09 | 41.69 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k_20210709_163016-49f2812b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k_20210709_163016.log.json) |
|
||||
| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 41.82 | 42.49 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402-f035acfd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402.log.json) |
|
||||
| DeepLabV3 | R-50-D8 | 512x512 | 320000 | - | - | 41.37 | 42.22 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403-51b21115.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403.log.json) |
|
||||
| DeepLabV3 | R-101-D8 | 512x512 | 320000 | - | - | 42.61 | 43.42 | [config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402.log.json) |
|
||||
|
||||
@ -6,6 +6,8 @@ Collections:
|
||||
- Pascal VOC 2012 + Aug
|
||||
- Pascal Context
|
||||
- Pascal Context 59
|
||||
- COCO-Stuff 10k
|
||||
- COCO-Stuff 164k
|
||||
Name: deeplabv3
|
||||
Models:
|
||||
- Config: configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py
|
||||
@ -550,3 +552,175 @@ Models:
|
||||
mIoU(ms+flip): 54.09
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context_59/deeplabv3_r101-d8_480x480_80k_pascal_context_59_20210416_113002-26303993.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 92.59
|
||||
lr schd: 20000
|
||||
memory (GB): 9.6
|
||||
Name: deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 34.66
|
||||
mIoU(ms+flip): 36.08
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-b35f789d.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 114.94
|
||||
lr schd: 20000
|
||||
memory (GB): 13.2
|
||||
Name: deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 37.3
|
||||
mIoU(ms+flip): 38.42
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_20k_coco-stuff10k_20210821_043025-c49752cb.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 40000
|
||||
Name: deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 35.73
|
||||
mIoU(ms+flip): 37.09
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-dc76f3ff.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 40000
|
||||
Name: deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 37.81
|
||||
mIoU(ms+flip): 38.8
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k/deeplabv3_r101-d8_512x512_4x4_40k_coco-stuff10k_20210821_043305-636cb433.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 92.59
|
||||
lr schd: 80000
|
||||
memory (GB): 9.6
|
||||
Name: deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 39.38
|
||||
mIoU(ms+flip): 40.03
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k_20210709_163016-88675c24.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 114.94
|
||||
lr schd: 80000
|
||||
memory (GB): 13.2
|
||||
Name: deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 40.87
|
||||
mIoU(ms+flip): 41.5
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_80k_coco-stuff164k_20210709_201252-13600dc2.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 160000
|
||||
Name: deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 41.09
|
||||
mIoU(ms+flip): 41.69
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k_20210709_163016-49f2812b.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 160000
|
||||
Name: deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 41.82
|
||||
mIoU(ms+flip): 42.49
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_160k_coco-stuff164k_20210709_155402-f035acfd.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 320000
|
||||
Name: deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 41.37
|
||||
mIoU(ms+flip): 42.22
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k_20210709_155403-51b21115.pth
|
||||
- Config: configs/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k.py
|
||||
In Collection: deeplabv3
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 320000
|
||||
Name: deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 42.61
|
||||
mIoU(ms+flip): 43.42
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k/deeplabv3_r101-d8_512x512_4x4_320k_coco-stuff164k_20210709_155402-3cbca14d.pth
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './deeplabv3_r50-d8_512x512_4x4_160k_coco-stuff164k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './deeplabv3_r50-d8_512x512_4x4_20k_coco-stuff10k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './deeplabv3_r50-d8_512x512_4x4_320k_coco-stuff164k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './deeplabv3_r50-d8_512x512_4x4_40k_coco-stuff10k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './deeplabv3_r50-d8_512x512_4x4_80k_coco-stuff164k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/deeplabv3_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_160k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/deeplabv3_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff10k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_20k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/deeplabv3_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_320k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/deeplabv3_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff10k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/deeplabv3_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -83,3 +83,23 @@ We support evaluation results on these two datasets using models above trained o
|
||||
|PSPNet|R-101b-D8|Cityscapes Training set |Dark Zurich |15.54|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_dark.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) |
|
||||
|PSPNet|R-101b-D8|Cityscapes Training set |Nighttime Driving|22.25|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_night_driving.py)| [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) |
|
||||
|PSPNet|R-101b-D8|Cityscapes Training set |Cityscapes Validation set|79.69|[config](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py) | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) |
|
||||
|
||||
### COCO-Stuff 10k
|
||||
|
||||
| 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) |
|
||||
|
||||
### 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) |
|
||||
|
||||
@ -7,6 +7,8 @@ Collections:
|
||||
- Pascal Context
|
||||
- Pascal Context 59
|
||||
- Dark Zurich and Nighttime Driving
|
||||
- COCO-Stuff 10k
|
||||
- COCO-Stuff 164k
|
||||
Name: pspnet
|
||||
Models:
|
||||
- Config: configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py
|
||||
@ -537,3 +539,175 @@ Models:
|
||||
mIoU(ms+flip): 53.99
|
||||
Task: Semantic Segmentation
|
||||
Weights: https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context_59/pspnet_r101-d8_480x480_80k_pascal_context_59_20210416_114418-fa6caaa2.pth
|
||||
- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 48.78
|
||||
lr schd: 20000
|
||||
memory (GB): 9.6
|
||||
Name: pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 35.69
|
||||
mIoU(ms+flip): 36.62
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 90.09
|
||||
lr schd: 20000
|
||||
memory (GB): 13.2
|
||||
Name: pspnet_r101-d8_512x512_4x4_20k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 37.26
|
||||
mIoU(ms+flip): 38.52
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 40000
|
||||
Name: pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 36.33
|
||||
mIoU(ms+flip): 37.24
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 40000
|
||||
Name: pspnet_r101-d8_512x512_4x4_40k_coco-stuff10k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 10k
|
||||
Metrics:
|
||||
mIoU: 37.76
|
||||
mIoU(ms+flip): 38.86
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 48.78
|
||||
lr schd: 80000
|
||||
memory (GB): 9.6
|
||||
Name: pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 38.8
|
||||
mIoU(ms+flip): 39.19
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
inference time (ms/im):
|
||||
- backend: PyTorch
|
||||
batch size: 1
|
||||
hardware: V100
|
||||
mode: FP32
|
||||
resolution: (512,512)
|
||||
value: 90.09
|
||||
lr schd: 80000
|
||||
memory (GB): 13.2
|
||||
Name: pspnet_r101-d8_512x512_4x4_80k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 40.34
|
||||
mIoU(ms+flip): 40.79
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 160000
|
||||
Name: pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 39.64
|
||||
mIoU(ms+flip): 39.97
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 160000
|
||||
Name: pspnet_r101-d8_512x512_4x4_160k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 41.28
|
||||
mIoU(ms+flip): 41.66
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-50-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 320000
|
||||
Name: pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 40.53
|
||||
mIoU(ms+flip): 40.75
|
||||
Task: Semantic Segmentation
|
||||
Weights: 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
|
||||
- Config: configs/pspnet/pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k.py
|
||||
In Collection: pspnet
|
||||
Metadata:
|
||||
backbone: R-101-D8
|
||||
crop size: (512,512)
|
||||
lr schd: 320000
|
||||
Name: pspnet_r101-d8_512x512_4x4_320k_coco-stuff164k
|
||||
Results:
|
||||
Dataset: COCO-Stuff 164k
|
||||
Metrics:
|
||||
mIoU: 41.95
|
||||
mIoU(ms+flip): 42.42
|
||||
Task: Semantic Segmentation
|
||||
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
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './pspnet_r50-d8_512x512_4x4_160k_coco-stuff164k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './pspnet_r50-d8_512x512_4x4_20k_coco-stuff10k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './pspnet_r50-d8_512x512_4x4_320k_coco-stuff164k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './pspnet_r50-d8_512x512_4x4_40k_coco-stuff10k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,2 @@
|
||||
_base_ = './pspnet_r50-d8_512x512_4x4_80k_coco-stuff164k.py'
|
||||
model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/pspnet_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_160k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,6 @@
|
||||
_base_ = [
|
||||
'../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/coco-stuff10k.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/pspnet_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_320k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,6 @@
|
||||
_base_ = [
|
||||
'../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/coco-stuff10k.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -0,0 +1,7 @@
|
||||
_base_ = [
|
||||
'../_base_/models/pspnet_r50-d8.py',
|
||||
'../_base_/datasets/coco-stuff164k.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=171), auxiliary_head=dict(num_classes=171))
|
||||
@ -41,6 +41,24 @@ mmsegmentation
|
||||
│ │ │ ├── images
|
||||
│ │ │ │ ├── training
|
||||
│ │ │ │ ├── validation
|
||||
│ ├── coco_stuff10k
|
||||
│ │ ├── images
|
||||
│ │ │ ├── train2014
|
||||
│ │ │ ├── test2014
|
||||
│ │ ├── annotations
|
||||
│ │ │ ├── train2014
|
||||
│ │ │ ├── test2014
|
||||
│ │ ├── imagesLists
|
||||
│ │ │ ├── train.txt
|
||||
│ │ │ ├── test.txt
|
||||
│ │ │ ├── all.txt
|
||||
│ ├── coco_stuff164k
|
||||
│ │ ├── images
|
||||
│ │ │ ├── train2017
|
||||
│ │ │ ├── val2017
|
||||
│ │ ├── annotations
|
||||
│ │ │ ├── train2017
|
||||
│ │ │ ├── val2017
|
||||
│ ├── CHASE_DB1
|
||||
│ │ ├── images
|
||||
│ │ │ ├── training
|
||||
@ -136,6 +154,50 @@ If you would like to use Pascal Context dataset, please install [Detail](https:/
|
||||
python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json
|
||||
```
|
||||
|
||||
### COCO Stuff 10k
|
||||
|
||||
The data could be downloaded [here](http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip) by wget.
|
||||
|
||||
For COCO Stuff 10k dataset, please run the following commands to download and convert the dataset.
|
||||
|
||||
```shell
|
||||
# download
|
||||
mkdir coco_stuff10k && cd coco_stuff10k
|
||||
wget http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/cocostuff-10k-v1.1.zip
|
||||
|
||||
# unzip
|
||||
unzip cocostuff-10k-v1.1.zip
|
||||
|
||||
# --nproc means 8 process for conversion, which could be omitted as well.
|
||||
python tools/convert_datasets/coco_stuff10k.py /path/to/coco_stuff10k --nproc 8
|
||||
```
|
||||
|
||||
By convention, mask labels in `/path/to/coco_stuff164k/annotations/*2014/*_labelTrainIds.png` are used for COCO Stuff 10k training and testing.
|
||||
|
||||
### COCO Stuff 164k
|
||||
|
||||
For COCO Stuff 164k dataset, please run the following commands to download and convert the augmented dataset.
|
||||
|
||||
```shell
|
||||
# download
|
||||
mkdir coco_stuff164k && cd coco_stuff164k
|
||||
wget http://images.cocodataset.org/zips/train2017.zip
|
||||
wget http://images.cocodataset.org/zips/val2017.zip
|
||||
wget http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/stuffthingmaps_trainval2017.zip
|
||||
|
||||
# unzip
|
||||
unzip train2017.zip -d images/
|
||||
unzip val2017.zip -d images/
|
||||
unzip stuffthingmaps_trainval2017.zip -d annotations/
|
||||
|
||||
# --nproc means 8 process for conversion, which could be omitted as well.
|
||||
python tools/convert_datasets/coco_stuff164k.py /path/to/coco_stuff164k --nproc 8
|
||||
```
|
||||
|
||||
By convention, mask labels in `/path/to/coco_stuff164k/annotations/*2017/*_labelTrainIds.png` are used for COCO Stuff 164k training and testing.
|
||||
|
||||
The details of this dataset could be found at [here](https://github.com/nightrome/cocostuff#downloads).
|
||||
|
||||
### CHASE DB1
|
||||
|
||||
The training and validation set of CHASE DB1 could be download from [here](https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip).
|
||||
|
||||
@ -3,6 +3,7 @@ from .ade import ADE20KDataset
|
||||
from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset
|
||||
from .chase_db1 import ChaseDB1Dataset
|
||||
from .cityscapes import CityscapesDataset
|
||||
from .coco_stuff import COCOStuffDataset
|
||||
from .custom import CustomDataset
|
||||
from .dark_zurich import DarkZurichDataset
|
||||
from .dataset_wrappers import ConcatDataset, RepeatDataset
|
||||
@ -18,5 +19,6 @@ __all__ = [
|
||||
'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset',
|
||||
'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset',
|
||||
'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset',
|
||||
'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset'
|
||||
'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset',
|
||||
'COCOStuffDataset'
|
||||
]
|
||||
|
||||
93
mmseg/datasets/coco_stuff.py
Normal file
93
mmseg/datasets/coco_stuff.py
Normal file
@ -0,0 +1,93 @@
|
||||
from .builder import DATASETS
|
||||
from .custom import CustomDataset
|
||||
|
||||
|
||||
@DATASETS.register_module()
|
||||
class COCOStuffDataset(CustomDataset):
|
||||
"""COCO-Stuff dataset.
|
||||
|
||||
In segmentation map annotation for COCO-Stuff, Train-IDs of the 10k version
|
||||
are from 1 to 171, where 0 is the ignore index, and Train-ID of COCO Stuff
|
||||
164k is from 0 to 170, where 255 is the ignore index. So, they are all 171
|
||||
semantic categories. ``reduce_zero_label`` is set to True and False for the
|
||||
10k and 164k versions, respectively. The ``img_suffix`` is fixed to '.jpg',
|
||||
and ``seg_map_suffix`` is fixed to '.png'.
|
||||
"""
|
||||
CLASSES = (
|
||||
'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train',
|
||||
'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign',
|
||||
'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep',
|
||||
'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella',
|
||||
'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard',
|
||||
'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard',
|
||||
'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork',
|
||||
'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange',
|
||||
'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair',
|
||||
'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv',
|
||||
'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave',
|
||||
'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase',
|
||||
'scissors', 'teddy bear', 'hair drier', 'toothbrush', 'banner',
|
||||
'blanket', 'branch', 'bridge', 'building-other', 'bush', 'cabinet',
|
||||
'cage', 'cardboard', 'carpet', 'ceiling-other', 'ceiling-tile',
|
||||
'cloth', 'clothes', 'clouds', 'counter', 'cupboard', 'curtain',
|
||||
'desk-stuff', 'dirt', 'door-stuff', 'fence', 'floor-marble',
|
||||
'floor-other', 'floor-stone', 'floor-tile', 'floor-wood',
|
||||
'flower', 'fog', 'food-other', 'fruit', 'furniture-other', 'grass',
|
||||
'gravel', 'ground-other', 'hill', 'house', 'leaves', 'light', 'mat',
|
||||
'metal', 'mirror-stuff', 'moss', 'mountain', 'mud', 'napkin', 'net',
|
||||
'paper', 'pavement', 'pillow', 'plant-other', 'plastic', 'platform',
|
||||
'playingfield', 'railing', 'railroad', 'river', 'road', 'rock', 'roof',
|
||||
'rug', 'salad', 'sand', 'sea', 'shelf', 'sky-other', 'skyscraper',
|
||||
'snow', 'solid-other', 'stairs', 'stone', 'straw', 'structural-other',
|
||||
'table', 'tent', 'textile-other', 'towel', 'tree', 'vegetable',
|
||||
'wall-brick', 'wall-concrete', 'wall-other', 'wall-panel',
|
||||
'wall-stone', 'wall-tile', 'wall-wood', 'water-other', 'waterdrops',
|
||||
'window-blind', 'window-other', 'wood')
|
||||
|
||||
PALETTE = [[0, 192, 64], [0, 192, 64], [0, 64, 96], [128, 192, 192],
|
||||
[0, 64, 64], [0, 192, 224], [0, 192, 192], [128, 192, 64],
|
||||
[0, 192, 96], [128, 192, 64], [128, 32, 192], [0, 0, 224],
|
||||
[0, 0, 64], [0, 160, 192], [128, 0, 96], [128, 0, 192],
|
||||
[0, 32, 192], [128, 128, 224], [0, 0, 192], [128, 160, 192],
|
||||
[128, 128, 0], [128, 0, 32], [128, 32, 0], [128, 0, 128],
|
||||
[64, 128, 32], [0, 160, 0], [0, 0, 0], [192, 128, 160],
|
||||
[0, 32, 0], [0, 128, 128], [64, 128, 160], [128, 160, 0],
|
||||
[0, 128, 0], [192, 128, 32], [128, 96, 128], [0, 0, 128],
|
||||
[64, 0, 32], [0, 224, 128], [128, 0, 0], [192, 0, 160],
|
||||
[0, 96, 128], [128, 128, 128], [64, 0, 160], [128, 224, 128],
|
||||
[128, 128, 64], [192, 0, 32], [128, 96, 0], [128, 0, 192],
|
||||
[0, 128, 32], [64, 224, 0], [0, 0, 64], [128, 128, 160],
|
||||
[64, 96, 0], [0, 128, 192], [0, 128, 160], [192, 224, 0],
|
||||
[0, 128, 64], [128, 128, 32], [192, 32, 128], [0, 64, 192],
|
||||
[0, 0, 32], [64, 160, 128], [128, 64, 64], [128, 0, 160],
|
||||
[64, 32, 128], [128, 192, 192], [0, 0, 160], [192, 160, 128],
|
||||
[128, 192, 0], [128, 0, 96], [192, 32, 0], [128, 64, 128],
|
||||
[64, 128, 96], [64, 160, 0], [0, 64, 0], [192, 128, 224],
|
||||
[64, 32, 0], [0, 192, 128], [64, 128, 224], [192, 160, 0],
|
||||
[0, 192, 0], [192, 128, 96], [192, 96, 128], [0, 64, 128],
|
||||
[64, 0, 96], [64, 224, 128], [128, 64, 0], [192, 0, 224],
|
||||
[64, 96, 128], [128, 192, 128], [64, 0, 224], [192, 224, 128],
|
||||
[128, 192, 64], [192, 0, 96], [192, 96, 0], [128, 64, 192],
|
||||
[0, 128, 96], [0, 224, 0], [64, 64, 64], [128, 128, 224],
|
||||
[0, 96, 0], [64, 192, 192], [0, 128, 224], [128, 224, 0],
|
||||
[64, 192, 64], [128, 128, 96], [128, 32, 128], [64, 0, 192],
|
||||
[0, 64, 96], [0, 160, 128], [192, 0, 64], [128, 64, 224],
|
||||
[0, 32, 128], [192, 128, 192], [0, 64, 224], [128, 160, 128],
|
||||
[192, 128, 0], [128, 64, 32], [128, 32, 64], [192, 0, 128],
|
||||
[64, 192, 32], [0, 160, 64], [64, 0, 0], [192, 192, 160],
|
||||
[0, 32, 64], [64, 128, 128], [64, 192, 160], [128, 160, 64],
|
||||
[64, 128, 0], [192, 192, 32], [128, 96, 192], [64, 0, 128],
|
||||
[64, 64, 32], [0, 224, 192], [192, 0, 0], [192, 64, 160],
|
||||
[0, 96, 192], [192, 128, 128], [64, 64, 160], [128, 224, 192],
|
||||
[192, 128, 64], [192, 64, 32], [128, 96, 64], [192, 0, 192],
|
||||
[0, 192, 32], [64, 224, 64], [64, 0, 64], [128, 192, 160],
|
||||
[64, 96, 64], [64, 128, 192], [0, 192, 160], [192, 224, 64],
|
||||
[64, 128, 64], [128, 192, 32], [192, 32, 192], [64, 64, 192],
|
||||
[0, 64, 32], [64, 160, 192], [192, 64, 64], [128, 64, 160],
|
||||
[64, 32, 192], [192, 192, 192], [0, 64, 160], [192, 160, 192],
|
||||
[192, 192, 0], [128, 64, 96], [192, 32, 64], [192, 64, 128],
|
||||
[64, 192, 96], [64, 160, 64], [64, 64, 0]]
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(COCOStuffDataset, self).__init__(
|
||||
img_suffix='.jpg', seg_map_suffix='_labelTrainIds.png', **kwargs)
|
||||
306
tools/convert_datasets/coco_stuff10k.py
Normal file
306
tools/convert_datasets/coco_stuff10k.py
Normal file
@ -0,0 +1,306 @@
|
||||
import argparse
|
||||
import os.path as osp
|
||||
import shutil
|
||||
from functools import partial
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
from scipy.io import loadmat
|
||||
|
||||
COCO_LEN = 10000
|
||||
|
||||
clsID_to_trID = {
|
||||
0: 0,
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5,
|
||||
6: 6,
|
||||
7: 7,
|
||||
8: 8,
|
||||
9: 9,
|
||||
10: 10,
|
||||
11: 11,
|
||||
13: 12,
|
||||
14: 13,
|
||||
15: 14,
|
||||
16: 15,
|
||||
17: 16,
|
||||
18: 17,
|
||||
19: 18,
|
||||
20: 19,
|
||||
21: 20,
|
||||
22: 21,
|
||||
23: 22,
|
||||
24: 23,
|
||||
25: 24,
|
||||
27: 25,
|
||||
28: 26,
|
||||
31: 27,
|
||||
32: 28,
|
||||
33: 29,
|
||||
34: 30,
|
||||
35: 31,
|
||||
36: 32,
|
||||
37: 33,
|
||||
38: 34,
|
||||
39: 35,
|
||||
40: 36,
|
||||
41: 37,
|
||||
42: 38,
|
||||
43: 39,
|
||||
44: 40,
|
||||
46: 41,
|
||||
47: 42,
|
||||
48: 43,
|
||||
49: 44,
|
||||
50: 45,
|
||||
51: 46,
|
||||
52: 47,
|
||||
53: 48,
|
||||
54: 49,
|
||||
55: 50,
|
||||
56: 51,
|
||||
57: 52,
|
||||
58: 53,
|
||||
59: 54,
|
||||
60: 55,
|
||||
61: 56,
|
||||
62: 57,
|
||||
63: 58,
|
||||
64: 59,
|
||||
65: 60,
|
||||
67: 61,
|
||||
70: 62,
|
||||
72: 63,
|
||||
73: 64,
|
||||
74: 65,
|
||||
75: 66,
|
||||
76: 67,
|
||||
77: 68,
|
||||
78: 69,
|
||||
79: 70,
|
||||
80: 71,
|
||||
81: 72,
|
||||
82: 73,
|
||||
84: 74,
|
||||
85: 75,
|
||||
86: 76,
|
||||
87: 77,
|
||||
88: 78,
|
||||
89: 79,
|
||||
90: 80,
|
||||
92: 81,
|
||||
93: 82,
|
||||
94: 83,
|
||||
95: 84,
|
||||
96: 85,
|
||||
97: 86,
|
||||
98: 87,
|
||||
99: 88,
|
||||
100: 89,
|
||||
101: 90,
|
||||
102: 91,
|
||||
103: 92,
|
||||
104: 93,
|
||||
105: 94,
|
||||
106: 95,
|
||||
107: 96,
|
||||
108: 97,
|
||||
109: 98,
|
||||
110: 99,
|
||||
111: 100,
|
||||
112: 101,
|
||||
113: 102,
|
||||
114: 103,
|
||||
115: 104,
|
||||
116: 105,
|
||||
117: 106,
|
||||
118: 107,
|
||||
119: 108,
|
||||
120: 109,
|
||||
121: 110,
|
||||
122: 111,
|
||||
123: 112,
|
||||
124: 113,
|
||||
125: 114,
|
||||
126: 115,
|
||||
127: 116,
|
||||
128: 117,
|
||||
129: 118,
|
||||
130: 119,
|
||||
131: 120,
|
||||
132: 121,
|
||||
133: 122,
|
||||
134: 123,
|
||||
135: 124,
|
||||
136: 125,
|
||||
137: 126,
|
||||
138: 127,
|
||||
139: 128,
|
||||
140: 129,
|
||||
141: 130,
|
||||
142: 131,
|
||||
143: 132,
|
||||
144: 133,
|
||||
145: 134,
|
||||
146: 135,
|
||||
147: 136,
|
||||
148: 137,
|
||||
149: 138,
|
||||
150: 139,
|
||||
151: 140,
|
||||
152: 141,
|
||||
153: 142,
|
||||
154: 143,
|
||||
155: 144,
|
||||
156: 145,
|
||||
157: 146,
|
||||
158: 147,
|
||||
159: 148,
|
||||
160: 149,
|
||||
161: 150,
|
||||
162: 151,
|
||||
163: 152,
|
||||
164: 153,
|
||||
165: 154,
|
||||
166: 155,
|
||||
167: 156,
|
||||
168: 157,
|
||||
169: 158,
|
||||
170: 159,
|
||||
171: 160,
|
||||
172: 161,
|
||||
173: 162,
|
||||
174: 163,
|
||||
175: 164,
|
||||
176: 165,
|
||||
177: 166,
|
||||
178: 167,
|
||||
179: 168,
|
||||
180: 169,
|
||||
181: 170,
|
||||
182: 171
|
||||
}
|
||||
|
||||
|
||||
def convert_to_trainID(tuple_path, in_img_dir, in_ann_dir, out_img_dir,
|
||||
out_mask_dir, is_train):
|
||||
imgpath, maskpath = tuple_path
|
||||
shutil.copyfile(
|
||||
osp.join(in_img_dir, imgpath),
|
||||
osp.join(out_img_dir, 'train2014', imgpath) if is_train else osp.join(
|
||||
out_img_dir, 'test2014', imgpath))
|
||||
annotate = loadmat(osp.join(in_ann_dir, maskpath))
|
||||
mask = annotate['S'].astype(np.uint8)
|
||||
mask_copy = mask.copy()
|
||||
for clsID, trID in clsID_to_trID.items():
|
||||
mask_copy[mask == clsID] = trID
|
||||
seg_filename = osp.join(out_mask_dir, 'train2014',
|
||||
maskpath.split('.')[0] +
|
||||
'_labelTrainIds.png') if is_train else osp.join(
|
||||
out_mask_dir, 'test2014',
|
||||
maskpath.split('.')[0] + '_labelTrainIds.png')
|
||||
Image.fromarray(mask_copy).save(seg_filename, 'PNG')
|
||||
|
||||
|
||||
def generate_coco_list(folder):
|
||||
train_list = osp.join(folder, 'imageLists', 'train.txt')
|
||||
test_list = osp.join(folder, 'imageLists', 'test.txt')
|
||||
train_paths = []
|
||||
test_paths = []
|
||||
|
||||
with open(train_list) as f:
|
||||
for filename in f:
|
||||
basename = filename.strip()
|
||||
imgpath = basename + '.jpg'
|
||||
maskpath = basename + '.mat'
|
||||
train_paths.append((imgpath, maskpath))
|
||||
|
||||
with open(test_list) as f:
|
||||
for filename in f:
|
||||
basename = filename.strip()
|
||||
imgpath = basename + '.jpg'
|
||||
maskpath = basename + '.mat'
|
||||
test_paths.append((imgpath, maskpath))
|
||||
|
||||
return train_paths, test_paths
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(
|
||||
description=\
|
||||
'Convert COCO Stuff 10k annotations to mmsegmentation format') # noqa
|
||||
parser.add_argument('coco_path', help='coco stuff path')
|
||||
parser.add_argument('-o', '--out_dir', help='output path')
|
||||
parser.add_argument(
|
||||
'--nproc', default=16, type=int, help='number of process')
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
coco_path = args.coco_path
|
||||
nproc = args.nproc
|
||||
|
||||
out_dir = args.out_dir or coco_path
|
||||
out_img_dir = osp.join(out_dir, 'images')
|
||||
out_mask_dir = osp.join(out_dir, 'annotations')
|
||||
|
||||
mmcv.mkdir_or_exist(osp.join(out_img_dir, 'train2014'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_img_dir, 'test2014'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'train2014'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'test2014'))
|
||||
|
||||
train_list, test_list = generate_coco_list(coco_path)
|
||||
assert (len(train_list) +
|
||||
len(test_list)) == COCO_LEN, 'Wrong length of list {} & {}'.format(
|
||||
len(train_list), len(test_list))
|
||||
|
||||
if args.nproc > 1:
|
||||
mmcv.track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
in_ann_dir=osp.join(coco_path, 'annotations'),
|
||||
out_img_dir=out_img_dir,
|
||||
out_mask_dir=out_mask_dir,
|
||||
is_train=True),
|
||||
train_list,
|
||||
nproc=nproc)
|
||||
mmcv.track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
in_ann_dir=osp.join(coco_path, 'annotations'),
|
||||
out_img_dir=out_img_dir,
|
||||
out_mask_dir=out_mask_dir,
|
||||
is_train=False),
|
||||
test_list,
|
||||
nproc=nproc)
|
||||
else:
|
||||
mmcv.track_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
in_ann_dir=osp.join(coco_path, 'annotations'),
|
||||
out_img_dir=out_img_dir,
|
||||
out_mask_dir=out_mask_dir,
|
||||
is_train=True), train_list)
|
||||
mmcv.track_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
in_ann_dir=osp.join(coco_path, 'annotations'),
|
||||
out_img_dir=out_img_dir,
|
||||
out_mask_dir=out_mask_dir,
|
||||
is_train=False), test_list)
|
||||
|
||||
print('Done!')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
263
tools/convert_datasets/coco_stuff164k.py
Normal file
263
tools/convert_datasets/coco_stuff164k.py
Normal file
@ -0,0 +1,263 @@
|
||||
import argparse
|
||||
import os.path as osp
|
||||
import shutil
|
||||
from functools import partial
|
||||
from glob import glob
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
|
||||
COCO_LEN = 123287
|
||||
|
||||
clsID_to_trID = {
|
||||
0: 0,
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5,
|
||||
6: 6,
|
||||
7: 7,
|
||||
8: 8,
|
||||
9: 9,
|
||||
10: 10,
|
||||
12: 11,
|
||||
13: 12,
|
||||
14: 13,
|
||||
15: 14,
|
||||
16: 15,
|
||||
17: 16,
|
||||
18: 17,
|
||||
19: 18,
|
||||
20: 19,
|
||||
21: 20,
|
||||
22: 21,
|
||||
23: 22,
|
||||
24: 23,
|
||||
26: 24,
|
||||
27: 25,
|
||||
30: 26,
|
||||
31: 27,
|
||||
32: 28,
|
||||
33: 29,
|
||||
34: 30,
|
||||
35: 31,
|
||||
36: 32,
|
||||
37: 33,
|
||||
38: 34,
|
||||
39: 35,
|
||||
40: 36,
|
||||
41: 37,
|
||||
42: 38,
|
||||
43: 39,
|
||||
45: 40,
|
||||
46: 41,
|
||||
47: 42,
|
||||
48: 43,
|
||||
49: 44,
|
||||
50: 45,
|
||||
51: 46,
|
||||
52: 47,
|
||||
53: 48,
|
||||
54: 49,
|
||||
55: 50,
|
||||
56: 51,
|
||||
57: 52,
|
||||
58: 53,
|
||||
59: 54,
|
||||
60: 55,
|
||||
61: 56,
|
||||
62: 57,
|
||||
63: 58,
|
||||
64: 59,
|
||||
66: 60,
|
||||
69: 61,
|
||||
71: 62,
|
||||
72: 63,
|
||||
73: 64,
|
||||
74: 65,
|
||||
75: 66,
|
||||
76: 67,
|
||||
77: 68,
|
||||
78: 69,
|
||||
79: 70,
|
||||
80: 71,
|
||||
81: 72,
|
||||
83: 73,
|
||||
84: 74,
|
||||
85: 75,
|
||||
86: 76,
|
||||
87: 77,
|
||||
88: 78,
|
||||
89: 79,
|
||||
91: 80,
|
||||
92: 81,
|
||||
93: 82,
|
||||
94: 83,
|
||||
95: 84,
|
||||
96: 85,
|
||||
97: 86,
|
||||
98: 87,
|
||||
99: 88,
|
||||
100: 89,
|
||||
101: 90,
|
||||
102: 91,
|
||||
103: 92,
|
||||
104: 93,
|
||||
105: 94,
|
||||
106: 95,
|
||||
107: 96,
|
||||
108: 97,
|
||||
109: 98,
|
||||
110: 99,
|
||||
111: 100,
|
||||
112: 101,
|
||||
113: 102,
|
||||
114: 103,
|
||||
115: 104,
|
||||
116: 105,
|
||||
117: 106,
|
||||
118: 107,
|
||||
119: 108,
|
||||
120: 109,
|
||||
121: 110,
|
||||
122: 111,
|
||||
123: 112,
|
||||
124: 113,
|
||||
125: 114,
|
||||
126: 115,
|
||||
127: 116,
|
||||
128: 117,
|
||||
129: 118,
|
||||
130: 119,
|
||||
131: 120,
|
||||
132: 121,
|
||||
133: 122,
|
||||
134: 123,
|
||||
135: 124,
|
||||
136: 125,
|
||||
137: 126,
|
||||
138: 127,
|
||||
139: 128,
|
||||
140: 129,
|
||||
141: 130,
|
||||
142: 131,
|
||||
143: 132,
|
||||
144: 133,
|
||||
145: 134,
|
||||
146: 135,
|
||||
147: 136,
|
||||
148: 137,
|
||||
149: 138,
|
||||
150: 139,
|
||||
151: 140,
|
||||
152: 141,
|
||||
153: 142,
|
||||
154: 143,
|
||||
155: 144,
|
||||
156: 145,
|
||||
157: 146,
|
||||
158: 147,
|
||||
159: 148,
|
||||
160: 149,
|
||||
161: 150,
|
||||
162: 151,
|
||||
163: 152,
|
||||
164: 153,
|
||||
165: 154,
|
||||
166: 155,
|
||||
167: 156,
|
||||
168: 157,
|
||||
169: 158,
|
||||
170: 159,
|
||||
171: 160,
|
||||
172: 161,
|
||||
173: 162,
|
||||
174: 163,
|
||||
175: 164,
|
||||
176: 165,
|
||||
177: 166,
|
||||
178: 167,
|
||||
179: 168,
|
||||
180: 169,
|
||||
181: 170,
|
||||
255: 255
|
||||
}
|
||||
|
||||
|
||||
def convert_to_trainID(maskpath, out_mask_dir, is_train):
|
||||
mask = np.array(Image.open(maskpath))
|
||||
mask_copy = mask.copy()
|
||||
for clsID, trID in clsID_to_trID.items():
|
||||
mask_copy[mask == clsID] = trID
|
||||
seg_filename = osp.join(
|
||||
out_mask_dir, 'train2017',
|
||||
osp.basename(maskpath).split('.')[0] +
|
||||
'_labelTrainIds.png') if is_train else osp.join(
|
||||
out_mask_dir, 'val2017',
|
||||
osp.basename(maskpath).split('.')[0] + '_labelTrainIds.png')
|
||||
Image.fromarray(mask_copy).save(seg_filename, 'PNG')
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(
|
||||
description=\
|
||||
'Convert COCO Stuff 164k annotations to mmsegmentation format') # noqa
|
||||
parser.add_argument('coco_path', help='coco stuff path')
|
||||
parser.add_argument('-o', '--out_dir', help='output path')
|
||||
parser.add_argument(
|
||||
'--nproc', default=16, type=int, help='number of process')
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
coco_path = args.coco_path
|
||||
nproc = args.nproc
|
||||
|
||||
out_dir = args.out_dir or coco_path
|
||||
out_img_dir = osp.join(out_dir, 'images')
|
||||
out_mask_dir = osp.join(out_dir, 'annotations')
|
||||
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'train2017'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'val2017'))
|
||||
|
||||
if out_dir != coco_path:
|
||||
shutil.copytree(osp.join(coco_path, 'images'), out_img_dir)
|
||||
|
||||
train_list = glob(osp.join(coco_path, 'annotations', 'train2017', '*.png'))
|
||||
train_list = [file for file in train_list if '_labelTrainIds' not in file]
|
||||
test_list = glob(osp.join(coco_path, 'annotations', 'val2017', '*.png'))
|
||||
test_list = [file for file in test_list if '_labelTrainIds' not in file]
|
||||
assert (len(train_list) +
|
||||
len(test_list)) == COCO_LEN, 'Wrong length of list {} & {}'.format(
|
||||
len(train_list), len(test_list))
|
||||
|
||||
if args.nproc > 1:
|
||||
mmcv.track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=True),
|
||||
train_list,
|
||||
nproc=nproc)
|
||||
mmcv.track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=False),
|
||||
test_list,
|
||||
nproc=nproc)
|
||||
else:
|
||||
mmcv.track_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=True),
|
||||
train_list)
|
||||
mmcv.track_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=False),
|
||||
test_list)
|
||||
|
||||
print('Done!')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
x
Reference in New Issue
Block a user