自定义数据管道¶
在一个文件中编写新的变换,例如,在
my_pipeline.py
中。它接收一个字典作为输入,并返回一个字典。import random from mmcv.transforms import BaseTransform from mmdet.registry import TRANSFORMS @TRANSFORMS.register_module() class MyTransform(BaseTransform): """Add your transform Args: p (float): Probability of shifts. Default 0.5. """ def __init__(self, prob=0.5): self.prob = prob def transform(self, results): if random.random() > self.prob: results['dummy'] = True return results
在您的配置文件中导入并使用该管道。确保导入相对于您的训练脚本所在位置。
custom_imports = dict(imports=['path.to.my_pipeline'], allow_failed_imports=False) train_pipeline = [ dict(type='LoadImageFromFile'), dict(type='LoadAnnotations', with_bbox=True), dict(type='Resize', scale=(1333, 800), keep_ratio=True), dict(type='RandomFlip', prob=0.5), dict(type='MyTransform', prob=0.2), dict(type='PackDetInputs') ]
可视化您的变换管道的输出
为了可视化您的变换管道的输出,
tools/misc/browse_dataset.py
可以帮助用户直观地浏览检测数据集(图像和边界框注释),或将图像保存到指定的目录。更多详细信息可以参考 可视化文档