[AIFFEL 울산 1기 - Going Deeper(CV)] 3. 잘 만든 Augmentation, 이미지 100장 안 부럽다
Going Deeper(CV)
3. 잘 만든 Augmentation, 이미지 100장 안 부럽다
실습 목표
- Augmentation을 하는 이유를 알아갑니다.
- 여러 가지 Augmentation 방법을 알아둡니다.
- 학습에 Augmentation을 적용할때 주의해야 할 점을 숙지합니다.
학습 내용
1. 데이터셋의 현실
1.1 대량의 데이터셋
- 라벨 데이터를 포함해 장당 10원에 불과하다고 하더라도,
이미지넷과 같은 데이터셋을 구축하기 위에서는 1억이 넘는 비용이 들어감.
1.2 직접 구축하는 데이터셋
- 직접 데이터를 수집한다면 만 장 단위로 데이터셋을 모으기가 쉽지 않다
2. Data Augmentation이란?
2.1 개요
실습 목표
- Augmentation을 하는 이유를 알아갑니다.
- 여러 가지 Augmentation 방법을 알아둡니다.
- 학습에 Augmentation을 적용할때 주의해야 할 점을 숙지합니다.
학습 내용
1. 데이터셋의 현실
1.1 대량의 데이터셋
- 라벨 데이터를 포함해 장당 10원에 불과하다고 하더라도,
이미지넷과 같은 데이터셋을 구축하기 위에서는 1억이 넘는 비용이 들어감.
1.2 직접 구축하는 데이터셋
- 직접 데이터를 수집한다면 만 장 단위로 데이터셋을 모으기가 쉽지 않다
2. Data Augmentation이란?
2.1 개요
1. 데이터셋의 현실
1.1 대량의 데이터셋
- 라벨 데이터를 포함해 장당 10원에 불과하다고 하더라도,
이미지넷과 같은 데이터셋을 구축하기 위에서는 1억이 넘는 비용이 들어감.
1.2 직접 구축하는 데이터셋
- 직접 데이터를 수집한다면 만 장 단위로 데이터셋을 모으기가 쉽지 않다
2. Data Augmentation이란?
2.1 개요
이미지넷과 같은 데이터셋을 구축하기 위에서는 1억이 넘는 비용이 들어감.
2.1 개요
Data augmentation은?
갖고 있는 데이터셋을 여러 가지 방법으로 증강시켜(augment) 실질적인 학습 데이터셋의 규모를 키울 수 있는 방법
- 데이터가 많아진다는 것은 과적합(overfitting)을 줄일 수 있다는 것을 의미
- 데이터를 늘릴 뿐만 아니라 모델이 실제 테스트 환경에서 잘 동작할 수 있도록 도와주기도 합니다.
- 이미지 데이터 augmentation
- 색상 필터
- 좌우 대칭
- 상하 반전
2.2 다양한 Image Augmentation 방법
-
Flipping
- 이미지를 대칭하는 기능
- detection이나 segmentation처럼 정확한 정답 영역이 존재하는 경우 라벨도 함께 좌우 반전 해주어야 한다.
- 숫자나 문자를 인식하는 경우에도 주의 필요!
-
Gray scale
- 3가지 채널(channel)을 가진 RGB 이미지를 하나의 채널을 가지도록 하는 기능
- 각 채널마다 가중치를 주어 가중합을 구하는데, 각 가중치의 합은 1이 된다.
-
Saturation
- HSV 모델의 S(Saturation, 채도)를 조절하여 색의 선명도(순수함)에 변화를 주는 기능
-
Brightness
- 밝기를 조절하는 기능
-
Rotation
- 이미지를 회전하는 기능
- 90도나 180도의 경우 형태를 고려하지 않아도 되지만 그 외의 경우는 직사각형에 맞춰 이미지의 형태를 고려해야 한다.
-
Center Crop
- 이미지의 중앙을 확대하는 기능
- 내용물의 형상을 유지하는 한도에서 해야한다.
-
그 외
- Gaussian noise, Contrast change, Sharpen, Affine transformation, Padding, Blurring, ...
3. 텐서플로우를 사용한 Image Augmentation
3.1 Flip
1) 준비하기
- PIL의 Image를 import한다
- PIL.Image로 이미지를 불러와서 적절하게 리사이즈
2) Flip 해보기
- PIL.Image의 flip_left_right와 flip_up_down 두 가지로 좌우, 상하 반전을 한다
- random_flip_left_right와 random_flip_up_down은 랜덤한 확률로 flip을 진행
3.2 Center Crop
- centeral_crop을 이용하여 확대하는데 인자로 이미지와 확대 매개변수가 들어가는데, 이 매개변수에 1이 들어가면 원본과 같은 이미지가 나온다. (매개변수는 0에서 1의 범위를 가짐)
3.3 random_crop
tf.image.random_crop(value, size)
size = [crop_height, crop_width, 3]
3.4 random_brightness()
tf.image.random_brightness(image, max_delta)
max_dalta
-> float, must be non-negative.
4. Albummentations 라이브러리
이미지 증강을 위한 Python 라이브러리
- 배열을 이미지의 기본 형태로 사용(
np.array
사용)
import albumentations
- Affine()
- 이미지의 스케일(scale)을 조절하거나 평행이동, 또는 회전 등의 변환을 줄 수 있음
- RandomCrop()
- 이미지를 랜덤하게 crop 할 수 있음
- MedianBlur()
- 블러 처리를 할 수 있음
- ToGray()
- 이미지를 흑백으로 변환
- MultiplicativeNoise()
- 이미지에 노이즈를 생성
- 다음의 형태로 여러 기법을 한 번에 적용 가능
transform = A.Compose(
[A.ToGray(p=1),
A.MultiplicativeNoise(multiplier=[0.5, 1.5],
elementwise=True, per_channel=True, p=1),
A.RandomCrop(width=256, height=256)
]
)
5. 더 나아간 기법들
- 딥러닝을 활용 가능
- 대표적인 딥러닝의 예: GAN(Style Transfer)
Author And Source
이 문제에 관하여([AIFFEL 울산 1기 - Going Deeper(CV)] 3. 잘 만든 Augmentation, 이미지 100장 안 부럽다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jeongkyeongmin/AIFFEL-울산-1기-Going-DeeperCV-3.-잘-만든-Augmentation-이미지-100장-안-부럽다
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이미지 증강을 위한 Python 라이브러리
np.array
사용)import albumentations
- Affine()
- 이미지의 스케일(scale)을 조절하거나 평행이동, 또는 회전 등의 변환을 줄 수 있음
- RandomCrop()
- 이미지를 랜덤하게 crop 할 수 있음
- MedianBlur()
- 블러 처리를 할 수 있음
- ToGray()
- 이미지를 흑백으로 변환
- MultiplicativeNoise()
- 이미지에 노이즈를 생성
transform = A.Compose(
[A.ToGray(p=1),
A.MultiplicativeNoise(multiplier=[0.5, 1.5],
elementwise=True, per_channel=True, p=1),
A.RandomCrop(width=256, height=256)
]
)
- 딥러닝을 활용 가능
- 대표적인 딥러닝의 예: GAN(Style Transfer)
Author And Source
이 문제에 관하여([AIFFEL 울산 1기 - Going Deeper(CV)] 3. 잘 만든 Augmentation, 이미지 100장 안 부럽다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jeongkyeongmin/AIFFEL-울산-1기-Going-DeeperCV-3.-잘-만든-Augmentation-이미지-100장-안-부럽다저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)