Data Augmentation - Image Augmentation 방법

미남로그·2021년 10월 6일
0

image augmentation 기법에 구체적으로 어떤 것이 있는지 살펴보겠습니다. 저는 텐서플로으 튜토리얼에 소개된 image augmentation 예제들을 가져왔습니다.

Flipping(이미지 뒤집기)

Flip은 이미지 대칭 기능입니다. 거울로 좌우 반전이 되듯이 이미지를 좌우 또는 상하로 반전시키는 방법입니다.

classification 문제에서는 문제가 없을 수 있지만, detection, segmentation 문제 등 정확한 정답 영역이 존재할 경우에는 label도 좌우 반전을 해주어야 합니다.

만약에 아래와 같이 손글씨 데이터가 있다면 마찬가지로 조심해야 합니다. 상하, 좌우 반전될 경우 다른 글자가 될 가능성이 높기 때문입니다.

Gray scale(회색조로 만들기)

Gray scale은 3가지 채널(channel)을 가진 RGB 이미지를 하나의 채널로 변환하는 기법입니다.

아래 사진은 흑백 대신 다른 색상으로 이미지를 표현하였습니다. RGB 채널마다 weight를 주어 weighted sum하였습니다. 사용된 가중치의 합이 1이 됩니다.

Saturation(이미지 포화시키기)

Saturation은 RGB 이미지를 HSV(Hue(색조), Saturation(채도), Value(명도)의 3가지 성분으로 색을 표현) 이미지로 변경합니다. 그 후 S(saturation) 채널에 오프셋(offset)을 적용하여 조금 더 이미지를 선명하게 만들어 주는 방법입니다.

Brightness(이미지 밝기 변경하기)

이미지 밝기 조절도 가능합니다. RGB (255,255,255)는 흰색입니다. (0,0,0)은 검은색입니다. RGB 채널에 값을 더해줄 수록 밝아지고, 값을 뺄수록 어두워진다는 점을 알 수 있습니다.

Rotation(이미지 회전하기)

Rotation은 이미지 각도 변경입니다. 90도의 경우 직사각형 형태가 유지되기 때문에 이미지 크기를 조절하면 활용 가능합니다. 하지만 직사각형 형태가 아니라면 사용에 유의해야 합니다.

Center Crop(이미지 중앙 자르기)

Center Crop은 이미지의 중앙을 기준으로 확대하는 방법입니다. 너무 작게 crop하면 본래 가진 라벨과 달라지는 경우가 발생합니다. 위의 사진을 예시로 고양이의 털만 보이거나 빨간색만 보이게 crop한다면 label이 달라질 수 있습니다.

정리

위의 기본적인 방법들 외에도 다양한 augmentation 기법이 있습니다. 이 방법 등을 사용하면 아래 이미지처럼 라벨은 유지한 채 다양한 이미지를 학습 데이터로 사용할 수 있게 됩니다.

해당 github

위의 이미지에 사용된 다른 기법

  • Gauss. Noise + Contrast + Sharpen
  • Affine
  • Crop + Pad
  • Fliplr + Perspective
profile
미남이 귀엽죠

0개의 댓글