Exemplo n.º 1
0
    def setup(self):
        to_uuid = lambda p: os.path.splitext(os.path.basename(p))[0]

        data_dir = os.path.join(self.dataset_dir, "data")
        if os.path.isdir(data_dir):
            self._uuids_to_image_paths = {
                to_uuid(p): p
                for p in etau.list_files(data_dir, abs_paths=True)
            }
        else:
            self._uuids_to_image_paths = {}

        labels_dir = os.path.join(self.dataset_dir, "labels")
        if os.path.isdir(labels_dir):
            self._uuids_to_labels_paths = {
                to_uuid(p): p
                for p in etau.list_files(labels_dir, abs_paths=True)
            }
        else:
            self._uuids_to_labels_paths = {}

        if self.skip_unlabeled:
            uuids = sorted(self._uuids_to_labels_paths.keys())
        else:
            # Allow uuid to missing from `_uuids_to_image_paths` since we will
            # try to use filepath from labels, if present
            uuids = sorted(
                set(self._uuids_to_image_paths.keys())
                | set(self._uuids_to_labels_paths.keys()))

        self._uuids = self._preprocess_list(uuids)
        self._num_samples = len(self._uuids)
Exemplo n.º 2
0
    def setup(self):
        to_uuid = lambda p: os.path.splitext(os.path.basename(p))[0]

        data_dir = os.path.join(self.dataset_dir, "data")
        if os.path.isdir(data_dir):
            self._uuids_to_video_paths = {
                to_uuid(p): p
                for p in etau.list_files(data_dir, abs_paths=True)
            }
        else:
            self._uuids_to_video_paths = {}

        labels_dir = os.path.join(self.dataset_dir, "labels")
        if os.path.isdir(labels_dir):
            self._uuids_to_labels_paths = {
                to_uuid(p): p
                for p in etau.list_files(labels_dir, abs_paths=True)
            }
        else:
            self._uuids_to_labels_paths = {}

        if self.skip_unlabeled:
            uuids = sorted(self._uuids_to_labels_paths.keys())
        else:
            uuids = sorted(self._uuids_to_video_paths.keys())

        self._info = None
        self._uuids = self._preprocess_list(uuids)
        self._num_samples = len(self._uuids)
        self._cvat_task_labels = CVATTaskLabels()
Exemplo n.º 3
0
    def setup(self):
        data_dir = os.path.join(self.dataset_dir, "data")
        labels_dir = os.path.join(self.dataset_dir, "labels")

        self._image_paths = etau.list_files(data_dir, abs_paths=True)

        self._anno_uuids_to_paths = {
            os.path.splitext(f)[0]: os.path.join(labels_dir, f)
            for f in etau.list_files(labels_dir, abs_paths=False)
        }
Exemplo n.º 4
0
    def setup(self):
        self._sample_parser = FiftyOneImageClassificationSampleParser()

        data_dir = os.path.join(self.dataset_dir, "data")
        self._image_paths_map = {
            os.path.splitext(os.path.basename(p))[0]: p
            for p in etau.list_files(data_dir, abs_paths=True)
        }

        labels_path = os.path.join(self.dataset_dir, "labels.json")
        if os.path.isfile(labels_path):
            labels = etas.load_json(labels_path)
        else:
            labels = {}

        self._classes = labels.get("classes", None)
        self._sample_parser.classes = self._classes

        self._labels_map = labels.get("labels", {})
        if self.skip_unlabeled:
            self._labels_map = {
                k: v for k, v in self._labels_map.items() if v is not None
            }

        uuids = sorted(self._labels_map.keys())
        self._uuids = self._preprocess_list(uuids)

        self._num_samples = len(self._uuids)
Exemplo n.º 5
0
    def setup(self):
        self._data_dir = os.path.join(self.dataset_dir, "data")

        labels_path = os.path.join(self.dataset_dir, "labels.json")
        if os.path.isfile(labels_path):
            (
                info,
                classes,
                supercategory_map,
                images,
                annotations,
            ) = load_coco_detection_annotations(labels_path)
        else:
            info = {}
            classes = None
            supercategory_map = None
            images = {}
            annotations = None

        if classes is not None:
            info["classes"] = classes

        self._info = info
        self._classes = classes
        self._supercategory_map = supercategory_map
        self._images_map = {i["file_name"]: i for i in images.values()}
        self._annotations = annotations

        if self.skip_unlabeled:
            filenames = self._images_map.keys()
        else:
            filenames = etau.list_files(self._data_dir, abs_paths=False)

        self._filenames = self._preprocess_list(filenames)
Exemplo n.º 6
0
    def setup(self):
        filepaths = etau.list_files(
            self.dataset_dir, abs_paths=True, recursive=self.recursive
        )
        filepaths = [p for p in filepaths if etav.is_video_mime_type(p)]

        self._filepaths = self._preprocess_list(filepaths)
        self._num_samples = len(self._filepaths)
Exemplo n.º 7
0
    def setup(self):
        self._data_dir = os.path.join(self.dataset_dir, "data")
        self._labels_path = os.path.join(self.dataset_dir, "labels.xml")

        _, cvat_images = load_cvat_image_annotations(self._labels_path)

        # Index by filename
        self._images_map = {i.name: i for i in cvat_images}

        self._filenames = etau.list_files(self._data_dir, abs_paths=False)
