DataScientist_Skill/DeepLearning

[Python] 이미지 증식 :: ImageDataGenerator(tf)

ds-nada 2023. 8. 15. 20:17

이미지 증식

import tensorflow as tf

tf.keras.preprocessing.image.ImageDataGenerator(
  rescale = None,
    featurewise_center = False,
  samplewise_center = False,
  featurewise_std_normalization = False,
  samplewise_std_normalization = False,
  rotation_range = 0,
  width_shift_range = 0.0,
  height_shift_range = 0.0,
  brightness_range = None,                 # Tuple or list of two floats
  shear_range = 0.0,
  zoom_range = 0.0,
  channel_shift_range = 0.0,
  fill_mode = 'nearest',
  cval = 0.0,
  horizontal_flip = False,
  vertical_flip = False,
)
  • Option
    • rescale : 주어진 이미지의 크기를 변경(크기 재조정값)
      • 보통 1/255를 하는 이유는 RGB(256)로 이루어진 이미지이기 때문
    • featurewise_center : 데이터셋에 대한 특성별 인풋의 평균 0 여부
    • samplewise_center : 각 샘플의 평균 0 여부
    • featurewise_std_normalization : 인풋을 각 특성 내에서 데이터셋의 표준편차로 나눔(표준화)
    • samplewise_std_normalization : 각 인풋을 표준편차로 나눔(표준화)
    • rotation_range : 이미지 회전 각도(범위)
    • width_shift_range & height_shift_range : 그림을 수평 or 수직으로 랜덤하게 평행 이동시키는 범위(원본 가로 or 세로 길이에 대한 비율 값)
      • float
        • $<1.0$ : 총 너비의 비율
        • $>= 1.0$ : 픽셀
      • int
        • [$-int \sim + int$]
    • brightness_range : 밝기 이동 값의 범위
    • shear_range : 좌표 하나를 고정시키고 다른 몇 개의 좌표를 이동시키는 변환을 함
    • zoom_range : 확대/축소 범위
    • channel_shift_range : 무작위 채널 이동 범위
    • fill_mode : 이미지를 축소 or 회전 or 이동할 때 생기는 빈공간 처리 방식
      • 'nearset' : 가장 가까운 픽셀을 찾아 늘림
      • 'constant' : 다음에 있는 cval값으로 채움
      • 'relfect' : 원본 이미지를 대칭해서 채움
      • 'wrap' : 원본이미지를 이어 붙여서 채움
    • cval : 배경색
    • horizontal_flip : 무작위로 가로로 뒤집음
    • vertical_flip : 무작위로 세로로 뒤집음