diff --git a/configs/_base_/datasets/occlude_face.py b/configs/_base_/datasets/occlude_face.py index c0ef4fbaa..db6de3598 100644 --- a/configs/_base_/datasets/occlude_face.py +++ b/configs/_base_/datasets/occlude_face.py @@ -1,5 +1,5 @@ -dataset_type = 'FaceOccluded' -data_root = 'data/occlusion-aware-dataset' +dataset_type = 'FaceOccludedDataset' +data_root = 'data/occlusion-aware-face-dataset' crop_size = (512, 512) img_norm_cfg = dict( mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) @@ -40,15 +40,15 @@ test_pipeline = [ ] dataset_train_A = dict( - type='FaceOccluded', + type=dataset_type, data_root=data_root, img_dir='CelebAMask-HQ-original/image', ann_dir='CelebAMask-HQ-original/mask_edited', - split='CelebAMask-HQ-original/split/train_ori.txt', + split='CelebAMask-HQ-original/split/train.txt', pipeline=train_pipeline) dataset_train_B = dict( - type='FaceOccluded', + type=dataset_type, data_root=data_root, img_dir='NatOcc-SOT/image', ann_dir='NatOcc-SOT/mask', @@ -57,26 +57,26 @@ dataset_train_B = dict( dataset_valid = dict( - type='FaceOccluded', + type=dataset_type, data_root=data_root, - img_dir='occlusion-aware-dataset/HQ-FO-dataset/RealOcc/image', - ann_dir='occlusion-aware-dataset/HQ-FO-dataset/RealOcc/mask', - split='occlusion-aware-dataset/HQ-FO-dataset/RealOcc/split/val.txt', + img_dir='RealOcc/image', + ann_dir='RealOcc/mask', + split='RealOcc/split/val.txt', pipeline=test_pipeline) dataset_test = dict( - type='FaceOccluded', + type=dataset_type, data_root=data_root, - img_dir='occlusion-aware-dataset/HQ-FO-dataset/RealOcc/image', - ann_dir='occlusion-aware-dataset/HQ-FO-dataset/RealOcc/mask', - split='occlusion-aware-dataset/HQ-FO-dataset/RealOcc/test.txt', + img_dir='RealOcc/image', + ann_dir='RealOcc/mask', + split='RealOcc/test.txt', pipeline=test_pipeline) data = dict( samples_per_gpu=2, workers_per_gpu=2, train=[ - dataset_train_A,dataset_train_B, + dataset_train_A,dataset_train_B ], val= dataset_valid, test=dataset_test) diff --git a/configs/deeplabv3plus/deeplabv3plus_r101_512x512_C-CM+C-WO-NatOcc-SOT.py b/configs/deeplabv3plus/deeplabv3plus_r101_512x512_C-CM+C-WO-NatOcc-SOT.py index eb2c8e007..7806d4dc2 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r101_512x512_C-CM+C-WO-NatOcc-SOT.py +++ b/configs/deeplabv3plus/deeplabv3plus_r101_512x512_C-CM+C-WO-NatOcc-SOT.py @@ -1,5 +1,5 @@ # + -_base_ = '../_base_/dataset/occlude_face.py' +_base_ = '../_base_/datasets/occlude_face.py' norm_cfg = dict(type='SyncBN', requires_grad=True) model = dict( type='EncoderDecoder', diff --git a/mmseg/datasets/__init__.py b/mmseg/datasets/__init__.py index 9933feaf0..3c5396fba 100644 --- a/mmseg/datasets/__init__.py +++ b/mmseg/datasets/__init__.py @@ -1,30 +1,30 @@ -# Copyright (c) OpenMMLab. All rights reserved. -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, MultiImageMixDataset, - RepeatDataset) -from .drive import DRIVEDataset -from .hrf import HRFDataset -from .isaid import iSAIDDataset -from .isprs import ISPRSDataset -from .loveda import LoveDADataset -from .night_driving import NightDrivingDataset -from .pascal_context import PascalContextDataset, PascalContextDataset59 -from .potsdam import PotsdamDataset -from .stare import STAREDataset -from .voc import PascalVOCDataset -from .face import FaceOccluded - -__all__ = [ - 'CustomDataset', 'build_dataloader', 'ConcatDataset', 'RepeatDataset', - 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', - 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', - 'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', - 'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset', - 'COCOStuffDataset', 'LoveDADataset', 'MultiImageMixDataset', - 'iSAIDDataset', 'ISPRSDataset', 'PotsdamDataset',"FaceOccluded"] +# Copyright (c) OpenMMLab. All rights reserved. +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, MultiImageMixDataset, + RepeatDataset) +from .drive import DRIVEDataset +from .hrf import HRFDataset +from .isaid import iSAIDDataset +from .isprs import ISPRSDataset +from .loveda import LoveDADataset +from .night_driving import NightDrivingDataset +from .pascal_context import PascalContextDataset, PascalContextDataset59 +from .potsdam import PotsdamDataset +from .stare import STAREDataset +from .voc import PascalVOCDataset +from .face import FaceOccludedDataset + +__all__ = [ + 'CustomDataset', 'build_dataloader', 'ConcatDataset', 'RepeatDataset', + 'DATASETS', 'build_dataset', 'PIPELINES', 'CityscapesDataset', + 'PascalVOCDataset', 'ADE20KDataset', 'PascalContextDataset', + 'PascalContextDataset59', 'ChaseDB1Dataset', 'DRIVEDataset', 'HRFDataset', + 'STAREDataset', 'DarkZurichDataset', 'NightDrivingDataset', + 'COCOStuffDataset', 'LoveDADataset', 'MultiImageMixDataset', + 'iSAIDDataset', 'ISPRSDataset', 'PotsdamDataset', 'FaceOccludedDataset'] diff --git a/mmseg/datasets/face.py b/mmseg/datasets/face.py index cd0dcd121..cbc2345b0 100755 --- a/mmseg/datasets/face.py +++ b/mmseg/datasets/face.py @@ -1,23 +1,23 @@ -# Copyright (c) OpenMMLab. All rights reserved. -import os.path as osp - -from .builder import DATASETS -from .custom import CustomDataset - - -@DATASETS.register_module() -class FaceOccluded(CustomDataset): - """Face Occluded dataset. - - Args: - split (str): Split txt file for Pascal VOC. - """ - - CLASSES = ('background', 'face') - - PALETTE = [[0, 0, 0], [128, 0, 0]] - - def __init__(self, split, **kwargs): - super(FaceOccluded, self).__init__( - img_suffix='.jpg', seg_map_suffix='.png', split=split, **kwargs) - assert osp.exists(self.img_dir) and self.split is not None +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +from .builder import DATASETS +from .custom import CustomDataset + + +@DATASETS.register_module() +class FaceOccludedDataset(CustomDataset): + """Face Occluded dataset. + + Args: + split (str): Split txt file for Pascal VOC. + """ + + CLASSES = ('background', 'face') + + PALETTE = [[0, 0, 0], [128, 0, 0]] + + def __init__(self, split, **kwargs): + super(FaceOccludedDataset, self).__init__( + img_suffix='.jpg', seg_map_suffix='.png', split=split, **kwargs) + assert osp.exists(self.img_dir) and self.split is not None