imagedatagenerator 사용법

ImageDataGenerator는 케라스(Keras)에서 제공하는 이미지 데이터 증강(Image Augmentation)을 위한 강력한 도구입니다. 이 도구를 사용하면 이미지 데이터를 증강하여 학습 데이터를 다양하게 만들 수 있습니다. 이번 포스트에서는 ImageDataGenerator의 기본 사용법과 몇 가지 유용한 기능을 알아보겠습니다.

설치

ImageDataGenerator를 사용하기 위해서는 케라스를 설치해야 합니다. 다음 명령어를 터미널에서 실행하여 케라스를 설치합니다.

pip install keras

사용법

ImageDataGenerator를 사용하기 위해서는 이미지 데이터가 담긴 폴더 구조가 필요합니다. 보통 이미지 데이터는 클래스별로 폴더를 구분하여 저장됩니다. 예를 들어, ‘cat’ 클래스와 ‘dog’ 클래스를 분류하는 경우 다음과 같은 폴더 구조가 됩니다.

dataset/
    cat/
        cat1.jpg
        cat2.jpg
        ...
    dog/
        dog1.jpg
        dog2.jpg
        ...

ImageDataGenerator를 다음과 같이 생성하여 사용할 수 있습니다.

from keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator(
    rotation_range=20,  # 이미지 회전 범위 설정
    width_shift_range=0.1,  # 가로로 이동할 범위 설정
    height_shift_range=0.1,  # 세로로 이동할 범위 설정
    shear_range=0.2,  # 전단 변환 범위 설정
    zoom_range=0.2,  # 확대/축소 범위 설정
    horizontal_flip=True,  # 수평으로 뒤집기 설정
    fill_mode='nearest'  # 이미지를 증강할 때, 새로운 픽셀을 어떻게 채울지 설정
)

위 예제에서는 다양한 증강 옵션을 설정하여 이미지 데이터를 증강할 수 있습니다. 이후에는 flow_from_directory 메소드를 사용하여 데이터를 생성할 수 있습니다.

train_generator = datagen.flow_from_directory(
    'dataset/train',  # 훈련 데이터 폴더 경로
    target_size=(224, 224),  # 이미지 크기 설정
    batch_size=32,  # 배치 크기 설정
    class_mode='binary'  # 분류 모드 설정 (이진 분류의 경우 'binary', 다중 분류의 경우 'categorical' 사용)
)

위 예제는 train 폴더 아래의 훈련 데이터를 읽어오고, 이미지 크기는 224x224로 조정하며 배치 크기는 32로 설정합니다. 마지막으로 분류 모드를 ‘binary’로 설정하여 이진 분류를 수행합니다.

마치며

이번 포스트에서는 ImageDataGenerator를 사용하여 이미지 데이터를 증강하는 방법을 알아보았습니다. ImageDataGenerator는 다양한 옵션을 제공하여 데이터셋을 다양하게 변형할 수 있기 때문에 모델의 성능 향상에 큰 도움이 될 수 있습니다. 증강된 데이터를 사용하여 모델을 훈련시켜보세요!

#Keras #ImageDataGenerator