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=[])