피드로 돌아가기
Fine-Tune a Semantic Segmentation Model with a Custom Dataset
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face Transformers를 사용한 SegFormer 모델의 커스텀 dataset 파인튜닝으로 자동 배송 로봇의 인도 보행 영역 인식

Fine-Tune a Semantic Segmentation Model with a Custom Dataset

2022년 3월 17일12intermediate

Context

기존 자율주행 dataset(CityScapes, BDD100K)은 자동차가 도로에서 촬영한 데이터이지만, 배송 로봇은 인도에서 주행하므로 실제 환경과의 mismatch 문제가 발생한다. 인도 특화 dataset이 필요하지만 기존 공개 dataset으로는 충분하지 않다.

Technical Solution

  • segments/sidewalk-semantic dataset을 Hugging Face Hub에서 로드: load_dataset(hf_dataset_identifier) 함수로 한 줄의 코드로 dataset 로드
  • Dataset 전처리: train/test split을 0.8/0.2 비율로 나누고 seed=1로 shuffle
  • SegFormerImageProcessor를 사용한 동적 이미지 전처리: ds.map() 대신 batch 단위로만 전처리하여 디스크 공간 절약
  • ColorJitter를 통한 데이터 증강: 밝기, 명암, 채도, 색조를 임의로 변경하여 조명 변화에 강건성 추가
  • 모델 추론 pipeline: 입력 이미지 → SegFormerImageProcessor → 모델 forward → bilinear interpolation으로 원본 크기로 upsampling → argmax로 픽셀 단위 클래스 예측

Key Takeaway

자체 dataset 생성과 Hugging Face 도구들(🤗 datasets, 🤗 transformers, Hub)을 결합하면 프로토타입 수준의 semantic segmentation 모델을 신속하게 구축할 수 있으며, 공개 dataset과의 domain mismatch 문제는 실제 사용 환경에 맞는 dataset 수집으로 해결 가능하다.


Semantic segmentation 모델을 실제 로봇 비전 애플리케이션에 적용할 때는 공개 dataset의 domain을 검증하고(이 경우 도로 vs 인도), 필요시 Segments.ai 같은 annotation 플랫폼으로 전문 dataset을 구축한 후, SegFormerImageProcessor와 ColorJitter를 조합해 dataset 전처리 단계에서 on-the-fly 처리와 증강을 수행하면 디스크 비용을 절감하면서 학습을 신속하게 시작할 수 있다.

원문 읽기