객체 인식(Object Detection)은 “무엇(What)”과 “어디(Where)”를 동시에 해결하는 문제입니다.
즉, 클래스 분류와 위치 추정(Bounding Box)을 함께 수행해야 합니다.

1단계: 데이터 준비 (Data Preparation)

데이터셋 구성

  • 이미지 파일 (JPG/PNG 등)
  • 어노테이션 (Pascal VOC XML, COCO JSON 등)

전처리

  • 입력 크기 통일 (예: 300x300, 512x512)
  • 정규화 (픽셀값 스케일링)
  • 박스 좌표 정규화(상대 좌표)

데이터 증강

  • Random Crop, Flip, Rotation, Color Jitter
  • 객체 탐지에서는 BBox 동기 변환이 핵심
  • Albumentations가 실무에서 자주 사용됨

DataLoader 구성

  • 이미지마다 객체 개수가 다르므로 커스텀 collate_fn 필요

2단계: 모델 구조 설계 (Model Architecture)

객체 탐지 모델은 보통 3개 블록으로 구성됩니다.

Backbone

  • 이미지 특징 추출기
  • 예: ResNet, VGG, MobileNet, EfficientNet

Neck

  • 멀티스케일 특징 통합
  • 예: FPN, PANet
  • 분류 Head: 클래스 확률 예측
  • 회귀 Head: 박스 좌표 보정

3단계: 모델 학습 (Model Training)

학습 흐름

  • Forward: 입력 -> Backbone/Neck/Head -> 예측
  • Loss 계산
    • 분류 손실: Cross Entropy/Focal 계열
    • 위치 손실: Smooth L1, IoU/GIoU/CIoU 계열
  • Backward + Optimizer Step

최적화 전략

  • Optimizer: SGD(momentum), Adam, AdamW
  • LR Scheduler: Warm-up, Cosine Annealing
  • 관리: Early Stopping, Checkpoint, TensorBoard/WandB

4단계: 추론 및 후처리 (Inference & Post-processing)

모델 출력은 바로 사용하지 않고 정제합니다.

  • Confidence Thresholding: 낮은 점수 박스 제거
  • NMS(Non-Maximum Suppression): 중복 박스 제거
  • 변형: Soft-NMS, Weighted-NMS

5단계: 성능 평가 (Evaluation)

IoU

  • 예측 박스와 GT 박스의 겹침 비율

Precision / Recall

  • Precision: 검출한 것 중 정답 비율
  • Recall: 실제 객체 중 검출한 비율

AP / mAP

  • AP: PR Curve 면적
  • mAP: 클래스별 AP 평균
  • COCO 기준: mAP@[.5:.95] 사용

보너스: 탐지기 2가지 큰 계열

2-Stage Detector

  • Region Proposal 후 분류/회귀
  • 예: Faster R-CNN
  • 장점: 정확도 높음
  • 단점: 상대적으로 느림

1-Stage Detector

  • End-to-End 직접 예측
  • 예: YOLO, SSD, RetinaNet
  • 장점: 빠름(실시간 유리)

정리

객체 인식의 본질 파이프라인은 다음 5단계로 요약됩니다.

데이터 준비 -> 모델 구조 설계 -> 학습 -> 추론/후처리 -> 성능 평가

모델 이름이 달라도(SSD, YOLO, Faster R-CNN) 이 기본 흐름은 공통입니다.