| |
| |
| |
| |
| |
| |
| |
| |
|
|
| """ |
| COCO dataset which returns image_id for evaluation. |
| |
| Mostly copy-paste from https://github.com/pytorch/vision/blob/13b35ff/references/detection/coco_utils.py |
| """ |
| from pathlib import Path |
|
|
| import datasets.transforms as T |
|
|
| import torch |
| import torch.utils.data |
| from pycocotools import mask as coco_mask |
| from util.misc import get_local_rank, get_local_size |
|
|
| from .coco import CocoDetection, make_coco_transforms, make_coco_transforms_lsj |
| from .torchvision_datasets import CocoDetection as TvCocoDetection |
|
|
|
|
| def build(image_set, args): |
| root = Path(args.coco_path) |
| assert root.exists(), f"provided Objects365 path {root} does not exist" |
| mode = "instances" |
| PATHS = { |
| "train": ( |
| root / "train", |
| root / "annotations" / "zhiyuan_objv2_train_fixmiss.json", |
| ), |
| "val": (root / "val", root / "annotations" / "zhiyuan_objv2_val.json"), |
| } |
|
|
| img_folder, ann_file = PATHS[image_set] |
| if args.lsj: |
| coco_transform = make_coco_transforms_lsj(image_set, args.lsj_img_size) |
| else: |
| coco_transform = make_coco_transforms(image_set, args.bigger) |
| dataset = CocoDetection( |
| img_folder, |
| ann_file, |
| transforms=coco_transform, |
| return_masks=args.masks, |
| cache_mode=args.cache_mode, |
| local_rank=get_local_rank(), |
| local_size=get_local_size(), |
| ) |
| return dataset |
|
|