Transforms
torchvision에서는 Computer Vision에 사용되는 다양한 이미지 데이터들에 대해 전처리를 유용하게 할 수 있는 transforms라는 패키지를 제공
Data Augmentation
Data Augmentation(데이터 증강)은 머신러닝과 딥러닝에서 모델의 성능을 향상시키기 위해 훈련 데이터의 양과 다양성을 인위적으로 증가시키는 기법을 의미한다. PyTorch의 Transforms 내에는 이러한 증강 기법들을 사용할 수 있는 함수들이 많이 내장되어 있다.
1. Gaussian Blur
Gaussian Blur란 이미지를 흐리게 처리하는 기법을 의미한다. 이는 이미지 내의 불필요한 노이즈를 제거하거나 특정 부분을 강조할 수 있다. Gaussian 필터는 이미지의 픽셀을 중심으로 주변 픽셀들을 Gaussian 분포로 가중합하여 픽셀 값들을 조정한다.
이차원 이미지의 특정 픽셀을 중심으로 Kernel을 씌 후, 그 Kernel의 중심, 즉 해당 픽셀의 중심으로부터의 거리에 따라 Gaussian 분포 공식을 적용한다.
G(x,y)=12πσ2e−x2+y22σ2
이 때, x,y는 각각 Kernel의 중심으로부터의 거리를 나타낸다.
이 작업을 이미지 내의 모든 픽셀에 돌아가며 적용한다.
import torch
import torchvision
gaussian_blur = torchvision.transforms.GaussianBlur(kernel_size = 5, sigma = (6.0, 6.0))
- kernel_size : 이미지에 적용한 필터의 크기, 크기가 클수록 흐림 처리 정도 커짐
- sigma : 이미지에서 x축과 y축 방향에 각각 얼마의 표준편차를 적용할 것인지, 값이 클수록 해당 방향으로의 흐림 처리 정도 커짐
2. Random Affine
Random Affine은 이미지를 랜덤하게 기하학적 변환(확대, 축소, 회전, 기울임 등)을 하는 것을 의미한다. 이 때, 이미지의 평행성은 유지되며, 직선은 직선으로 보존된다.
import torch
import torchvision
random_affine = torchvision.transforms.RandomAffine(degrees = 20, #회전 각도
scale = (0.8, 1,2) #확대, 축소 범위,
shear = 15 #비틈 정도)
3. Compose
여러 개의 변환을 동시에 적용하고 싶을 경우 Compose를 사용한다.
import torch
import torchvision
compose = torchvision.transforms.Compose([gaussian_blur, random_affine])
'산업공학 > Deep Learning' 카테고리의 다른 글
[딥러닝] Gradient Descent (경사하강법) - 심화 (0) | 2024.08.28 |
---|---|
[딥러닝] Loss Function (1) | 2024.08.18 |
[딥러닝] PyTorch - Dataset and Data Loader (0) | 2024.08.17 |
[딥러닝] PyTorch - Tensor (1) | 2024.08.16 |
[딥러닝] DL 실무 기초 개념 (0) | 2024.08.16 |