Spaces:
Build error
Build error
| # Copyright (c) Facebook, Inc. and its affiliates. | |
| import logging | |
| import numpy as np | |
| import pycocotools.mask as mask_util | |
| import torch | |
| from fvcore.common.file_io import PathManager | |
| from PIL import Image | |
| from detectron2.data import transforms as T | |
| from .transforms.custom_augmentation_impl import EfficientDetResizeCrop | |
| def build_custom_augmentation(cfg, is_train, scale=None, size=None, \ | |
| min_size=None, max_size=None): | |
| """ | |
| Create a list of default :class:`Augmentation` from config. | |
| Now it includes resizing and flipping. | |
| Returns: | |
| list[Augmentation] | |
| """ | |
| if cfg.INPUT.CUSTOM_AUG == 'ResizeShortestEdge': | |
| if is_train: | |
| min_size = cfg.INPUT.MIN_SIZE_TRAIN if min_size is None else min_size | |
| max_size = cfg.INPUT.MAX_SIZE_TRAIN if max_size is None else max_size | |
| sample_style = cfg.INPUT.MIN_SIZE_TRAIN_SAMPLING | |
| else: | |
| min_size = cfg.INPUT.MIN_SIZE_TEST | |
| max_size = cfg.INPUT.MAX_SIZE_TEST | |
| sample_style = "choice" | |
| augmentation = [T.ResizeShortestEdge(min_size, max_size, sample_style)] | |
| elif cfg.INPUT.CUSTOM_AUG == 'EfficientDetResizeCrop': | |
| if is_train: | |
| scale = cfg.INPUT.SCALE_RANGE if scale is None else scale | |
| size = cfg.INPUT.TRAIN_SIZE if size is None else size | |
| else: | |
| scale = (1, 1) | |
| size = cfg.INPUT.TEST_SIZE | |
| augmentation = [EfficientDetResizeCrop(size, scale)] | |
| else: | |
| assert 0, cfg.INPUT.CUSTOM_AUG | |
| if is_train: | |
| augmentation.append(T.RandomFlip()) | |
| return augmentation | |
| build_custom_transform_gen = build_custom_augmentation | |
| """ | |
| Alias for backward-compatibility. | |
| """ |