Keras - Data Augmentation 이미지로 확인해보기Deep Learning & Machine Learning/Keras2021. 6. 29. 22:36
Table of Contents
반응형
Keras에서 사용하는 Data Augmentation을 이미지로 출력하여 확인해봅니다.
2021. 06. 29 최초작성
rotation_range=60
0~ 60도 사이의 임의의 각도로 이미지를 회전시킵니다.
fill_mode를 nearest로 선택했기 때문에 가장자리에 있는 픽셀로 채우게 됩니다.
width_shift_range=0.4
이미지 너비의 40% 이내로 이미지를 좌우로 이동시킵니다.
height_shift_range=0.4
이미지 높이의 40% 이내로 이미지를 위아래로 이동시킵니다.
shear_range=60
반시계방향으로 60도 범위내로 이미지를 찌끄러트립니다.
zoom_range=0.4
1-0.4배에서 1+0.4배 사이로 이미지 크기를 축소/확대합니다.
horizontal_flip=True
무작위로 이미지를 수평방향으로 뒤집습니다.
vertical_flip=True
무작위로 세로 방향으로 이미지를 뒤집습니다.
brightness_range=[0.7,1.3]
이미지 밝기를 70%에서 130%이내에서 무작위로 조정합니다.
테스트에 사용한 코드입니다.
주석에 있는 변환을 하나씩만 풀어서 어떻게 동작하는지 확인해볼 수 있습니다.
두 개 이상의 변환의 주석을 풀어주면 동시에 작용하게 됩니다.
실제 학습에 사용시에는 이 중에 필요한 것만 풀어주거나 모두 주석을 풀어주면 됩니다.
사용하는 데이터셋에 따라서 꼭 필요한 변환만 해야 할 수도 있습니다.
from tensorflow.keras.preprocessing.image import ImageDataGenerator import numpy as np import cv2 train_datagen = ImageDataGenerator( rotation_range=60, # width_shift_range=0.4, # height_shift_range=0.4, # shear_range=60, # zoom_range=0.4, # horizontal_flip=True, # vertical_flip=True, # brightness_range=[0.7,1.3], fill_mode='nearest' ) train_generator1 = train_datagen.flow_from_directory( './dataset', target_size=(244, 244), batch_size=1, classes = ['cat'], class_mode='categorical', shuffle=True) def concat_vh(list_2d): return cv2.vconcat([cv2.hconcat(list_h) for list_h in list_2d]) image_list1 = [] image_list2 = [] for i in range(9): img_flow = next(train_generator1)[0] img_flow = img_flow.astype('uint8') img_flow = np.squeeze(img_flow) img_flow = cv2.cvtColor(img_flow, cv2.COLOR_BGR2RGB) image_list1.append(img_flow) if (i+1) % 3 == 0 and i != 0: image_list2.append(image_list1) image_list1 = [] img = concat_vh(image_list2) cv2.imshow('data augmentation', img) cv2.waitKey(0) |
반응형
'Deep Learning & Machine Learning > Keras' 카테고리의 다른 글
tf.keras.applications.EfficientNet 모델 사용시 주의할 점 (0) | 2023.10.10 |
---|---|
Keras와 OpenCV를 사용하여 손글씨 숫자 인식하기 (0) | 2023.10.09 |
TensorFlow 예제 - Keras + OpenCV를 사용하여 실제 손글씨 숫자 인식 (0) | 2023.10.09 |
Keras 모델을 TensorFlow Lite로 변환하기 (h5 -> pb -> tflite) (0) | 2022.10.23 |
Keras Tuner를 사용하여 하이퍼파라미터 찾는 예제 (0) | 2022.02.20 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!