Image Augmentation 개념 및 활용 방법

서준교·2023년 1월 13일
0
post-thumbnail

Image Augmentation이란?


일반적으로 딥러닝 모델을 학습시킬 때에는 굉장히 많은 양의 이미지가 필요합니다. 따라서 개인이 학습을 진행할 때 데이터셋 부족 문제에 직면하게 됩니다. 이때, image augmentation 기법을 통해 이미지를 증식시키면 해당 문제를 손쉽게 해결할 수 있습니다. 이미지 학습을 위해 준비한 데이터셋을 증식시키는 과정은 굉장히 다양합니다. tensorflow에서는 tf.image 모듈을 통해 image augmentation 과정에 활용할 수 있는 다양한 내장함수를 제공합니다. 수행하고자 하는 작업에 따라 활용 방법 또한 달라지며, parameter 조절을 통해 더 세밀한 전처리 작업이 가능합니다. image augmentation의 종류를 정리하면 다음과 같습니다.

Resizing

  • 이미지의 크기를 일정 비율로 확대하거나 축소함
    - bilinear, lanczos, bicubic, gaussian, nearest, mitchellcubic 등의 기법 존재

Image Adjustment

  • 이미지의 명도, 채도, 대비 등 색상 관련 요소를 변경함
    - brightness, contrast, gamma, hue, saturation 등

Cropping

  • 이미지의 특정 영역을 잘라냄
    - center 영역, bounding box 등의 기준을 통해 수행

Flipping, Rotating, Transposing

  • 기존 이미지를 뒤집음 (Flipping)
  • 기존 이미지를 특정한 각도만큼 회전시킴 (Rotating)
  • 이미지의 shape를 변경하기 위해 이미지 행렬의 format을 재구성함 (Transposing)
    - Channel first를 Channel last로 변경할 때 많이 사용됨
      

목적에 따른 전처리

이미지 학습을 통해 달성하고자 하는 목적은 크게 Image Classification과 Object Detection으로 나눌 수 있습니다. Image Classification은 해당 이미지가 어떤 라벨에 속하는지 분류하는 것이고, Object Detection은 이미지 내에서 특정 라벨에 해당하는 모든 객체를 bounding box를 통해 검출하는 것입니다.

Image Classification의 경우 최적화된 이미지 학습을 위한 Resize, Normalize 기법 등이 활용됩니다. 해당 기법은 대부분의 이미지 전처리 과정에서 공통적으로 수행됩니다. Object Detection의 경우 영상 이진화, 그레이스케일, 특징점 검출(Canny Edge, Harris Corner 등)과 같은 전처리 기법이 많이 사용됩니다. 또한, OpenCV 라이브러리에서 지원하는 기능과 결합하여 이미지 전처리 파이프라인을 정규화할 수 있습니다.

Reference

profile
매일 성장하는 개발자가 되고 싶습니다. 😊

0개의 댓글