models_animerun / UnSAMFlow /datasets /get_dataset.py
doanh25032004's picture
Upload folder using huggingface_hub
872b0a0 verified
Raw
History Blame Contribute Delete
5.13 kB
"""
Copyright (c) Meta Platforms, Inc. and affiliates.
"""
from datasets.flow_datasets import (
KITTIFlowEval,
KITTIFlowMV,
KITTIRawFile,
Sintel,
SintelRaw,
)
from torch.utils.data import ConcatDataset
from torchvision import transforms
from transforms import input_transforms
from transforms.ar_transforms.ap_transforms import get_ap_transforms
from transforms.co_transforms import get_co_transforms
def get_dataset(cfg):
co_transform = get_co_transforms(aug_args=cfg.data_aug)
ap_transform = get_ap_transforms(cfg.at_cfg) if cfg.run_at else None
if cfg.type == "KITTI_Raw+MV_2stage":
train_input_transform = transforms.Compose(
[input_transforms.Zoom(*cfg.train_shape), input_transforms.ArrayToTensor()]
)
valid_input_transform = transforms.Compose(
[input_transforms.Zoom(*cfg.test_shape), input_transforms.ArrayToTensor()]
)
train_set_1 = KITTIRawFile(
cfg.root_raw,
cfg.full_seg_root_raw,
cfg.key_obj_root_raw,
name="kitti-raw",
input_transform=train_input_transform,
ap_transform=ap_transform,
co_transform=co_transform,
)
train_set_2_1 = KITTIFlowMV(
cfg.root_kitti15,
cfg.full_seg_root_kitti15,
cfg.key_obj_root_kitti15,
name="kitti2015-mv",
input_transform=train_input_transform,
ap_transform=ap_transform,
co_transform=co_transform,
)
train_set_2_2 = KITTIFlowMV(
cfg.root_kitti12,
cfg.full_seg_root_kitti12,
cfg.key_obj_root_kitti12,
name="kitti2012-mv",
input_transform=train_input_transform,
ap_transform=ap_transform,
co_transform=co_transform,
)
train_set_2 = ConcatDataset([train_set_2_1, train_set_2_2])
train_set_2.name = "kitti-mv"
valid_set_1 = KITTIFlowEval(
cfg.root_kitti15,
cfg.full_seg_root_kitti15,
None,
name="kitti2015",
input_transform=valid_input_transform,
)
valid_set_2 = KITTIFlowEval(
cfg.root_kitti12,
cfg.full_seg_root_kitti12,
None,
name="kitti2012",
input_transform=valid_input_transform,
)
train_sets = [train_set_1, train_set_2]
train_sets_epoches = [cfg.epoches_raw, cfg.epoches_mv]
valid_sets = [valid_set_1, valid_set_2]
elif cfg.type == "Sintel_Raw+ft_2stage":
train_input_transform = transforms.Compose([input_transforms.ArrayToTensor()])
valid_input_transform = transforms.Compose(
[input_transforms.Zoom(*cfg.test_shape), input_transforms.ArrayToTensor()]
)
train_set_1 = SintelRaw(
cfg.root_sintel_raw,
cfg.full_seg_root_sintel_raw,
cfg.key_obj_root_sintel_raw,
name="sintel-raw",
input_transform=train_input_transform,
ap_transform=ap_transform,
co_transform=co_transform,
)
train_set_2_1 = Sintel(
cfg.root_sintel,
cfg.full_seg_root_sintel,
cfg.key_obj_root_sintel,
name="sintel-clean_" + cfg.train_subsplit,
dataset_type="clean",
split="train",
subsplit=cfg.train_subsplit,
input_transform=train_input_transform,
ap_transform=ap_transform,
co_transform=co_transform,
)
train_set_2_2 = Sintel(
cfg.root_sintel,
cfg.full_seg_root_sintel,
cfg.key_obj_root_sintel,
name="sintel-final_" + cfg.train_subsplit,
dataset_type="final",
split="train",
subsplit=cfg.train_subsplit,
input_transform=train_input_transform,
ap_transform=ap_transform,
co_transform=co_transform,
)
train_set_2 = ConcatDataset([train_set_2_1, train_set_2_2])
train_set_2.name = "sintel_clean+final_" + cfg.train_subsplit
valid_set_1 = Sintel(
cfg.root_sintel,
cfg.full_seg_root_sintel,
None,
name="sintel-clean_" + cfg.val_subsplit,
dataset_type="clean",
split="train",
subsplit=cfg.val_subsplit,
with_flow=True, # for validation
input_transform=valid_input_transform,
)
valid_set_2 = Sintel(
cfg.root_sintel,
cfg.full_seg_root_sintel,
None,
name="sintel-final_" + cfg.val_subsplit,
dataset_type="final",
split="train",
subsplit=cfg.val_subsplit,
with_flow=True, # for validation
input_transform=valid_input_transform,
)
train_sets = [train_set_1, train_set_2]
train_sets_epoches = [cfg.epoches_raw, cfg.epoches_ft]
valid_sets = [valid_set_1, valid_set_2]
return train_sets, valid_sets, train_sets_epoches