| | |
| | import json |
| | import os.path as osp |
| | import tempfile |
| |
|
| | import numpy as np |
| |
|
| | from mmocr.datasets.text_det_dataset import TextDetDataset |
| |
|
| |
|
| | def _create_dummy_ann_file(ann_file): |
| | ann_info1 = { |
| | 'file_name': |
| | 'sample1.jpg', |
| | 'height': |
| | 640, |
| | 'width': |
| | 640, |
| | 'annotations': [{ |
| | 'iscrowd': 0, |
| | 'category_id': 1, |
| | 'bbox': [50, 70, 80, 100], |
| | 'segmentation': [[50, 70, 80, 70, 80, 100, 50, 100]] |
| | }, { |
| | 'iscrowd': |
| | 1, |
| | 'category_id': |
| | 1, |
| | 'bbox': [120, 140, 200, 200], |
| | 'segmentation': [[120, 140, 200, 140, 200, 200, 120, 200]] |
| | }] |
| | } |
| |
|
| | with open(ann_file, 'w') as fw: |
| | fw.write(json.dumps(ann_info1) + '\n') |
| |
|
| |
|
| | def _create_dummy_loader(): |
| | loader = dict( |
| | type='HardDiskLoader', |
| | repeat=1, |
| | parser=dict( |
| | type='LineJsonParser', |
| | keys=['file_name', 'height', 'width', 'annotations'])) |
| | return loader |
| |
|
| |
|
| | def test_detect_dataset(): |
| | tmp_dir = tempfile.TemporaryDirectory() |
| | |
| | ann_file = osp.join(tmp_dir.name, 'fake_data.txt') |
| | _create_dummy_ann_file(ann_file) |
| |
|
| | |
| | loader = _create_dummy_loader() |
| | dataset = TextDetDataset(ann_file, loader, pipeline=[]) |
| |
|
| | |
| | img_ann_info = dataset.data_infos[0] |
| | ann = dataset._parse_anno_info(img_ann_info['annotations']) |
| | print(ann['bboxes']) |
| | assert np.allclose(ann['bboxes'], [[50., 70., 80., 100.]]) |
| | assert np.allclose(ann['labels'], [1]) |
| | assert np.allclose(ann['bboxes_ignore'], [[120, 140, 200, 200]]) |
| | assert np.allclose(ann['masks'], [[[50, 70, 80, 70, 80, 100, 50, 100]]]) |
| | assert np.allclose(ann['masks_ignore'], |
| | [[[120, 140, 200, 140, 200, 200, 120, 200]]]) |
| |
|
| | tmp_dir.cleanup() |
| |
|
| | |
| | pipeline_results = dataset.prepare_train_img(0) |
| | assert np.allclose(pipeline_results['bbox_fields'], []) |
| | assert np.allclose(pipeline_results['mask_fields'], []) |
| | assert np.allclose(pipeline_results['seg_fields'], []) |
| | expect_img_info = {'filename': 'sample1.jpg', 'height': 640, 'width': 640} |
| | assert pipeline_results['img_info'] == expect_img_info |
| |
|
| | |
| | metrics = 'hmean-iou' |
| | results = [{'boundary_result': [[50, 70, 80, 70, 80, 100, 50, 100, 1]]}] |
| | eval_res = dataset.evaluate(results, metrics) |
| |
|
| | assert eval_res['hmean-iou:hmean'] == 1 |
| |
|