| | |
| |
|
| | from mmcv.transforms import LoadImageFromFile |
| |
|
| | from mmdet.datasets.transforms import LoadAnnotations, LoadPanopticAnnotations |
| | from mmdet.registry import TRANSFORMS |
| |
|
| |
|
| | def get_loading_pipeline(pipeline): |
| | """Only keep loading image and annotations related configuration. |
| | |
| | Args: |
| | pipeline (list[dict]): Data pipeline configs. |
| | |
| | Returns: |
| | list[dict]: The new pipeline list with only keep |
| | loading image and annotations related configuration. |
| | |
| | Examples: |
| | >>> pipelines = [ |
| | ... dict(type='LoadImageFromFile'), |
| | ... dict(type='LoadAnnotations', with_bbox=True), |
| | ... dict(type='Resize', img_scale=(1333, 800), keep_ratio=True), |
| | ... dict(type='RandomFlip', flip_ratio=0.5), |
| | ... dict(type='Normalize', **img_norm_cfg), |
| | ... dict(type='Pad', size_divisor=32), |
| | ... dict(type='DefaultFormatBundle'), |
| | ... dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']) |
| | ... ] |
| | >>> expected_pipelines = [ |
| | ... dict(type='LoadImageFromFile'), |
| | ... dict(type='LoadAnnotations', with_bbox=True) |
| | ... ] |
| | >>> assert expected_pipelines ==\ |
| | ... get_loading_pipeline(pipelines) |
| | """ |
| | loading_pipeline_cfg = [] |
| | for cfg in pipeline: |
| | obj_cls = TRANSFORMS.get(cfg['type']) |
| | |
| | if obj_cls is not None and obj_cls in (LoadImageFromFile, |
| | LoadAnnotations, |
| | LoadPanopticAnnotations): |
| | loading_pipeline_cfg.append(cfg) |
| | assert len(loading_pipeline_cfg) == 2, \ |
| | 'The data pipeline in your config file must include ' \ |
| | 'loading image and annotations related pipeline.' |
| | return loading_pipeline_cfg |
| |
|