1. 自定义一个pipeline
新建一个mmdet/datasets/pipelines/middleway.py
pipeline的运作逻辑从call(self, results)的results入,从return的results。
# Copyright (c) OpenMMLab. All rights reserved.from ..builder import PIPELINEStry:from panopticapi.utils import rgb2idexcept ImportError:rgb2id = None@PIPELINES.register_module()class MiddleDebug:"""Load an image from file.Required keys are "img_prefix" and "img_info" (a dict that must contain thekey "filename"). Added or updated keys are "filename", "img", "img_shape","ori_shape" (same as `img_shape`), "pad_shape" (same as `img_shape`),"scale_factor" (1.0) and "img_norm_cfg" (means=0 and stds=1).Args:to_float32 (bool): Whether to convert the loaded image to a float32numpy array. If set to False, the loaded image is an uint8 array.Defaults to False.color_type (str): The flag argument for :func:`mmcv.imfrombytes`.Defaults to 'color'.file_client_args (dict): Arguments to instantiate a FileClient.See :class:`mmcv.fileio.FileClient` for details.Defaults to ``dict(backend='disk')``."""def __init__(self, mode=1):self.mode = 1def __call__(self, results):"""Call functions to load image and get image meta information.Args:results (dict): Result dict from :obj:`mmdet.CustomDataset`.Returns:dict: The dict contains loaded image and meta information."""print(results)return results
2. 使用自定义的pipeline
pipeline=[dict(type='LoadImageFromFile'),dict(type='MiddleDebug'),dict(type='LoadAnnotations', with_bbox=True, with_mask=True),dict(type='MiddleDebug'),dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),dict(type='RandomFlip', flip_ratio=0.5),dict(type='MiddleDebug'),dict(type='Normalize',mean=[123.675, 116.28, 103.53],std=[58.395, 57.12, 57.375],to_rgb=True),dict(type='Pad', size_divisor=32),dict(type='DefaultFormatBundle'),dict(type='Collect',keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks'])]),
