인공지능/Deep Learning

[Deep Learning] 이미지 파일 학습 데이터로 만들기(+이미지 증강) ImageDataGenerator

건휘맨 2024. 4. 18. 23:17

fit 함수에 들어가는 데이터는 넘파이 어레이

이미지 파일을 어레이로 변환시켜주는 라이브러리  => ImageDataGenerator

 

rotation_range=40 : 이미지를 무작위로 회전시키는 각도 범위

width_shift_range=0.2 : 이미지를 수평으로 무작위로 이동시키는 비율

height_shift_range=0.2 : 이미지를 수직으로 무작위로 이동시키는 비율

shear_range=0.2 : shear 적용하는 범위입니다. shear =>  이미지를 변형시켜 기울이는 효과

zoom_range=0.2 : 이미지를 확대 또는 축소하는 범위

horizontal_flip=True : 이미지를 수평으로 무작위로 뒤집는지 여부를 결정

fill_mode='nearest' : 이미지를 변형할 때 채워지는 영역의 채우는 방법을 결정

                                    nearest'는 가장 가까운 픽셀 값으로 채워짐

from keras.preprocessing.image import ImageDataGenerator

# 이 코드가 파일을 넘파이로 바꿔서 메모리로 만드는 코드 => 피처 스케일링
>>> ImageDataGenerator(rescale= 1/255)

# 이미지 증강까지 해서 메모리에 데이터 생성하는 코드
>>> train_datagen = ImageDataGenerator(rescale= 1/255,
                       rotation_range=40,
                       width_shift_range=0.2,
                       height_shift_range=0.2,
                       shear_range=0.2,
                       zoom_range=0.2,
                       horizontal_flip=True,
                       fill_mode='nearest')

                       
# target_size 는 모델의 input_shape 행과 열의 값과 일치해야 한다.
>>> train_generator = train_datagen.flow_from_directory(train_dir,
                                                      target_size=(150, 150),
                                                      class_mode='binary')
                                                      
# X_train, y_train => train_generator 는 X_train, y_train 정보를 다 가지고 있다.