Exemplo n.º 8
0
    def setup(self):
        self._data_dir = os.path.join(self.dataset_dir, "data")

        labels_path = os.path.join(self.dataset_dir, "labels.json")
        classes, images, annotations = load_coco_detection_annotations(
            labels_path
        )

        self._classes = classes
        self._images_map = {i["file_name"]: i for i in images.values()}
        self._annotations = annotations
        self._filenames = etau.list_files(self._data_dir, abs_paths=False)
Exemplo n.º 9
0
    def setup(self):
        self._sample_parser = FiftyOneImageClassificationSampleParser()

        data_dir = os.path.join(self.dataset_dir, "data")
        self._image_paths_map = {
            os.path.splitext(os.path.basename(p))[0]: p
            for p in etau.list_files(data_dir, abs_paths=True)
        }

        labels_path = os.path.join(self.dataset_dir, "labels.json")
        labels = etas.load_json(labels_path)
        self._sample_parser.classes = labels.get("classes", None)
        self._labels = labels.get("labels", {})
        self._num_samples = len(self._labels)
Exemplo n.º 10
0
    def setup(self):
        self._data_dir = os.path.join(self.dataset_dir, "data")
        self._labels_path = os.path.join(self.dataset_dir, "labels.json")
        if os.path.isfile(self._labels_path):
            self._anno_dict_map = load_bdd_annotations(self._labels_path)
        else:
            self._anno_dict_map = {}

        filenames = etau.list_files(self._data_dir, abs_paths=False)

        if self.skip_unlabeled:
            filenames = [f for f in filenames if f in self._anno_dict_map]

        self._filenames = self._preprocess_list(filenames)
        self._num_samples = len(self._filenames)
Exemplo n.º 11
0
    def __init__(self, output_dir="", default_ext="", ignore_exts=False):
        self.output_dir = output_dir
        self.default_ext = default_ext
        self.ignore_exts = ignore_exts

        self._filename_counts = defaultdict(int)
        self._default_filename_patt = (fo.config.default_sequence_idx +
                                       default_ext)
        self._idx = 0

        if output_dir:
            etau.ensure_dir(output_dir)
            filenames = etau.list_files(output_dir)
            self._idx = len(filenames)
            for filename in filenames:
                self._filename_counts[filename] += 1
Exemplo n.º 12
0
def parse_images_dir(dataset_dir, recursive=True):
    """Parses the contents of the given directory of images.

    See :class:`fiftyone.types.dataset_types.ImageDirectory` for format
    details. In particular, note that files with non-image MIME types are
    omitted.

    Args:
        dataset_dir: the dataset directory
        recursive (True): whether to recursively traverse subdirectories

    Returns:
        a list of image paths
    """
    filepaths = etau.list_files(dataset_dir,
                                abs_paths=True,
                                recursive=recursive)
    return [p for p in filepaths if etai.is_image_mime_type(p)]
Exemplo n.º 13
0
def main(notebook_paths, skip_readme):
    if notebook_paths:
        notebook_paths = [
            os.path.relpath(os.path.abspath(path), ROOT_DIR)
            for path in notebook_paths
        ]
    else:
        notebook_paths = [
            os.path.join("examples", path)
            for path in etau.list_files(EXAMPLES_DIR, recursive=True)
            if path.endswith(".ipynb") and ".ipynb_checkpoints" not in path
        ]

    for notebook_path in notebook_paths:
        _add_notebook_links(notebook_path)

    if not skip_readme:
        _update_readme()
Exemplo n.º 14
0
    def setup(self):
        self._data_dir = os.path.join(self.dataset_dir, "data")
        self._labels_path = os.path.join(self.dataset_dir, "labels.xml")

        if os.path.isfile(self._labels_path):
            info, _, cvat_images = load_cvat_image_annotations(
                self._labels_path)
        else:
            info = {}
            cvat_images = []

        self._info = info

        # Index by filename
        self._images_map = {i.name: i for i in cvat_images}

        filenames = etau.list_files(self._data_dir, abs_paths=False)

        if self.skip_unlabeled:
            filenames = [f for f in filenames if f in self._images_map]

        self._filenames = self._preprocess_list(filenames)
        self._num_samples = len(self._filenames)
Exemplo n.º 15
0
 def setup(self):
     self._data_dir = os.path.join(self.dataset_dir, "data")
     self._labels_path = os.path.join(self.dataset_dir, "labels.json")
     self._anno_dict_map = load_bdd_annotations(self._labels_path)
     self._filenames = etau.list_files(self._data_dir, abs_paths=False)
Exemplo n.º 16
0
 def setup(self):
     filepaths = etau.list_files(self.dataset_dir,
                                 abs_paths=True,
                                 recursive=self.recursive)
     self._filepaths = [p for p in filepaths if etai.is_image_mime_type(p)]
Exemplo n.º 17
0
    def get_num_samples(dataset_dir):
        data_dir = os.path.join(dataset_dir, "data")
        if not os.path.isdir(data_dir):
            return 0

        return len(etau.list_files(data_dir))