File size: 2,988 Bytes
9bf4bd7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# Copyright (c) OpenMMLab. All rights reserved.
from mmocr.structures import TextDetDataSample


class TextSpottingDataSample(TextDetDataSample):
    """A data structure interface of MMOCR. They are used as interfaces between
    different components.

    The attributes in ``TextSpottingDataSample`` are divided into two parts:

        - ``gt_instances``(InstanceData): Ground truth of instance annotations.
        - ``pred_instances``(InstanceData): Instances of model predictions.

    Examples:
         >>> import torch
         >>> import numpy as np
         >>> from mmengine.structures import InstanceData
         >>> from mmocr.data import TextSpottingDataSample
         >>> # gt_instances
         >>> data_sample = TextSpottingDataSample()
         >>> img_meta = dict(img_shape=(800, 1196, 3),
         ...                 pad_shape=(800, 1216, 3))
         >>> gt_instances = InstanceData(metainfo=img_meta)
         >>> gt_instances.bboxes = torch.rand((5, 4))
         >>> gt_instances.labels = torch.rand((5,))
         >>> data_sample.gt_instances = gt_instances
         >>> assert 'img_shape' in data_sample.gt_instances.metainfo_keys()
         >>> len(data_sample.gt_instances)
         5
         >>> print(data_sample)
         <TextSpottingDataSample(
             META INFORMATION
             DATA FIELDS
             gt_instances: <InstanceData(
                     META INFORMATION
                     pad_shape: (800, 1216, 3)
                     img_shape: (800, 1196, 3)
                     DATA FIELDS
                     labels: tensor([0.8533, 0.1550, 0.5433, 0.7294, 0.5098])
                     bboxes:
                     tensor([[9.7725e-01, 5.8417e-01, 1.7269e-01, 6.5694e-01],
                             [1.7894e-01, 5.1780e-01, 7.0590e-01, 4.8589e-01],
                             [7.0392e-01, 6.6770e-01, 1.7520e-01, 1.4267e-01],
                             [2.2411e-01, 5.1962e-01, 9.6953e-01, 6.6994e-01],
                             [4.1338e-01, 2.1165e-01, 2.7239e-04, 6.8477e-01]])
                 ) at 0x7f21fb1b9190>
         ) at 0x7f21fb1b9880>
         >>> # pred_instances
         >>> pred_instances = InstanceData(metainfo=img_meta)
         >>> pred_instances.bboxes = torch.rand((5, 4))
         >>> pred_instances.scores = torch.rand((5,))
         >>> data_sample = TextSpottingDataSample(
         ...                   pred_instances=pred_instances)
         >>> assert 'pred_instances' in data_sample
         >>> data_sample = TextSpottingDataSample()
         >>> gt_instances_data = dict(
         ...                        bboxes=torch.rand(2, 4),
         ...                        labels=torch.rand(2),
         ...                        masks=np.random.rand(2, 2, 2))
         >>> gt_instances = InstanceData(**gt_instances_data)
         >>> data_sample.gt_instances = gt_instances
         >>> assert 'gt_instances' in data_sample
         >>> assert 'masks' in data_sample.gt_instances
    """