image data generator 예제

기계 학습 모델을 구축할 때 일반적으로 이미지 데이터를 사용합니다. 그러나 실제로 이미지 데이터를 준비하고 전처리하는 것은 어려울 수 있습니다. 이러한 문제를 해결하기 위해 Keras의 ImageDataGenerator 클래스를 사용하여 이미지를 자동으로 생성 및 변환할 수 있습니다.

이 예제에서는 ImageDataGenerator를 사용하여 이미지 데이터를 증가시키고 전처리하는 방법을 보여줄 것입니다. 예제 코드는 Python 언어로 작성되었으며 Keras 라이브러리를 사용합니다.

필요한 라이브러리 설치

해당 예제를 실행하기 위해 다음과 같은 라이브러리가 설치되어 있어야 합니다.

!pip install tensorflow
!pip install keras

예제 코드

다음은 ImageDataGenerator를 사용하여 이미지 데이터를 처리하는 예제 코드입니다.

import numpy as np
from keras.preprocessing.image import ImageDataGenerator

# 이미지 데이터 경로
image_path = "/path/to/image/directory"

# ImageDataGenerator 객체 생성
data_generator = ImageDataGenerator(
    rotation_range=15,  # 이미지 회전 각도 범위 설정
    zoom_range=0.2,  # 이미지 확대/축소 범위 설정
    width_shift_range=0.1,  # 이미지 가로 이동 범위 설정
    height_shift_range=0.1,  # 이미지 세로 이동 범위 설정
    shear_range=0.1,  # 이미지 전단 강도 범위 설정
    horizontal_flip=True,  # 이미지 수평 뒤집기 설정
    vertical_flip=False,  # 이미지 수직 뒤집기 설정
    fill_mode='nearest'  # 이미지 채우는 방식 설정
)

# 이미지 데이터 로드 및 전처리
batch_size = 32
image_generator = data_generator.flow_from_directory(
    image_path,
    target_size=(150, 150),  # 입력 이미지 크기 설정
    batch_size=batch_size,
    class_mode='binary'  # 분류 문제의 경우 binary, 다중 분류의 경우 categorical 설정
)

# 모델 학습을 위한 데이터 생성
steps_per_epoch = image_generator.n // batch_size
epochs = 10

# 모델 학습 코드 작성
# ...

# 모델 평가 코드 작성
# ...

이 예제에서는 다양한 이미지 변환 기법을 적용하여 데이터를 증가시킵니다. 또한 이미지 크기를 150x150으로 조정하고 분류 문제인 경우 class_mode를 ‘binary’로 설정합니다. 이 코드를 사용하여 이미지 데이터를 처리하고 기계 학습 모델을 학습시킬 수 있습니다.

이미지 분류 모델을 구축할 때 ImageDataGenerator는 매우 유용한 도구입니다. 데이터 증강을 통해 모델의 성능을 향상시키고 과적합을 방지할 수 있습니다.

#데이터증강 #ImagePreprocessing