Shortcuts

Source code for mmpose.datasets.datasets.fashion.deepfashion_dataset

# Copyright (c) OpenMMLab. All rights reserved.
from typing import Callable, List, Optional, Sequence, Union

from mmpose.registry import DATASETS
from ..base import BaseCocoStyleDataset


[docs]@DATASETS.register_module() class DeepFashionDataset(BaseCocoStyleDataset): """DeepFashion dataset (full-body clothes) for fashion landmark detection. "DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations", CVPR'2016. "Fashion Landmark Detection in the Wild", ECCV'2016. The dataset contains 3 categories for full-body, upper-body and lower-body. Fashion landmark indexes for upper-body clothes:: 0: 'left collar', 1: 'right collar', 2: 'left sleeve', 3: 'right sleeve', 4: 'left hem', 5: 'right hem' Fashion landmark indexes for lower-body clothes:: 0: 'left waistline', 1: 'right waistline', 2: 'left hem', 3: 'right hem' Fashion landmark indexes for full-body clothes:: 0: 'left collar', 1: 'right collar', 2: 'left sleeve', 3: 'right sleeve', 4: 'left waistline', 5: 'right waistline', 6: 'left hem', 7: 'right hem' Args: ann_file (str): Annotation file path. Default: ''. subset (str): Specifies the subset of body: ``'full'``, ``'upper'`` or ``'lower'``. Default: '', which means ``'full'``. bbox_file (str, optional): Detection result file path. If ``bbox_file`` is set, detected bboxes loaded from this file will be used instead of ground-truth bboxes. This setting is only for evaluation, i.e., ignored when ``test_mode`` is ``False``. Default: ``None``. data_mode (str): Specifies the mode of data samples: ``'topdown'`` or ``'bottomup'``. In ``'topdown'`` mode, each data sample contains one instance; while in ``'bottomup'`` mode, each data sample contains all instances in a image. Default: ``'topdown'`` metainfo (dict, optional): Meta information for dataset, such as class information. Default: ``None``. data_root (str, optional): The root directory for ``data_prefix`` and ``ann_file``. Default: ``None``. data_prefix (dict, optional): Prefix for training data. Default: ``dict(img='')``. filter_cfg (dict, optional): Config for filter data. Default: `None`. indices (int or Sequence[int], optional): Support using first few data in annotation file to facilitate training/testing on a smaller dataset. Default: ``None`` which means using all ``data_infos``. serialize_data (bool, optional): Whether to hold memory using serialized objects, when enabled, data loader workers can use shared RAM from master process instead of making a copy. Default: ``True``. pipeline (list, optional): Processing pipeline. Default: []. test_mode (bool, optional): ``test_mode=True`` means in test phase. Default: ``False``. lazy_init (bool, optional): Whether to load annotation during instantiation. In some cases, such as visualization, only the meta information of the dataset is needed, which is not necessary to load annotation file. ``Basedataset`` can skip load annotations to save time by set ``lazy_init=False``. Default: ``False``. max_refetch (int, optional): If ``Basedataset.prepare_data`` get a None img. The maximum extra number of cycles to get a valid image. Default: 1000. """ def __init__(self, ann_file: str = '', subset: str = '', bbox_file: Optional[str] = None, data_mode: str = 'topdown', metainfo: Optional[dict] = None, data_root: Optional[str] = None, data_prefix: dict = dict(img=''), filter_cfg: Optional[dict] = None, indices: Optional[Union[int, Sequence[int]]] = None, serialize_data: bool = True, pipeline: List[Union[dict, Callable]] = [], test_mode: bool = False, lazy_init: bool = False, max_refetch: int = 1000): self._check_subset_and_metainfo(subset) super().__init__( ann_file=ann_file, bbox_file=bbox_file, data_mode=data_mode, metainfo=metainfo, data_root=data_root, data_prefix=data_prefix, filter_cfg=filter_cfg, indices=indices, serialize_data=serialize_data, pipeline=pipeline, test_mode=test_mode, lazy_init=lazy_init, max_refetch=max_refetch) @classmethod def _check_subset_and_metainfo(cls, subset: str = '') -> None: """Check the subset of body and set the corresponding metainfo. Args: subset(str): the subset of body: could be ``'full'``, ``'upper'`` or ``'lower'``. Default: '', which means ``'full'``. """ if subset == '' or subset == 'full': cls.METAINFO = dict( from_file='configs/_base_/datasets/deepfashion_full.py') elif subset == 'upper': cls.METAINFO = dict( from_file='configs/_base_/datasets/deepfashion_upper.py') elif subset == 'lower': cls.METAINFO = dict( from_file='configs/_base_/datasets/deepfashion_lower.py') else: raise ValueError( f'{cls.__class__.__name__} got invalid subset: ' f'{subset}. Should be "full", "lower" or "upper".')
Read the Docs v: latest
Versions
latest
0.x
dev-1.x
Downloads
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.