def test_classification_datasets(basedir, img): # Create a classification dataset images_dir = os.path.join(basedir, "source-images") dataset = _make_classification_dataset(img, images_dir) # FiftyOneImageClassificationDataset export_dir = os.path.join(basedir, "fiftyone-image-classification") dataset_type = fo.types.FiftyOneImageClassificationDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # ImageClassificationDirectoryTree export_dir = os.path.join(basedir, "image-classification-dir-tree") dataset_type = fo.types.ImageClassificationDirectoryTree dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # TFImageClassificationDataset export_dir = os.path.join(basedir, "tf-image-classification") dataset_type = fo.types.TFImageClassificationDataset tmp_dir = os.path.join(basedir, "tf-image-classification-tmp-images") dataset.export(export_dir, dataset_type=dataset_type, num_shards=2) dataset2 = fo.Dataset.from_dir( export_dir, dataset_type, images_dir=tmp_dir ) # JSON json_path = os.path.join(basedir, "dataset.json") dataset.write_json(json_path, pretty_print=True) dataset2 = fo.Dataset.from_json( json_path, name=fod.get_default_dataset_name() )
def test_rel_filepaths(basedir, img): # Create a classification dataset images_dir = os.path.join(basedir, "source-images") dataset = _make_classification_dataset(img, images_dir) # Test `Dataset.to_dict` with and without relative paths rel_dir = basedir d_abs = dataset.to_dict() d_rel = dataset.to_dict(rel_dir=rel_dir) for sd_abs, sd_rel in zip(d_abs["samples"], d_rel["samples"]): assert sd_abs["filepath"] == os.path.join(rel_dir, sd_rel["filepath"]) # Test `Dataset.from_dict` with and without relative paths dataset1 = fo.Dataset.from_dict(d_abs, name=fod.get_default_dataset_name()) dataset2 = fo.Dataset.from_dict( d_rel, name=fod.get_default_dataset_name(), rel_dir=rel_dir ) for s_abs, s_rel in zip(dataset1, dataset2): assert s_abs.filepath == s_rel.filepath
def test_detection_datasets(basedir, img): # Create a detection dataset images_dir = os.path.join(basedir, "source-images") dataset = _make_detection_dataset(img, images_dir) # FiftyOneImageDetectionDataset export_dir = os.path.join(basedir, "fiftyone-image-detection") dataset_type = fo.types.FiftyOneImageDetectionDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # COCODetectionDataset export_dir = os.path.join(basedir, "coco-detection") dataset_type = fo.types.COCODetectionDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # VOCDetectionDataset export_dir = os.path.join(basedir, "voc-detection") dataset_type = fo.types.VOCDetectionDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # KITTIDetectionDataset export_dir = os.path.join(basedir, "kitti-detection") dataset_type = fo.types.KITTIDetectionDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # YOLODataset export_dir = os.path.join(basedir, "yolo") dataset_type = fo.types.YOLODataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # TFObjectDetectionDataset export_dir = os.path.join(basedir, "tf-object-detection") dataset_type = fo.types.TFObjectDetectionDataset tmp_dir = os.path.join(basedir, "tf-object-detection-tmp-images") dataset.export(export_dir, dataset_type=dataset_type, num_shards=2) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type, images_dir=tmp_dir) # CVATImageDataset export_dir = os.path.join(basedir, "cvat-image") dataset_type = fo.types.CVATImageDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # JSON json_path = os.path.join(basedir, "dataset.json") dataset.write_json(json_path, pretty_print=True) dataset2 = fo.Dataset.from_json(json_path, name=fod.get_default_dataset_name())
def test_image_labels_datasets(basedir, img): # Create an image labels dataset images_dir = os.path.join(basedir, "source-images") dataset = _make_image_labels_dataset(img, images_dir) # FiftyOneImageLabelsDataset export_dir = os.path.join(basedir, "fiftyone-image-labels") dataset_type = fo.types.FiftyOneImageLabelsDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # BDDDataset export_dir = os.path.join(basedir, "bdd") dataset_type = fo.types.BDDDataset dataset.export(export_dir, dataset_type=dataset_type) dataset2 = fo.Dataset.from_dir(export_dir, dataset_type) # JSON json_path = os.path.join(basedir, "dataset.json") dataset.write_json(json_path, pretty_print=True) dataset2 = fo.Dataset.from_json(json_path, name=fod.get_default_dataset_name())