mmsegmentation/configs/_base_/datasets/pascal_context_59.py
sennnnn 38d2e969dd Add support for Pascal Context 59 classes (#459)
* Add support for Pascal Context 59 classes (#459)

* Create PascalContextDataset59 class in mmseg/datasets/pascal_context.py;

* Set reduce_zero_label=True for train_pipeline and PascalContextDataset59;

* Add some configs for Pascal-Context 59 classes training and testing;

* Try to solve the problem about "fence(IoU)=nan grass(IoU)=0";

* Continue(1): Try to solve the problem about "fence(IoU)=nan grass(IoU)=0";

* ignore files and folders named tempxxx;

* Continue(2): Try to solve the problem about "fence(IoU)=nan grass(IoU)=0";

* Modify the calculation of IoU;

* Modify the CLASSES order of PascalContextDataset;

* Add "fcn", "deeplabv3", "deeplabv3+", "pspnet" config file for model training based on PascalContextDataset59;

Add some ignore items in ".gitignore";

* fix the bug "test_cfg specified in both outer field and model field " of pspnet config file;

* * Clean unnecessary codes;

* Add weighs link, config link, log link and evaluation results about PascalContextDataset59 in README.md

* Add command line argument: "-p | --port", this arg can change the transmit port when you transmit data to distributed machine.

* * Remove rebundant config files;

* Remove "-p|--port" command argument;

Co-authored-by: Jiarui XU <xvjiarui0826@gmail.com>
2021-04-19 21:20:54 -07:00

61 lines
2.0 KiB
Python

# dataset settings
dataset_type = 'PascalContextDataset59'
data_root = 'data/VOCdevkit/VOC2010/'
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
img_scale = (520, 520)
crop_size = (480, 480)
train_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', reduce_zero_label=True),
dict(type='Resize', img_scale=img_scale, 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=img_scale,
# 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='JPEGImages',
ann_dir='SegmentationClassContext',
split='ImageSets/SegmentationContext/train.txt',
pipeline=train_pipeline),
val=dict(
type=dataset_type,
data_root=data_root,
img_dir='JPEGImages',
ann_dir='SegmentationClassContext',
split='ImageSets/SegmentationContext/val.txt',
pipeline=test_pipeline),
test=dict(
type=dataset_type,
data_root=data_root,
img_dir='JPEGImages',
ann_dir='SegmentationClassContext',
split='ImageSets/SegmentationContext/val.txt',
pipeline=test_pipeline))