반응형
이미지 분류(Image Classification)란?
이미지 분류(Image Classification)는 딥러닝에서 가장 기본적이면서도 실전 활용도가 높은 컴퓨터 비전 과제입니다. 고양이와 개를 구분하거나, X-ray 사진에서 질병을 탐지하는 문제도 모두 이미지 분류 문제에 해당합니다. 이번 시간에는 PyTorch를 이용하여 이미지 분류 데이터셋을 만드는 방법에 대해 알아보도록 하겠습니다.
PyTorch로 CIFAR-10 이미지 분류 데이터셋 만들기
CIFAR-10은 딥러닝 입문자들이 가장 많이 사용하는 공개 이미지 분류 데이터셋입니다.
CIFAR-10 특징
- 10개 클래스 (비행기, 자동차, 개구리 등)
- 32×32 크기 컬러 이미지
- PyTorch에서 `torchvision.datasets.CIFAR10`로 바로 사용 가능
Pytorch 코드 예제
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])
train_dataset = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)
PyTorch로 ImageNet 또는 커스텀 이미지 분 데이터셋 만들기
ImageNet은 실제 서비스 수준의 고해상도 이미지 분류를 위해 널리 사용되는 대규모 데이터셋입니다. 모든 사전학습 모델의 기초가 됩니다.
ImageNet 특징
- 1000개 클래스
- 224×224 이상의 컬러 이미지
폴더 구조 (ImageFolder 형식)
data/
train/
cat/
dog/
val/
cat/
dog/
PyTorch 코드 예제
from torchvision.datasets import ImageFolder
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
transform = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor()
])
train_dataset = ImageFolder('data/train', transform=transform)
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)
# ImageNet은 ImageFolder 형식이 아니더라도 CIFAR-10과 마찬가지로 PyTorch에서 제공된다.
train_dataset = datasets.ImageNet(root='./data', transform=transform)
마무리
PyTorch를 이용하여 이미지 분류 데이터셋을 어떻게 만드는지 살펴보았습니다. 다음 시간에는 모델 구성 및 학습 방법을 PyTorch로 작성하는 방법을 알아보도록 하겠습니다.
관련 내용
- 준비중
반응형
'실전 예제, 프로젝트' 카테고리의 다른 글
[실전 예제/변화 탐지/PyTorch] 변화 탐지 튜토리얼: LEVIR 데이터셋으로 PyTorch 데이터셋 만들기 (0) | 2025.04.19 |
---|---|
[실전 예제/인스턴스 분할/PyTorch] 인스턴스 분할 튜토리얼: COCO 데이터셋으로 PyTorch 데이터셋 만들기 (0) | 2025.04.19 |
[실전 예제/객체 탐지/PyTorch] 객체 검출 튜토리얼: COCO 데이터셋으로 PyTorch 데이터셋 만들기 (0) | 2025.04.19 |
[실전 예제/소켓통신/루프백] 컴퓨터 한 대로 가능한 TCP/IP (0) | 2025.01.15 |