본문 바로가기
Visual Intelligence/Image Deep Learning

[시각 지능] Image Data Augmentation

by goatlab 2022. 8. 20.
728x90
반응형
SMALL

Image Data Augmentation

 

원본 이미지에 적절한 변형을 가해서 새로운 데이터를 만들어 내는 방식으로, 다양한 데 이터를 통해 딥러닝 성능향상 기대할 수 있다.

 

TensorFlow는 이미지 데이터 보강을 위한 ImageDataGenerator class를 제공한다. ImageDataGenerator에서는 입력 파라미터를 통해서 rescale, rotation_range, width_shift_range, height_shift_range, shear_range, horizontal_flip, vertical_filp 등의 다양한 변화를 줄 수 있다.

 

ImageDataGenerator를 사용할 경우 flow(), flow_from_directory() 등의 함수를 통해 이미 지 데이터를 보강을 할 수 있다.

 

import zipfile
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.keras.preprocessing.image import ImageDataGenerator

gen = ImageDataGenerator(rescale = 1./255,
                         rotation_range = 10,
                         shear_range = 0.2,
                         horizontal_flip = True)

with zipfile.ZipFile('./test_img_dir.zip') as target_file:
  target_file.extractall('test_img_dir/')

data_gen = gen.flow_from_directory(directory = '/content/test_img_dir/',
                                   batch_size = 3,
                                   shuffle = True,
                                   target_size = (100, 100),
                                   class_mode = 'categorical')

print(data_gen.class_indices)
print(data_gen.num_classes)
print(data_gen.class_mode)
Found 6 images belonging to 2 classes.
{'cat': 0, 'dog': 1}
2
categorical
img, label = data_gen.next()

for i in range(len(label)):
  print('label => ', label[i])

plt.figure(figsize = (8, 8))

for i in range(len(img)):
  plt.subplot(1, len(img), i + 1)
  plt.xticks([])
  plt.yticks([])
  plt.title(str(label[i]))
  plt.imshow(img[i])

plt.show()

728x90
반응형
LIST