logo

객체 인식 모델

R-CNN, YOLO, SSD, DETR의 공통 원리와 차이 및 NMS의 역할

객체 인식 기법의 발전

  • 전통적인 방법은 사람이 설계한 특징과 분류기를 조합
    • Viola-Jones(2001): Haar 유사 특징과 AdaBoost를 사용한 얼굴 탐지
    • HOG + SVM(2005): 방향 경사 히스토그램(Histogram of Oriented Gradients, HOG)과 서포트 벡터 머신(Support Vector Machine, SVM)을 사용한 보행자 탐지
    • 특징 추출, 후보 영역 탐색, 분류 등의 여러 단계 필요
  • 딥러닝 기반 모델은 탐지에 필요한 특징을 데이터에서 직접 학습
    • 모델에 따라 후보 영역 생성, 경계 상자 예측, 중복 제거의 결합 방식이 다름
    • 대표적인 구조는 2단계 모델, 1단계 모델, 집합 예측 기반 모델

Viola-Jones 얼굴 탐지에서 사용하는 Haar 유사 특징 예시

2단계 객체 인식 모델(Two-stage Detector)

2단계 모델은 객체가 있을 만한 후보 영역을 먼저 찾고, 각 영역의 클래스와 경계 상자를 다시 예측하는 구조. R-CNN(Region-based CNN) 계열이 대표 사례.

  • 1단계: 후보 영역 제안(Region Proposal)
  • 2단계: 관심 영역(Region of Interest, RoI)의 클래스 분류와 경계 상자 보정

초기 R-CNN은 선택적 탐색(Selective Search)으로 비슷한 색상, 질감, 크기를 가진 인접 영역을 합쳐 후보 영역 생성. 각 후보 영역을 CNN에 따로 입력하여 특징을 추출한 뒤 클래스와 경계 상자를 예측.

R-CNN 방식의 2단계 객체 인식 흐름

R-CNN 계열의 발전

  • R-CNN: 선택적 탐색으로 만든 많은 후보 영역에 CNN을 반복 적용
  • Fast R-CNN: 이미지 전체의 특징 맵을 한 번만 만들고 후보 영역별 특징을 공유
    • 선택적 탐색은 그대로 사용하므로 후보 영역 생성이 병목
  • Faster R-CNN: 영역 제안 신경망(Region Proposal Network, RPN)이 후보 영역을 학습하여 생성
    • RPN과 탐지기가 특징 맵을 공유하지만 후보 영역 처리와 영역별 예측의 두 단계는 유지

2단계 모델은 유망한 영역을 정교하게 분석할 수 있지만 후보 영역과 영역별 예측 때문에 계산량과 지연 시간 증가 가능.

1단계 객체 인식 모델(One-stage Detector)

1단계 모델은 별도의 후보 영역 제안 단계 없이 특징 맵에서 경계 상자와 클래스를 직접 예측하는 구조. YOLO(You Only Look Once) 계열과 SSD(Single Shot MultiBox Detector)가 대표 사례.

  • 한 번의 네트워크 처리에서 위치와 클래스 예측
  • 많은 위치의 후보를 동시에 계산하여 빠른 추론에 유리

YOLO(You Only Look Once)

  • 입력 이미지에서 특징을 한 번 추출하고 경계 상자와 클래스를 직접 예측
  • 별도의 후보 영역 제안과 영역별 CNN 처리가 없는 1단계 구조
  • 최종 탐지 결과에 경계 상자 좌표, 클래스, 예측 신뢰도 포함
  • 빠른 추론과 정확도의 균형을 목표로 설계
  • YOLO는 여러 버전을 거치며 세부 구조가 크게 변화

초기 YOLO가 이미지 영역별로 경계 상자와 클래스를 예측하는 개념도:

초기 YOLO의 그리드 셀과 경계 상자 예측 개념

SSD(Single Shot MultiBox Detector)

  • 이미지 분류로 사전 학습한 VGG-16을 기본 네트워크로 사용
  • 특징 맵의 각 위치에 여러 크기와 종횡비의 기본 상자(Default Box) 배치
  • 각 기본 상자의 위치 보정값과 클래스 점수 예측
  • 해상도가 높은 앞쪽 특징 맵은 작은 객체, 해상도가 낮은 뒤쪽 특징 맵은 큰 객체 탐지에 활용
  • 서로 다른 크기의 객체를 한 번의 네트워크 처리로 탐지

SSD 모델 구조

집합 예측 기반 모델: DETR

DETR(DEtection TRansformer)는 후보 상자를 촘촘히 만들고 중복을 제거하는 방식 대신 하나의 이미지에서 고유한 객체 탐지 결과 집합을 직접 예측하는 모델.

  • CNN 백본에서 특징 맵을 추출하고 위치 인코딩을 더해 트랜스포머 인코더에 입력
  • 고정된 수의 객체 질의(Object Query)를 트랜스포머 디코더에 입력
  • 각 질의가 객체 클래스 또는 no object와 경계 상자를 출력
  • 이분 매칭(Bipartite Matching)으로 각 정답 객체를 하나의 예측과 대응
  • 중복 예측을 줄이는 집합 기반 학습으로 외부 NMS 없이 결과 출력

DETR 모델 구조

비최대 억제(Non-Maximum Suppression, NMS)

NMS는 같은 객체에 대한 경계 상자가 여러 개 남았을 때 대표 상자만 선택하는 후처리.

  1. 일반적으로 같은 클래스로 예측한 상자를 신뢰도순으로 정렬
  2. 신뢰도가 가장 높은 상자를 결과에 추가
  3. 선택한 상자와 일정 수준 이상 겹치는 나머지 상자를 중복으로 판단하여 제거
  4. 남은 상자에 같은 과정 반복
  • 이전 버전의 YOLO와 SSD 등은 일반적으로 NMS를 사용
  • DETR과 YOLO26의 기본 종단 간 추론은 외부 NMS 없이 결과 출력

NMS로 중복 경계 상자를 제거하는 예시

모델 비교

모델후보와 예측 방식중복 처리핵심 특징
R-CNN 계열후보 영역을 만든 뒤 영역별 분류와 경계 상자 보정일반적으로 NMS 사용후보 영역을 정교하게 분석하는 2단계 구조
YOLO 계열별도의 후보 영역 없이 이미지 특징에서 직접 예측버전에 따라 NMS 또는 NMS 없는 추론빠른 추론 중심, 버전별 세부 구조 차이
SSD여러 해상도 특징 맵의 기본 상자에서 직접 예측NMS 사용다양한 크기의 객체를 여러 특징 맵에서 탐지
DETR객체 질의로 고유한 탐지 결과 집합 예측외부 NMS 불필요트랜스포머와 이분 매칭을 사용한 집합 예측
Previous
객체 인식