Albumentations (在python中)具有可以采用概率参数p,例如的图像转换。
transform = A.Compose([
A.RandomRotate90(),
A.Flip(),
A.Transpose(),
A.OneOf([
A.IAAAdditiveGaussianNoise(),
A.GaussNoise(),
], p=0.2),
A.OneOf([
A.MotionBlur(p=.2),
A.MedianBlur(blur_limit=3, p=0.1),
A.Blur(blur_limit=3, p=0.1),
], p=0.2),
A.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.2, rotate_limit=45, p=0.2),
A.OneOf([
A.OpticalDistortion(p=0.3),
A.GridDistortion(p=.1),
A.IAAPiecewiseAffine(p=0.3),
], p=0.2),
A.OneOf([
A.CLAHE(clip_limit=2),
A.IAASharpen(),
A.IAAEmboss(),
A.RandomBrightnessContrast(),
], p=0.3),
A.HueSaturationValue(p=0.3),
])Rstudio的Keras实现有image_data_generator,它有图像转换,但没有概率参数。
在Rstudio的Keras中,只有在某种概率范围内应用的图像转换,最简单的方法是什么?
一种方法是通过网状在python中使用Albumentations,但实际上是比看上去更难。
想法?
发布于 2022-04-25 14:31:14
实现dataset管道的推荐方法是将{tfdatasets集}与keras预处理层结合使用。
data_augmentation <- keras_model_sequential() %>%
layer_random_flip("horizontal") %>%
layer_random_rotation(0.1) %>%
layer_random_zoom(0.2)
ds <- image_dataset_from_directory(image_size = c(180, 180)) %>%
dataset_map(~ list(data_augmentation(.x), .y))在这里可以找到更多的例子:Layers.html#快速食谱-1
如果您进入自定义转换,您还可以在本地设置一个警卫,如下所示:
maybe_add_noise <- tf_function(function(x) {
if(tf$random$uniform() > .5) {
x <- x + tf$random$uniform(x$shape)
}
x
})
ds <- ds %>%
dataset_map(~ list(maybe_add_noise(.x), .y))https://stackoverflow.com/questions/71984248
复制相似问题