coco_caption.py 923 B

1234567891011121314151617181920212223242526272829303132
  1. # Copyright (c) OpenMMLab. All rights reserved.
  2. from pathlib import Path
  3. from typing import List
  4. import mmengine
  5. from mmengine.dataset import BaseDataset
  6. from mmengine.fileio import get_file_backend
  7. from mmdet.registry import DATASETS
  8. @DATASETS.register_module()
  9. class CocoCaptionDataset(BaseDataset):
  10. """COCO2014 Caption dataset."""
  11. def load_data_list(self) -> List[dict]:
  12. """Load data list."""
  13. img_prefix = self.data_prefix['img_path']
  14. annotations = mmengine.load(self.ann_file)
  15. file_backend = get_file_backend(img_prefix)
  16. data_list = []
  17. for ann in annotations:
  18. data_info = {
  19. 'img_id': Path(ann['image']).stem.split('_')[-1],
  20. 'img_path': file_backend.join_path(img_prefix, ann['image']),
  21. 'gt_caption': ann['caption'],
  22. }
  23. data_list.append(data_info)
  24. return data_list