提交 60f24061 编写于 作者: C chenguowei01

add ade20k dataset

上级 3643f1a6
...@@ -16,9 +16,11 @@ from .dataset import Dataset ...@@ -16,9 +16,11 @@ from .dataset import Dataset
from .optic_disc_seg import OpticDiscSeg from .optic_disc_seg import OpticDiscSeg
from .cityscapes import Cityscapes from .cityscapes import Cityscapes
from .voc import PascalVOC from .voc import PascalVOC
from .ade import ADE20K
DATASETS = { DATASETS = {
"OpticDiscSeg": OpticDiscSeg, "OpticDiscSeg": OpticDiscSeg,
"Cityscapes": Cityscapes, "Cityscapes": Cityscapes,
"PascalVOC": PascalVOC "PascalVOC": PascalVOC,
"ADE20K": ADE20K
} }
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
from .dataset import Dataset
from utils.download import download_file_and_uncompress
DATA_HOME = os.path.expanduser('~/.cache/paddle/dataset')
URL = "https://paddleseg.bj.bcebos.com/dataset/ADEChallengeData2016.zip"
class ADE20K(Dataset):
"""ADE20K dataset `http://sceneparsing.csail.mit.edu/`.
Args:
data_dir: The dataset directory.
mode: Which part of dataset to use.. it is one of ('train', 'val'). Default: 'train'.
transforms: Transforms for image.
download: Whether to download dataset if data_dir is None.
"""
def __init__(self,
data_dir=None,
mode='train',
transforms=None,
download=True):
self.data_dir = data_dir
self.transforms = transforms
self.mode = mode
self.file_list = list()
self.num_classes = 21
if mode.lower() not in ['train', 'val']:
raise Exception(
"mode should be one of ('train', 'val') in PascalVOC dataset, but got {}."
.format(mode))
if self.transforms is None:
raise Exception("transforms is necessary, but it is None.")
if self.data_dir is None:
if not download:
raise Exception("data_dir not set and auto download disabled.")
self.data_dir = download_file_and_uncompress(
url=URL,
savepath=DATA_HOME,
extrapath=DATA_HOME,
extraname='ADEChallengeData2016')
if mode == 'train':
img_dir = os.path.join(self.data_dir, 'images/training')
grt_dir = os.path.join(self.data_dir, 'annotations/training')
elif mode == 'val':
img_dir = os.path.join(self.data_dir, 'images/validation')
grt_dir = os.path.join(self.data_dir, 'annotations/validation')
img_files = os.listdir(img_dir)
grt_files = [i.replace('.jpg', '.png') for i in img_files]
for i in range(len(img_files)):
img_path = os.path.join(img_dir, img_files[i])
grt_path = os.path.join(grt_dir, grt_files[i])
self.file_list.append([img_path, grt_path])
...@@ -57,7 +57,6 @@ class PascalVOC(Dataset): ...@@ -57,7 +57,6 @@ class PascalVOC(Dataset):
savepath=DATA_HOME, savepath=DATA_HOME,
extrapath=DATA_HOME, extrapath=DATA_HOME,
extraname='VOCdevkit') extraname='VOCdevkit')
print(self.data_dir)
image_set_dir = os.path.join(self.data_dir, 'VOC2012', 'ImageSets', image_set_dir = os.path.join(self.data_dir, 'VOC2012', 'ImageSets',
'Segmentation') 'Segmentation')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册