我正在从事一个需要数据扩充的项目。我想水平翻转图像并将其添加到训练数据数组中。问题是有超过10,000张图像。
这是用于手动翻转长度为'size'的train_images数组中的每个图像(一个2d numpy数组)的代码。
for img in range(0, size):
flip = np.flip(train_images[img], axis=1)
np.append(train_images, flip)
np.append(train_labels, train_labels[img])
这花费了很长时间。是否有任何库函数或更快的方法来计算新图像并将其添加到数组中而无需多线程?
预先感谢您的评论。
答案 0 :(得分:1)
我以系统的方式使用imgaug库进行数据扩充。如果您需要对同一张图片进行多次扩充,它非常有用并且设计精良。我确实有一些学习曲线,但是非常值得。
答案 1 :(得分:0)
在从事其他一些机器学习项目之后,我发现在Keras下这个非常有用的工具称为ImageDataGenerator()。生成器可以应用各种级别的增强。
# instantiate data generator for horizontal flips
datagen = ImageDataGenerator(horizontal_flip=True)
这将随机将翻转应用于生成的图像。请注意,由于我们使用的是生成器,因此我们不再调用.fit()来训练模型,而是调用.fit_generator()。