|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""Dataset file for Object365.""" |
|
|
from pathlib import Path |
|
|
|
|
|
from .coco import ( |
|
|
CocoDetection, make_coco_transforms, make_coco_transforms_square_div_64 |
|
|
) |
|
|
|
|
|
from PIL import Image |
|
|
Image.MAX_IMAGE_PIXELS = None |
|
|
|
|
|
|
|
|
def build_o365_raw(image_set, args, resolution): |
|
|
root = Path(args.coco_path) |
|
|
PATHS = { |
|
|
"train": (root, root / 'zhiyuan_objv2_train_val_wo_5k.json'), |
|
|
"val": (root, root / 'zhiyuan_objv2_minival5k.json'), |
|
|
} |
|
|
img_folder, ann_file = PATHS[image_set] |
|
|
|
|
|
try: |
|
|
square_resize = args.square_resize |
|
|
except: |
|
|
square_resize = False |
|
|
|
|
|
try: |
|
|
square_resize_div_64 = args.square_resize_div_64 |
|
|
except: |
|
|
square_resize_div_64 = False |
|
|
|
|
|
if square_resize_div_64: |
|
|
dataset = CocoDetection(img_folder, ann_file, transforms=make_coco_transforms_square_div_64(image_set, resolution, multi_scale=args.multi_scale, expanded_scales=args.expanded_scales)) |
|
|
else: |
|
|
dataset = CocoDetection(img_folder, ann_file, transforms=make_coco_transforms(image_set, resolution, multi_scale=args.multi_scale, expanded_scales=args.expanded_scales)) |
|
|
return dataset |
|
|
|
|
|
|
|
|
def build_o365(image_set, args, resolution): |
|
|
if image_set == 'train': |
|
|
train_ds = build_o365_raw('train', args, resolution=resolution) |
|
|
return train_ds |
|
|
if image_set == 'val': |
|
|
val_ds = build_o365_raw('val', args, resolution=resolution) |
|
|
return val_ds |
|
|
raise ValueError('Unknown image_set: {}'.format(image_set)) |