1. 기본적인 이미지 데이터 증강 기법
일반적으로 데이터 증강 기법이 모델 성능 향상에 도움을 주지만 어떤 종류의 이미지를 사용하는지 어떤 task를 수행하는지에 따라 증강이 도움이 안될 수도 있다.
- 이미지의 회전(Rotation)
- 회전 확대는 1°와 359° 사이의 축에서 이미지를 오른쪽이나 왼쪽으로 회전한다.
- 1에서 20 사이 또는 − 1에서 − 20과 같은 약간의 회전은 MNIST와 같은 숫자 인식 작업에 유용할 수 있지만 어떤 task를 수행하느냐에 따라 너무 큰 회전은 적합하지 않다.
- 크기 변환(Scaling)
- 밀림(Shearing)
- 상하좌우 대칭(Flip)
- 이동(Translation)
- 이미지를 왼쪽, 오른쪽, 위 또는 아래로 이동하는 것은 데이터의 위치 편향을 피하기 위해 매우 유용한 변환이 될 수 있다.
- 잘라내기(Crop)
- 이미지 자르기는 각 이미지의 중앙 패치를 잘라 높이 및 너비 치수가 혼합된 이미지 데이터에 대한 실용적인 처리 단계로 사용할 수 있다.
data_augmentation = tf.keras.Sequential([
layers.experimental.preprocessing.RandomFlip("horizontal_and_vertical"),
layers.experimental.preprocessing.RandomRotation(0.2),
])
2. 고급 이미지 데이터 증강 기법
- Cutout
논문 https://arxiv.org/pdf/1708.04552.pdf
- 주어진 각 이미지에서 임의의 영역을 아예 제거하는 기법
- Mixup
논문 https://arxiv.org/pdf/1710.09412.pdf
- 하나의 학습 데이터를 구성하기 위해 데이터셋 내의 임의의 두 데이터를 적절한 비율로 섞는(Mix) 기법
- 새로운 데이터 샘플을 생성하기 위해 𝑥𝑖 와 𝑥𝑗 를 𝜆:1−𝜆 의 비율로 섞고, 그에 따라 대응하는 label 데이터도 섞는 것
- Cutmix
논문 https://arxiv.org/pdf/1905.04899.pdf
- Cutout과 Mixup을 혼합한 기법
- Cutmix는 Cutout을 통해 선택된 A 이미지의 일부 영역을 B 이미지의 또 다른 영역에 덮어씌우는 방식, 즉 A 이미지의 일부를 복사해서 B 이미지에 붙여넣는 방식이다.