< Image Data Augmentation >
딥러닝 모델의 성능을 향상시키기 위해서는 위해서는 굉장히 많은 이미지 데이터가 필요하다. 하지만 저작권의 문제 등 이미지 데이터를 수집하는데 현실적인 어려움이 존재한다. 이러한 문제를 해결하기 위해 적은 이미지로 모델의 성능을 향상시키기 위해서 이미지를 인위적으로 변형시켜 데이터를 더 많이 만들어내는 것을 Image Data Augmentation라고 한다.
Image Data Augmentation는 모델이 더 다양한 패턴과 형태를 인식하고 학습할 수 있도록 도와준다.
Image Data Augmentation은 이미지 회전, 자르기, 뒤집기, 색조 변경 등의 기술을 사용하여 이미지를 변형시킬 수 있다. 이러한 이미지 증강 기술을 적용하는 예시 코드는 다음과 같다.

from tensorflow.keras.preprocessing.image import ImageDataGenerator
aug = ImageDataGenerator(rotation_range=30, # 이미지 회전
width_shift_range=0.1, # 이미지 좌우 이동
height_shift_range=0.1, # 이미지 상하 이동
zoom_range=0.2, # 확대/축소 범위
shear_range=0.2, # 비스듬히 늘림
horizontal_flip=True, # 가로 전환
vertical_flip=True, # 세로 전환
fill_mode='nearest') # 이미지 회전, 이동, 축소할 때 발생하는 공간을 채우는 방식
imageGen = aug.flow(image,
batch_size=1,
save_to_dir='output',
save_prefix='image',
save_format='jpg' )
total = 0
for image in imageGen:
# 루프가 돌면서 이미지가 한장씩 생성된다.
total += 1
# 20장 채우면 멈추자
if total == 20:
break
import os
plt.figure(figsize=(20,40))
for i, each in enumerate(os.listdir('output')):
filepath = './output/' + each
img = plt.imread(filepath)
plt.subplot(5, 4, i+1)
plt.imshow(img)
# os.listdir는 주어진 경로에 있는 파일과 디렉토리 리스트 형태로 반환한다.
위와 같은 과정을 거치면 스무장의 새로운 데이터가 생성된다.

'KT AIVLE SCHOOL > 교육 받은 것들' 카테고리의 다른 글
| 시각지능 딥러닝 (2) - Image Data Augmentation(2) - (0) | 2023.03.18 |
|---|---|
| 시각지능 딥러닝 (1) - CNN - (0) | 2023.03.15 |