포스트

반려동물 품종 분류기 만들기 (0) 시리즈 소개

Oxford-IIIT Pet 데이터셋으로 37개 품종을 분류하는 딥러닝 프로젝트입니다. 직접 만든 CNN부터 사전학습 ResNet fine-tuning, 오류 분석, FastAPI 서빙까지 일곱 편의 진행 순서를 정리한 0편입니다.

반려동물 품종 분류기 만들기 (0) 시리즈 소개

이미지 분류 모델을 처음부터 서빙까지 직접 만들어보는 딥러닝 프로젝트 시리즈의 0편입니다. 프로젝트 소개와 진행 순서를 다루며, 본문인 설계는 1편부터 시작합니다.

무엇을 만드나

사진 한 장을 입력하면 반려동물의 품종을 맞히는 분류기를 만듭니다. 데이터는 Oxford-IIIT Pet으로, 개 25종과 고양이 12종, 총 37개 품종 7,349장의 이미지로 구성되어 있습니다.

목표는 캐글 노트북 한 장으로 끝내는 것이 아니라, 아래 과정을 전부 직접 거치는 것입니다.

  1. 직접 만든 작은 CNN으로 baseline을 세운다
  2. 사전학습 ResNet을 fine-tuning해서 baseline과 비교한다
  3. confusion matrix와 Grad-CAM으로 모델이 어디서 왜 틀리는지 분석한다
  4. 모델을 export해서 FastAPI로 예측 API를 만든다

누구를 위한 시리즈인가

이 시리즈는 다음에 해당하는 분들을 대상으로 작성한 글입니다.

  • CNN과 transfer learning의 개념은 배웠지만 실제 데이터로 끝까지 돌려본 적이 없는 사람
  • PyTorch로 학습 루프는 짜봤지만 augmentation, fine-tuning, 오류 분석 같은 실전 판단을 해본 적이 없는 사람
  • 학습한 모델을 노트북 밖으로 꺼내 API로 만들어보고 싶은 사람

CNN이 처음이라면 딥러닝 기초 9편부터 11편까지를, PyTorch가 처음이라면 PyTorch 기초 시리즈를 먼저 보는 것을 권합니다. 이 시리즈는 그 두 시리즈의 내용을 전제로 진행합니다.

어떻게 진행하는가

일곱 편으로 진행하며, 순서는 아래와 같습니다.

주제
(1)프로젝트 설계
(2)개발환경 세팅
(3)데이터 준비와 EDA
(4)Baseline: CNN을 처음부터 학습
(5)Transfer learning: ResNet fine-tuning
(6)평가와 오류 분석
(7)모델 export와 FastAPI 서빙

4편과 5편이 “어떻게 학습하는가”라면, 6편은 “어디서 틀리는가”이고 7편은 “어떻게 꺼내 쓰는가”입니다.

실습 환경

  • Python 3.12, uv로 패키지 관리
  • PyTorch 2.x, torchvision
  • GPU는 Colab T4 기준으로 진행하며, Apple Silicon(MPS)과 CPU에서도 동작하도록 device 선택 코드를 넣습니다

환경 세팅의 자세한 내용은 2편에서 다룹니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.