Spaces:
Configuration error
Configuration error
StableVITON
/
preprocess
/detectron2
/projects
/DensePose
/tests
/test_dataset_loaded_annotations.py
| # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved | |
| import unittest | |
| from densepose.data.datasets.builtin import COCO_DATASETS, DENSEPOSE_ANNOTATIONS_DIR, LVIS_DATASETS | |
| from densepose.data.datasets.coco import load_coco_json | |
| from densepose.data.datasets.lvis import load_lvis_json | |
| from densepose.data.utils import maybe_prepend_base_path | |
| from densepose.structures import DensePoseDataRelative | |
| class TestDatasetLoadedAnnotations(unittest.TestCase): | |
| COCO_DATASET_DATA = { | |
| "densepose_coco_2014_train": {"n_instances": 39210}, | |
| "densepose_coco_2014_minival": {"n_instances": 2243}, | |
| "densepose_coco_2014_minival_100": {"n_instances": 164}, | |
| "densepose_coco_2014_valminusminival": {"n_instances": 7297}, | |
| "densepose_coco_2014_train_cse": {"n_instances": 39210}, | |
| "densepose_coco_2014_minival_cse": {"n_instances": 2243}, | |
| "densepose_coco_2014_minival_100_cse": {"n_instances": 164}, | |
| "densepose_coco_2014_valminusminival_cse": {"n_instances": 7297}, | |
| "densepose_chimps": {"n_instances": 930}, | |
| "posetrack2017_train": {"n_instances": 8274}, | |
| "posetrack2017_val": {"n_instances": 4753}, | |
| "lvis_v05_train": {"n_instances": 5186}, | |
| "lvis_v05_val": {"n_instances": 1037}, | |
| } | |
| LVIS_DATASET_DATA = { | |
| "densepose_lvis_v1_train1": {"n_instances": 3394}, | |
| "densepose_lvis_v1_train2": {"n_instances": 1800}, | |
| "densepose_lvis_v1_val": {"n_instances": 1037}, | |
| "densepose_lvis_v1_val_animals_100": {"n_instances": 89}, | |
| } | |
| def generic_coco_test(self, dataset_info): | |
| if dataset_info.name not in self.COCO_DATASET_DATA: | |
| return | |
| n_inst = self.COCO_DATASET_DATA[dataset_info.name]["n_instances"] | |
| self.generic_test(dataset_info, n_inst, load_coco_json) | |
| def generic_lvis_test(self, dataset_info): | |
| if dataset_info.name not in self.LVIS_DATASET_DATA: | |
| return | |
| n_inst = self.LVIS_DATASET_DATA[dataset_info.name]["n_instances"] | |
| self.generic_test(dataset_info, n_inst, load_lvis_json) | |
| def generic_test(self, dataset_info, n_inst, loader_fun): | |
| datasets_root = DENSEPOSE_ANNOTATIONS_DIR | |
| annotations_fpath = maybe_prepend_base_path(datasets_root, dataset_info.annotations_fpath) | |
| images_root = maybe_prepend_base_path(datasets_root, dataset_info.images_root) | |
| image_annotation_dicts = loader_fun( | |
| annotations_json_file=annotations_fpath, | |
| image_root=images_root, | |
| dataset_name=dataset_info.name, | |
| ) | |
| num_valid = sum( | |
| 1 | |
| for image_annotation_dict in image_annotation_dicts | |
| for ann in image_annotation_dict["annotations"] | |
| if DensePoseDataRelative.validate_annotation(ann)[0] | |
| ) | |
| self.assertEqual(num_valid, n_inst) | |
| def coco_test_fun(dataset_info): | |
| return lambda self: self.generic_coco_test(dataset_info) | |
| for dataset_info in COCO_DATASETS: | |
| setattr( | |
| TestDatasetLoadedAnnotations, | |
| f"test_coco_builtin_loaded_annotations_{dataset_info.name}", | |
| coco_test_fun(dataset_info), | |
| ) | |
| def lvis_test_fun(dataset_info): | |
| return lambda self: self.generic_lvis_test(dataset_info) | |
| for dataset_info in LVIS_DATASETS: | |
| setattr( | |
| TestDatasetLoadedAnnotations, | |
| f"test_lvis_builtin_loaded_annotations_{dataset_info.name}", | |
| lvis_test_fun(dataset_info), | |
| ) | |