youtube_vis_dataset.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # Copyright (c) OpenMMLab. All rights reserved.
  2. from mmdet.registry import DATASETS
  3. from .base_video_dataset import BaseVideoDataset
  4. @DATASETS.register_module()
  5. class YouTubeVISDataset(BaseVideoDataset):
  6. """YouTube VIS dataset for video instance segmentation.
  7. Args:
  8. dataset_version (str): Select dataset year version.
  9. """
  10. def __init__(self, dataset_version: str, *args, **kwargs):
  11. self.set_dataset_classes(dataset_version)
  12. super().__init__(*args, **kwargs)
  13. @classmethod
  14. def set_dataset_classes(cls, dataset_version: str) -> None:
  15. """Pass the category of the corresponding year to metainfo.
  16. Args:
  17. dataset_version (str): Select dataset year version.
  18. """
  19. classes_2019_version = ('person', 'giant_panda', 'lizard', 'parrot',
  20. 'skateboard', 'sedan', 'ape', 'dog', 'snake',
  21. 'monkey', 'hand', 'rabbit', 'duck', 'cat',
  22. 'cow', 'fish', 'train', 'horse', 'turtle',
  23. 'bear', 'motorbike', 'giraffe', 'leopard',
  24. 'fox', 'deer', 'owl', 'surfboard', 'airplane',
  25. 'truck', 'zebra', 'tiger', 'elephant',
  26. 'snowboard', 'boat', 'shark', 'mouse', 'frog',
  27. 'eagle', 'earless_seal', 'tennis_racket')
  28. classes_2021_version = ('airplane', 'bear', 'bird', 'boat', 'car',
  29. 'cat', 'cow', 'deer', 'dog', 'duck',
  30. 'earless_seal', 'elephant', 'fish',
  31. 'flying_disc', 'fox', 'frog', 'giant_panda',
  32. 'giraffe', 'horse', 'leopard', 'lizard',
  33. 'monkey', 'motorbike', 'mouse', 'parrot',
  34. 'person', 'rabbit', 'shark', 'skateboard',
  35. 'snake', 'snowboard', 'squirrel', 'surfboard',
  36. 'tennis_racket', 'tiger', 'train', 'truck',
  37. 'turtle', 'whale', 'zebra')
  38. if dataset_version == '2019':
  39. cls.METAINFO = dict(classes=classes_2019_version)
  40. elif dataset_version == '2021':
  41. cls.METAINFO = dict(classes=classes_2021_version)
  42. else:
  43. raise NotImplementedError('Not supported YouTubeVIS dataset'
  44. f'version: {dataset_version}')