| | |
| | import os.path as osp |
| | import tempfile |
| |
|
| | import mmcv |
| | import pytest |
| |
|
| | from mmdet.datasets import CocoDataset |
| |
|
| |
|
| | def _create_ids_error_coco_json(json_name): |
| | image = { |
| | 'id': 0, |
| | 'width': 640, |
| | 'height': 640, |
| | 'file_name': 'fake_name.jpg', |
| | } |
| |
|
| | annotation_1 = { |
| | 'id': 1, |
| | 'image_id': 0, |
| | 'category_id': 0, |
| | 'area': 400, |
| | 'bbox': [50, 60, 20, 20], |
| | 'iscrowd': 0, |
| | } |
| |
|
| | annotation_2 = { |
| | 'id': 1, |
| | 'image_id': 0, |
| | 'category_id': 0, |
| | 'area': 900, |
| | 'bbox': [100, 120, 30, 30], |
| | 'iscrowd': 0, |
| | } |
| |
|
| | categories = [{ |
| | 'id': 0, |
| | 'name': 'car', |
| | 'supercategory': 'car', |
| | }] |
| |
|
| | fake_json = { |
| | 'images': [image], |
| | 'annotations': [annotation_1, annotation_2], |
| | 'categories': categories |
| | } |
| | mmcv.dump(fake_json, json_name) |
| |
|
| |
|
| | def test_coco_annotation_ids_unique(): |
| | tmp_dir = tempfile.TemporaryDirectory() |
| | fake_json_file = osp.join(tmp_dir.name, 'fake_data.json') |
| | _create_ids_error_coco_json(fake_json_file) |
| |
|
| | |
| | with pytest.raises(AssertionError): |
| | CocoDataset(ann_file=fake_json_file, classes=('car', ), pipeline=[]) |
| |
|