Source code for dalib.vision.datasets.office31

from typing import Optional
import os
from .imagelist import ImageList
from ._util import download as download_data, check_exits


[docs]class Office31(ImageList): """Office31 Dataset. Parameters: - **root** (str): Root directory of dataset - **task** (str): The task (domain) to create dataset. Choices include ``'A'``: amazon, \ ``'D'``: dslr and ``'W'``: webcam. - **download** (bool, optional): If true, downloads the dataset from the internet and puts it \ in root directory. If dataset is already downloaded, it is not downloaded again. - **transform** (callable, optional): A function/transform that takes in an PIL image and returns a \ transformed version. E.g, ``transforms.RandomCrop``. - **target_transform** (callable, optional): A function/transform that takes in the target and transforms it. .. note:: In `root`, there will exist following files after downloading. :: amazon/ images/ backpack/ *.jpg ... dslr/ webcam/ image_list/ amazon.txt dslr.txt webcam.txt """ download_list = [ ("image_list", "image_list.zip", "https://cloud.tsinghua.edu.cn/f/1f5646f39aeb4d7389b9/?dl=1"), ("amazon", "amazon.tgz", "https://cloud.tsinghua.edu.cn/f/05640442cd904c39ad60/?dl=1"), ("dslr", "dslr.tgz", "https://cloud.tsinghua.edu.cn/f/a069d889628d4b468c32/?dl=1"), ("webcam", "amazon.tgz", "https://cloud.tsinghua.edu.cn/f/4c4afebf51384cf1aa95/?dl=1"), ] image_list = { "A": "image_list/amazon.txt", "D": "image_list/dslr.txt", "W": "image_list/webcam.txt" } CLASSES = ['back_pack', 'bike', 'bike_helmet', 'bookcase', 'bottle', 'calculator', 'desk_chair', 'desk_lamp', 'desktop_computer', 'file_cabinet', 'headphones', 'keyboard', 'laptop_computer', 'letter_tray', 'mobile_phone', 'monitor', 'mouse', 'mug', 'paper_notebook', 'pen', 'phone', 'printer', 'projector', 'punchers', 'ring_binder', 'ruler', 'scissors', 'speaker', 'stapler', 'tape_dispenser', 'trash_can'] def __init__(self, root: str, task: str, download: Optional[bool] = True, **kwargs): assert task in self.image_list data_list_file = os.path.join(root, self.image_list[task]) if download: list(map(lambda args: download_data(root, *args), self.download_list)) else: list(map(lambda file_name, _: check_exits(root, file_name), self.download_list)) super(Office31, self).__init__(root, Office31.CLASSES, data_list_file=data_list_file, **kwargs)