딥러닝
[딥러닝] 이미지 증강(Augmentation): 이미지 , 넘파이 어레이
eyoo
2022. 6. 15. 18:03
ImageDataGenerator함수를 사용하여 이미지 파일을 학습 시킬수있도록 변환할때
현재 가지고 있는 이미지 데이터를 증강처리 하여,
각도, 위치, 크기 등을 조정하여 학습이 더 잘될수 있도록 만든다.
from keras_preprocessing.image.image_data_generator import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale= 1/255.0,
rotation_range=30,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
# rotation_range 로 이미지를 몇도까지 회전할지 정한다.
# width_shift_range와 height_shift_range로 상하 좌우로 이미지를 움직인다.
# shear_range로 이미지를 밀리게 할수있다.
# zoom_range로 확대시킨다.
# horizontal_flip 수평방향으로 반전시킨다.
그 후 flow_from_directory에 학습할 사진이 들어있는 디렉토리를 입력하고 학습데이터를 세팅한다.
train_generator = train_datagen.flow_from_directory('/tmp/horse-or-human',target_size= (300,300),class_mode='binary')
넘파이 어레이 형식의 이미지 데이터를 증강할때는 그 전에 피처스케일링을 진행하므로
ImageDataGenerator 의 rescale파라미터를 사용하지 않는다.
train_datagen = ImageDataGenerator(horizontal_flip=True,
zoom_range=0.2,
rotation_range=15,
width_shift_range=0.1,
height_shift_range=0.1)
이미지가 아닌 넘파이 어레이기에 flow함수를 사용한다.
train_generator = train_datagen.flow(X_train,y_train)
# (X_train, y_train) , (X_test, y_test) = cifar10.load_data() 코드를 사용한 뒤 가공한 상태