mmdet文件目录下, pipelines/init 里面声明了各种增强方法:
1.为什么要做数据增强?
没有很多数据,利用数据增强获得更多数据
2.在学习管道(pipeline)的哪里进行数据增强呢?
一种是事先执行所有转换,实质上会增强你的数据集的大小。另一种选项是在送入机器学习之前,在小批量(mini-batch)上执行这些转换
3.有哪些数据增强的方法?
对于单样本:
1)几何变换类 翻转,旋转,裁剪,变形,缩放。 翻转和旋转不改变图像的大小,而裁剪会改变图像的大小。 几何变换类操作,没有改变图像本身的内容,它可能是选择了图像的一部分或者对像素进行了重分布
2)颜色变换类 噪声、模糊、颜色变换、擦除、填充
对于多样本: 多样本数据增强方法利用多个样本来产生新的样本
ClassBalancedDataset, ConcatDataset, RepeatDataset方法
3.如果需要写新的数据增强方法,可以自己新建 augment.py ,写自己的数据增强类,放进init的声明中去,接下来就可以再dict(type= augment) 了
train_pipeline = [dict(type='LoadImageFromFile')]
'Compose', 'to_tensor', 'ToTensor', 'ImageToTensor', 'ToDataContainer',
'Transpose', 'Collect', 'DefaultFormatBundle', 'LoadAnnotations',
'LoadImageFromFile', 'LoadImageFromWebcam',
'LoadMultiChannelImageFromFiles', 'LoadProposals', 'MultiScaleFlipAug',
'Resize', 'RandomFlip', 'Pad', 'RandomCrop', 'Normalize', 'SegRescale',
'MinIoURandomCrop', 'Expand', 'PhotoMetricDistortion', 'Albu',
'InstaBoost', 'RandomCenterCropPad', 'AutoAugment', 'CutOut', 'Shear',
'Rotate', 'ColorTransform', 'EqualizeTransform', 'BrightnessTransform',
'ContrastTransform', 'Translate', 'RandomShift','AutoAugmentation',
#'MixupVOC','GridMask', 'AutoAugmentation','RandomHVFlip',
'MixupCOCO','MosaicCOCO'