Spaces:
Sleeping
Sleeping
import os | |
import logging | |
import warnings | |
from minigpt4.common.registry import registry | |
from minigpt4.datasets.builders.base_dataset_builder import BaseDatasetBuilder | |
from minigpt4.datasets.datasets.laion_dataset import LaionDataset | |
from minigpt4.datasets.datasets.vg_dataset import ReferVisualGenomeDataset | |
from minigpt4.datasets.datasets.open_images import OpenImageDataset,OpenBboxToObjectDataset | |
from minigpt4.datasets.datasets.locna_dataset import LocNaCOCODataset | |
from minigpt4.datasets.datasets.llava_dataset import LlavaDetailDataset, LlavaReasonDataset, LlavaConversationDataset | |
from minigpt4.datasets.datasets.lvis_dataset import LVISBBOXDataset,LVISBboxToObjectDataset | |
from minigpt4.datasets.datasets.text_caps import TextCapBboxToObjectDataset, TextCapDataset | |
from minigpt4.datasets.datasets.coco_caption import COCOCapDataset,COCOCapEvalDataset | |
from minigpt4.datasets.datasets.coyo_dataset import COYOCaptionWDSDataset,COYOBoxToPhraseWDSDataset,COYOPhraseToBoxWDSDataset | |
# , COYOBBoxPhraseDataset | |
from minigpt4.datasets.datasets.grounded_detailed_image_caption_dataset import GroundedDetailDataset | |
from minigpt4.datasets.datasets.reasoning_dataset import ReasoningDataset | |
from minigpt4.datasets.datasets.video_datasets import CMDVideoDataset, WebVidDataset,VideoChatGPTDataset,Video_validation_Dataset | |
from minigpt4.datasets.datasets.cot import CoTDataset | |
from minigpt4.datasets.datasets.unnatural_instruction import UnnaturalDataset | |
from minigpt4.datasets.datasets.caption_reasoning import CaptionReasonDataset | |
from minigpt4.datasets.datasets.aok_vqa_reasoning_datasets import AOKVQAReasoningDataset | |
from minigpt4.datasets.datasets.paint_dataset import PaintPTCOCODataset, PaintRLCOCODataset, PaintPixelCOCODataset, SegReferCOCODataset, PaintLanRLOpaqueCOCODataset | |
from minigpt4.datasets.datasets.nav_dataset import NavR2RDataset | |
class LlavaDetailBuilder(BaseDatasetBuilder): | |
train_dataset_cls = AOKVQAReasoningDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/aokvqa_reasoning/defaults.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_paths=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class CaptionReasoningBuilder(BaseDatasetBuilder): | |
train_dataset_cls = CaptionReasonDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/mm_reasoning/mm_reasoning.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
# print("ann_path",build_info.ann_path) | |
# print("vis root",build_info.image_path ) | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors['train'], | |
text_processor=self.text_processors['train'], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class UnnaturalInstructionBuilder(BaseDatasetBuilder): | |
train_dataset_cls = UnnaturalDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/nlp/unnatural_instruction.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
text_processor=self.text_processors["train"], | |
ann_path=build_info.ann_path, | |
) | |
return datasets | |
class CoTBuilder(BaseDatasetBuilder): | |
train_dataset_cls = CoTDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/nlp/cot.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
text_processor=self.text_processors["train"], | |
ann_path=build_info.ann_path, | |
) | |
return datasets | |
class COCOCapBuilder(BaseDatasetBuilder): | |
train_dataset_cls = COCOCapDataset | |
eval_dataset_cls = COCOCapEvalDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/coco/caption.yaml", | |
"eval": "configs/datasets/coco/caption.yaml", | |
} | |
class OpenImageBuilder(BaseDatasetBuilder): | |
train_dataset_cls = OpenImageDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/open_images/default.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class OpenBboxToObjectuilder(BaseDatasetBuilder): | |
train_dataset_cls = OpenBboxToObjectDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/open_images/default_bbox.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class LVISBBOxBuilder(BaseDatasetBuilder): | |
train_dataset_cls = LVISBBOXDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/lvis/default_bbox.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class LVISBBoxToObjectBuilder(BaseDatasetBuilder): | |
train_dataset_cls = LVISBboxToObjectDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/lvis/bbox_to_object.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class ReasoningBuilder(BaseDatasetBuilder): | |
train_dataset_cls = ReasoningDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/reasoning/default.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class TextcapCaptionBuilder(BaseDatasetBuilder): | |
train_dataset_cls = TextCapDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/textcaps/caption.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class CoyoCaptionBuilder(BaseDatasetBuilder): | |
train_dataset_cls = COYOCaptionWDSDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/coyo/default.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class CoyoBboxPhraseBuilder(BaseDatasetBuilder): | |
train_dataset_cls = COYOBoxToPhraseWDSDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/coyo/bbox_phrase.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class CoyoBboxPhraseBuilder(BaseDatasetBuilder): | |
train_dataset_cls = COYOPhraseToBoxWDSDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/coyo/phrase_bbox.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class TextcapCaptionBuilder(BaseDatasetBuilder): | |
train_dataset_cls = TextCapBboxToObjectDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/textcaps/ocr.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class LaionBuilder(BaseDatasetBuilder): | |
train_dataset_cls = LaionDataset | |
DATASET_CONFIG_DICT = {"default": "configs/datasets/laion/defaults.yaml"} | |
def _download_ann(self): | |
pass | |
def _download_vis(self): | |
pass | |
def build(self): | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
split = "train" | |
# create datasets | |
# [NOTE] return inner_datasets (wds.DataPipeline) | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors[split], | |
text_processor=self.text_processors[split], | |
location=build_info.storage, | |
).inner_dataset | |
return datasets | |
class LocNaCOCOBuilder(BaseDatasetBuilder): | |
train_dataset_cls = LocNaCOCODataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/coco/defaults_locna.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
ann_paths = build_info.annotations.train.storage | |
datasets = dict() | |
for ann_path in ann_paths: | |
if not os.path.exists(ann_path): | |
warnings.warn("storage path {} does not exist.".format(ann_path)) | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_paths=ann_paths, | |
vis_root=build_info.images.storage, | |
) | |
return datasets | |
class LlavaDetailBuilder(BaseDatasetBuilder): | |
train_dataset_cls = LlavaDetailDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/llava/detail.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class GroundedCaptionBuilder(BaseDatasetBuilder): | |
train_dataset_cls = GroundedDetailDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/grounded_image_caption/default.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class LlavaReasonBuilder(BaseDatasetBuilder): | |
train_dataset_cls = LlavaReasonDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/llava/reason.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class LlavaReasonBuilder(BaseDatasetBuilder): | |
train_dataset_cls = LlavaConversationDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/llava/conversation.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_path=build_info.ann_path, | |
vis_root=build_info.image_path, | |
) | |
return datasets | |
class AllRefCOCOBuilder(BaseDatasetBuilder): | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
image_path = build_info.image_path | |
ann_path = build_info.ann_path | |
datasets = dict() | |
if not os.path.exists(image_path): | |
warnings.warn("image path {} does not exist.".format(image_path)) | |
if not os.path.exists(ann_path): | |
warnings.warn("ann path {} does not exist.".format(ann_path)) | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_path=ann_path, | |
vis_root=image_path, | |
dataset=build_info.dataset, | |
splitBy=build_info.splitBy | |
) | |
return datasets | |
class RefVisualGenomeBuilder(BaseDatasetBuilder): | |
train_dataset_cls = ReferVisualGenomeDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/vg/ref.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
data_dir = build_info.data_dir | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
data_dir=data_dir, | |
) | |
return datasets | |
class CMDVideoBuilder(BaseDatasetBuilder): | |
train_dataset_cls = CMDVideoDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/cmd_video/default.yaml", | |
} | |
def build_datasets(self): | |
# download, split, etc... | |
# only called on 1 GPU/TPU in distributed | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
vis_root=build_info.vis_root, | |
ann_paths=build_info.ann_paths, | |
cc_path=build_info.cc_path | |
) | |
return datasets | |
class WebVidBuilder(BaseDatasetBuilder): | |
train_dataset_cls = WebVidDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/webvid/default.yaml", | |
} | |
def build_datasets(self): | |
# download, split, etc... | |
# only called on 1 GPU/TPU in distributed | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
vis_root=build_info.vis_root, | |
ann_paths=build_info.ann_paths, | |
subtitles_path=build_info.subtitles_path, | |
) | |
return datasets | |
class VideoChatGPTBuilder(BaseDatasetBuilder): | |
train_dataset_cls = VideoChatGPTDataset | |
eval_dataset_cls=Video_validation_Dataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/video_chatgpt/default.yaml", | |
} | |
print(DATASET_CONFIG_DICT) | |
def build_datasets(self): | |
# download, split, etc... | |
# only called on 1 GPU/TPU in distributed | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
vis_root=build_info.vis_root, | |
ann_paths=build_info.ann_paths, | |
) | |
return datasets | |
class NavR2RBuilder(BaseDatasetBuilder): | |
train_dataset_cls = NavR2RDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/nav/r2r.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
data_root=build_info.data_root | |
) | |
return datasets | |
class PaintPTCOCOBuilder(BaseDatasetBuilder): | |
train_dataset_cls = PaintPTCOCODataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/coco.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
img_root = build_info.img_root | |
stroke_root = build_info.stroke_root | |
max_step = build_info.max_step | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
img_root=img_root, | |
stroke_root=stroke_root, | |
max_step=max_step | |
) | |
return datasets | |
class PaintRLCOCOBuilderBase(BaseDatasetBuilder): | |
train_dataset_cls = PaintRLCOCODataset | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
img_root = build_info.img_root | |
stroke_root = build_info.stroke_root | |
max_step = build_info.max_step | |
single_stroke = build_info.single_stroke | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
img_root=img_root, | |
stroke_root=stroke_root, | |
max_step=max_step, | |
single_stroke=single_stroke | |
) | |
return datasets | |
class PaintRLCOCOBuilder(PaintRLCOCOBuilderBase): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/rl_coco.yaml", | |
} | |
class PaintRLSCOCOBuilder(PaintRLCOCOBuilderBase): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/rls_coco.yaml", | |
} | |
class PaintLanRLOpaqueCOCOBuilder(BaseDatasetBuilder): | |
train_dataset_cls = PaintLanRLOpaqueCOCODataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/lan_rls_o_coco.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
img_root = build_info.img_root | |
stroke_root = build_info.stroke_root | |
max_step = build_info.max_step | |
single_stroke = build_info.single_stroke | |
ann_path = build_info.ann_path | |
datasets = dict() | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
img_root=img_root, | |
stroke_root=stroke_root, | |
ann_path=ann_path, | |
max_step=max_step, | |
single_stroke=single_stroke | |
) | |
return datasets | |
class PaintPixelCOCOBuilder(BaseDatasetBuilder): | |
train_dataset_cls = PaintPixelCOCODataset | |
def build(self): | |
""" | |
Create by split datasets inheriting torch.utils.data.Datasets. | |
# build() can be dataset-specific. Overwrite to customize. | |
""" | |
self.build_processors() | |
build_info = self.config.build_info | |
ann_info = build_info.annotations | |
vis_info = build_info.get(self.data_type) | |
res = build_info.res | |
datasets = dict() | |
split = 'train' | |
# annotation path | |
ann_paths = ann_info.get(split).storage | |
if isinstance(ann_paths, str): | |
ann_paths = [ann_paths] | |
# visual data storage path | |
vis_path = os.path.join(vis_info.storage, split) | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets[split] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_paths=ann_paths, | |
vis_root=vis_path, | |
res=res | |
) | |
return datasets | |
class PaintPixelCOCO32Builder(PaintPixelCOCOBuilder): | |
train_dataset_cls = PaintPixelCOCODataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/pixel_coco_32.yaml", | |
} | |
class PaintPixelCOCO64Builder(PaintPixelCOCOBuilder): | |
train_dataset_cls = PaintPixelCOCODataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/pixel_coco_64.yaml", | |
} | |
class AllSegRefCOCOBuilder(BaseDatasetBuilder): | |
train_dataset_cls = SegReferCOCODataset | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
image_path = build_info.image_path | |
ann_path = build_info.ann_path | |
res = build_info.res | |
datasets = dict() | |
if not os.path.exists(image_path): | |
warnings.warn("image path {} does not exist.".format(image_path)) | |
if not os.path.exists(ann_path): | |
warnings.warn("ann path {} does not exist.".format(ann_path)) | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
vis_processor=self.vis_processors["train"], | |
text_processor=self.text_processors["train"], | |
ann_path=ann_path, | |
vis_root=image_path, | |
res=res, | |
dataset=build_info.dataset, | |
splitBy=build_info.splitBy | |
) | |
return datasets | |
class SegRefCOCO32Builder(AllSegRefCOCOBuilder): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/segrefcoco32.yaml", | |
} | |
class SegRefCOCOP32Builder(AllSegRefCOCOBuilder): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/segrefcocop32.yaml", | |
} | |
class SegRefCOCOG32Builder(AllSegRefCOCOBuilder): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/segrefcocog32.yaml", | |
} | |
class SegRefCOCO64Builder(AllSegRefCOCOBuilder): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/segrefcoco64.yaml", | |
} | |
class SegRefCOCOP64Builder(AllSegRefCOCOBuilder): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/segrefcocop64.yaml", | |
} | |
class SegRefCOCOG64Builder(AllSegRefCOCOBuilder): | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/paint/segrefcocog64.yaml", | |
} | |