Data Augmentation

김보성·2022년 3월 25일
0

Data Augmentation


Data Augmentation은 데이터셋을 여러 가지 방법으로 증강시키는(augment) 방법입니다. 우리는 Data Augmentation을 통해서 학습 데이터셋의 규모를 키울 수 있습니다.

Data Augmentation을 통해 데이터셋의 규모가 커지면 overfitting을 줄일 수 있습니다. 실제 입력값이 가지고 있는 데이터과 다른 경우들이 존재하는데, 이러한 문제를 Augmentation을 통해서 실제 입력값과 유사한 데이터 분포를 만들어 해결할 수 있습니다. Augmentation은 데이터셋을 증강시키고 모델이 테스트 환경에서 원활하게 동작할 수 있게 해줍니다.

Image Augmentation 기법


Flipping

Flipping은 상하 또는 좌우로 이미지를 반전시키는 방법입니다. 분류는 문제 없을 수 있지만 물체 탐지(detection)나 세그멘테이션(segmentation) 등 명확한 정답이 존재하는 문제에 적용할 때는 라벨도 좌우 반전을 해야 합니다.

숫자나 알파벳을 인식(recognition)하는 문제에 Flipping을 적용할 때도 주의해야 합니다. 상하나 좌우가 반전되었을 경우에 다른 숫자나 글자가 될 수도 있기 때문입니다.

Gray scale

Gray scale은 3개의 채널을 가진 RGB 이미지를 1개의 채널을 가지게 만듭니다. 아래의 사진은 흑백 대신 다른 색으로 이미지를 표현한 예시입니다.

RGB 채널마다 각각 가중치(weight)를 주어 가중합(weighted sum)을 하면, 사용된 가중치의 합이 1이 됩니다.

Saturation

Saturation은 HSV 이미지의 채도를 조절하여 이미지를 선명하게 만드는 방법입니다. RGB 이미지를 HSV(Hue(색조), Saturation(채도), Value(명도) 성분으로 색을 표현) 이미지로 변경한 다음, S(Saturation) 채널에 오프셋(offset)을 적용하여 더 이미지를 선명하게 만듭니다. 이후에 다시 RGB 색상 모델로 변경합니다.

Brightness

Brightness는 이미지의 밝기를 조절하는 방법입니다. RGB에서 (255,255,255)는 흰색, (0,0,0)은 검은색을 뜻합니다. 밝기를 조절할 때에는 RGB 채널에서 값을 더하면 밝아지고, 빼면 어두워집니다.

Rotation

Rotation은 이미지의 각도를 변환해 줍니다. 90도의 경우 직사각형 형태가 유지되기 때문에 이미지의 크기만 조절해 주면 바로 사용할 수 있습니다. 하지만 90도 단위로 돌리지 않는 경우 직사각형 형태에서 기존 이미지로 채우지 못하는 영역을 어떻게 처리해야 할지 유의해야 합니다.

Rotation은 이미지의 각도를 변환하는 방법입니다. 90도로 Rotation하는 경우에는 직사각형 형태가 유지되므로 이미지 크기만 조절한다면 바로 사용 가능합니다. 그렇지 않을 경우에는(90도 Rotation이 아닌 경우) 유의해야 합니다.

Center crop

Center crop은 이미지 중앙을 기준으로 이미지를 확대하는 방법입니다. Center crop을 너무 작게하여 원본 이미지의 라벨과 맞지 않는 상황이 발생할 수도 있습니다. 아래의 예시 이미지처럼 고양이의 형상을 알아볼 수 있을만큼 Center crop을 해야 합니다.

정리


이 글에서는 Data Augmentation에 대해서 간략히 설명하고, 위의 여섯 가지 Image Augmentation 방법에 대해 간략히 정리했습니다. 이외에도 Gaussian noise, Contrast change, Sharpen, Affine transformation, Padding, Blurring 등 다양한 Augmentation 기법들이 있습니다.

profile
I'm Grint!

0개의 댓글