File size: 3,362 Bytes
6c9ac8f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# Copyright (c) OpenMMLab. All rights reserved.
import unittest
from mmdet.datasets import Objects365V1Dataset, Objects365V2Dataset
class TestObjects365V1Dataset(unittest.TestCase):
def test_obj365v1_dataset(self):
# test Objects365V1Dataset
metainfo = dict(classes=('bus', 'car'), task_name='new_task')
dataset = Objects365V1Dataset(
data_prefix=dict(img='imgs'),
ann_file='tests/data/coco_sample.json',
metainfo=metainfo,
filter_cfg=dict(filter_empty_gt=True, min_size=32),
pipeline=[],
serialize_data=False,
lazy_init=False)
self.assertEqual(dataset.metainfo['classes'], ('bus', 'car'))
self.assertEqual(dataset.metainfo['task_name'], 'new_task')
self.assertListEqual(dataset.get_cat_ids(0), [0, 1])
self.assertEqual(dataset.cat_ids, [1, 2])
def test_obj365v1_with_unsorted_annotation(self):
# test Objects365V1Dataset with unsorted annotations
metainfo = dict(classes=('bus', 'car'), task_name='new_task')
dataset = Objects365V1Dataset(
data_prefix=dict(img='imgs'),
ann_file='tests/data/Objects365/unsorted_obj365_sample.json',
metainfo=metainfo,
filter_cfg=dict(filter_empty_gt=True, min_size=32),
pipeline=[],
serialize_data=False,
lazy_init=False)
self.assertEqual(dataset.metainfo['classes'], ('bus', 'car'))
self.assertEqual(dataset.metainfo['task_name'], 'new_task')
# sort the unsorted annotations
self.assertListEqual(dataset.get_cat_ids(0), [0, 1])
self.assertEqual(dataset.cat_ids, [1, 2])
def test_obj365v1_annotation_ids_unique(self):
# test annotation ids not unique error
metainfo = dict(classes=('car', ), task_name='new_task')
with self.assertRaisesRegex(AssertionError, 'are not unique!'):
Objects365V1Dataset(
data_prefix=dict(img='imgs'),
ann_file='tests/data/coco_wrong_format_sample.json',
metainfo=metainfo,
pipeline=[])
class TestObjects365V2Dataset(unittest.TestCase):
def test_obj365v2_dataset(self):
# test Objects365V2Dataset
metainfo = dict(classes=('bus', 'car'), task_name='new_task')
dataset = Objects365V2Dataset(
data_prefix=dict(img='imgs'),
ann_file='tests/data/coco_sample.json',
metainfo=metainfo,
filter_cfg=dict(filter_empty_gt=True, min_size=32),
pipeline=[],
serialize_data=False,
lazy_init=False)
self.assertEqual(dataset.metainfo['classes'], ('bus', 'car'))
self.assertEqual(dataset.metainfo['task_name'], 'new_task')
self.assertListEqual(dataset.get_cat_ids(0), [0, 1])
self.assertEqual(dataset.cat_ids, [1, 2])
def test_obj365v1_annotation_ids_unique(self):
# test annotation ids not unique error
metainfo = dict(classes=('car', ), task_name='new_task')
with self.assertRaisesRegex(AssertionError, 'are not unique!'):
Objects365V2Dataset(
data_prefix=dict(img='imgs'),
ann_file='tests/data/coco_wrong_format_sample.json',
metainfo=metainfo,
pipeline=[])
|