我正在做一些非常基本的图像增强来训练一个小天使,它非常慢。我想知道是否有人建议在python中更快地打开,翻转和关闭图像?它有大约10万张图像需要经过几个小时。
print 'Example of image in train.txt: ' + image_file[0]
print 'Example of annotation in train.txt: ' + annot_file[0]
train_file.close()
for i in range(len(image_file)):
temp_image = imread(image_file[i])
temp_annot = imread(annot_file[i])
temp_image_name = image_file[i][:-4] + '_augmented_lrflip.png'
temp_annot_name = annot_file[i][:-4] + '_augmented_lrflip.png'
imsave(temp_image_name,np.fliplr(temp_image))
imsave(temp_annot_name,np.fliplr(temp_annot))
image_file.append(temp_image_name)
annot_file.append(temp_annot_name)
temp_image_name = image_file[i][:-4] + '_augmented_lr_ud_flip.png'
temp_annot_name = annot_file[i][:-4] + '_augmented_lr_ud_flip.png'
imsave(temp_image_name,np.fliplr(np.flipud(temp_image)))
imsave(temp_annot_name,np.fliplr(np.flipud(temp_annot)))
image_file.append(temp_image_name)
annot_file.append(temp_annot_name)
temp_image_name = image_file[i][:-4] + '_augmented_udflip.png'
temp_annot_name = annot_file[i][:-4] + '_augmented_udflip.png'
imsave(temp_image_name,np.flipud(temp_image))
imsave(temp_annot_name,np.flipud(temp_annot))
image_file.append(temp_image_name)
annot_file.append(temp_annot_name)
train_file_mod = open('train_augmented.txt', 'wb')
for i in range(len(image_file)):
train_file_mod.write(image_file[i] + ' ' + annot_file[i] + '\n')
train_file_mod.close()
答案 0 :(得分:1)
我建议使用Keras(这是在Theano或TensorFlow之上的深度学习抽象层)。它已经内置了ImageDataGenerator。您基本上可以使用它从数据集中生成不同的图像(旋转,展开,填充)。
答案 1 :(得分:0)
我会试试PIL或Pillow包。
PIL文档:http://www.pythonware.com/products/pil/
枕头文件:https://pillow.readthedocs.io/en/3.3.x/
如果你想将你的图像转换为numpy数组并以这种方式处理它们,那么这里有一些例子: http://code.activestate.com/recipes/577591-conversion-of-pil-image-and-numpy-array/