Увеличение размера набора данных с помощью imgaug - PullRequest
0 голосов
/ 09 января 2020

Я объединяю два разных набора данных, содержащих изображения, в один набор данных. Один из наборов данных содержит 600 изображений в тренировочном наборе. Другой набор данных содержит только 90-100 изображений. Я хочу увеличить размер последнего набора данных с помощью библиотеки imgaug . Изображения хранятся в папках под названием своего класса. Таким образом, путь к изображению «пирога» в обучающем наборе будет ..//images//Cake//cake_0001. Я пытаюсь использовать этот код для увеличения изображений в этом наборе данных:

path = 'C:\\Users\\User\\Documents\\Dataset\\freiburg_groceries_dataset\\images'

ia.seed(6)

seq = iaa.Sequential([
    iaa.Fliplr(0.5),
    iaa.Crop(percent=(0, 0.1)),
    iaa.Affine(rotate=(-25,25))
], random_order=True)

for folder in os.listdir(path):
    try:
        for i in os.listdir(folder):
            img = imageio.imread(i)
            img_aug = seq(images=img)
            iaa.imshow(img_aug)
            print(img_aug)
    except:
        pass

Сейчас нет вывода, даже если я поставлю print(img) или imshow(img) или что-то еще. Как я могу убедиться, что я получил больше изображений для этого набора данных? Кроме того, что является лучшим местом для увеличения изображений? Где хранятся дополненные изображения и как узнать, сколько новых изображений было сгенерировано?

Ответы [ 2 ]

1 голос
/ 09 января 2020

Вопрос был неясен. Итак, для вопроса 2: error in saving file and not able to visualize using imshow().

Первый: Во втором блоке кода l oop

img = imageio.imread(i)
img_aug = seq(images=img)
iaa.imshow(img_aug)
print(img_aug)

1-я ошибка: i не путь к файлу. Чтобы решить эту проблему, замените imageio.imread(i) на imageio.imread(path+'/'+folder+'/'+i).

2-я ошибка: iaa doesn't have the property imshow(). Чтобы это исправить, замените iaa.imshow(img_aug) на iaa.imgaug.imshow(img_aug). Это исправляет ошибку визуализации и завершения выполнения l oop.

Второе: если у вас возникли проблемы с сохранением изображений, используйте PIL. то есть

from PIL import Image
im = Image.fromarray(img_aug)
im.save('img_aug.png')`
1 голос
/ 09 января 2020

Это потому, что folder - это не путь к каталогу, который вы ищете. Вы должны изменить for i in os.listdir(folder): на for i in os.listdir(path+'\\'+folder):. Затем он ищет в каталоге path\folder файлы.

...