Deep Learning

JPG / PNG 같은 이미지 파일을, 학습 데이터로 만드는 방법

yugyeong 2022. 12. 30. 17:08

ImageDataGenerator 라이브러리

 

 

이미지 파일을 학습 데이터로 만들기 위해서는 텐서플로우의 ImageDataGenerator 라이브러리를 이용

  • fit 함수에 들어가는 데이터는 넘파이 array 가 들어가야한다.
  • 따라서, 이미지 파일(png) 을 넘파이 array 로 변환을 시켜주기 위해서 ImageDataGenerator 라이브러리를 이용한다.

 

 

이미지 파일을 학습 데이터로 만들기 위한 라이브러리를 각각 변수 train_datagen ,validation_datagen 에 저장을 하였다.

rescale 은 데이터를 피쳐스케일링 해주는 파라미터이다.

 

from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(rescale= 1/255.0)
validation_datagen = ImageDataGenerator(rescale= 1/255.0)

 

라이브러리를 변수로 만들었으면, 그 다음에는 이미지가 들어있는 디렉토리 정보와 이미지 사이즈 정보, 몇개로 분류할 지 정보를 알려준다.

 

넘파이의 target_size 와 모델의 input_shape 은 가로 세로가 같아야 하기 때문에, target_size 의 가로 세로 값을 튜플 형태로 작성해준다.

 

 

class_mode 는 

  • 2개로 분류할 땐, binary
  • 3개 이상일 땐 categorical 을 이용한다.
 
train_generator = train_datagen.flow_from_directory('/tmp/horse-or-human', target_size= (300, 300), class_mode= 'binary')
                                  
validation_generator = validation_datagen.flow_from_directory('/tmp/validation-horse-or-human',target_size= (300, 300), class_mode= 'binary')