我想使用imgaug模块离线扩充一组数据,以供以后在卷积神经网络中使用。为了轻松应用多个转换,imgaug为Sequential对象提供了要应用的转换列表:
seq = Sequential([
iaa.Affine(rotate=(-25, 25)),
iaa.AdditiveGaussianNoise(scale=(10, 60)),
... ])
images_aug = seq(images=images_to_aug) #images_aug is a list of the augmented images as arrays
每个函数中的参数都是在我指定的范围内随机生成的。也可以通过随机化函数的应用来创建更复杂的序列:
seq = Sequential ([
Sometimes(
0.5,
GaussianBlur(sigma=(0, 0.5)) )] #blur is applied to 50% of the images
还有SomeOf(f1, f2..)
将会应用作为参数传递的一个(或多个)函数,以及其他几个将使用哪些扩充器的函数。所有随机部分都是内部制作的。但是,作为以后处理图像的一部分,我需要为每个图像检索并保存使用了什么函数和使用了什么参数。由于对seq
的调用仅返回图像,因此我无法访问这些值。我发现与此问题最相关的讨论是this one。第一个答案可能是参数的解决方案,但似乎不是SomeOf
,Sometimes
等功能以及SomeOf
的建议方法的通用解决方案看起来不适合我的代码,尤其是因为我计划使用很多转换。
是否有更简单,通用的检索方式:
SomeOf
的函数中应用了哪种变换/如果在类似Sometimes
的函数中应用了变换?